Secrets cannot be set via formula. Calling secret.toString() will return the hash value.

Example


const allUsers = B.queries.byName['All Users'].require('allUsers');
const user = allUsers.byId[userId];
const profile = user.forms.byName['Online Profile'].require('profile');
const secret = profile.fields.secret;
explore example
[[B.queries]], [[B.QueryMetaDatas.byName]], [[B.QueryMetaData.require]], [[B.FormMetaDatas.byName]], [[B.FormMetaData.fields]]

Hierarchy

Constructors

Methods

  • An object of alternate ids for this object, with values as [[AltId]]

    Returns {
        [name: string]: AltId<T>;
    }

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIdsObject().FID.value().includes('deprecated') && 'Please use a different form';
  • An object of alternate ids for this object, with values as strings

    Returns {
        [name: string]: string;
    }

    • [name: string]: string

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIds().FID.includes('deprecated') && 'Please use a different form';
  • An array of alternate ids for this object.

    Returns EList<SecretField>

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIds().FID.includes('deprecated') && 'Please use a different form';
  • Same as calling optAncestor(var).orElse(null)

    Type Parameters

    Parameters

    • classType: string | number

    Returns B

  • If this object is a Collection it returns it as an array. The majority of objects in the system are Collections. For most objects, this is the same as calling [[children]].

    Returns EList<BaseObject<any>>

    Example

    const ids = obj.asArray().map(ob => ob);
    
  • Get the children of the object. This retrieval goes one level deep.

    Parameters

    • Optional classType: string | number

    Returns EList<BaseObject<any>>

    Example

    const childrenNames = obj.children().map(child => child.displayName());
    
  • Clear the field's value.

    Returns void

    Example

    // This is a surprisingly non-trivial example.numberField.val() > 10 && numberField.clear();// There are many things going on here:
    // 1) We are performing a check that a value even exists in this field. If not, nothing happens.
    // 2) If the first condition is met, we then check that the value is a number or a string representing a number
    // (remember: '5'==5 in JavaScript), and that it is greater than 10. If not, nothing happens.
    // 3) If the first two conditions are met, the field is then cleared of its value.
  • The "created at" timestamp of this object.

    Returns Instant

    Example

    const createdAt = `<div class="created-at">${baseObject.created()}</div>`;
    
  • The creator of this object.

    Returns User

    Example

    alert(`Guess who created this. It was ${baseObject.creator().fullName()}. They are to blame.`);
    
  • Returns a delete URL for this object, else a blank string. Following the URL will delete the object, so proceed with caution.

    Returns string

    Example

    const deleteBtn = `<button data-href="${baseObject.deleteUrl()}">Go to ${baseObject.displayName()}</button>;
    
  • The deleted children of this object. Only looks one level deep. E.g. a form's deleted children could include fields and form entries. A folder's deleted children could include folders, forms, and formulas, but not any of those forms' entries.

    Returns EList<BaseObject<any>>

    Example

    const deleted = baseObject.deletedChildren();
    
  • The default display name of this object. For the most part, this is the same as calling toString(), which is the same as inserting the object into a string.

    Returns string

    Example

    The following assumes you have already aggregated a selection of baseObjects into an array

    const displayNames = [];
    for (const o of baseObjects) displayNames.push(o.displayName());
    const namesList = `<ul><li>${displayNames.join('</li><li>')}</li></ul>`;
  • Sets the Display Name.

    Parameters

    • name: string

    Returns void

  • Returns an edit URL for this object, else a blank string.

    Returns string

    Example

    const editBtn = `<button data-href="${baseObject.editUrl()}">Go to ${baseObject}</button>`;
    
  • Returns this field's [[FormMetaData]] object.

    Returns FormMetaData

    Example

    const form = firstName.form();
    const fieldNames = [];
    for (field in form) fieldNames.push(form[field].displayName());
  • HmacSHA256 base64-encoded string of the secret stored in the field. The system adds several "salt" values while computing the hash. This causes the hash to be unique to both the current user account and the actual secret value. Thus, it is not possible to compare hashed secrets between users, but for any paricular user the same secret will always result in the same hash value.

    Returns string

    Example

    const secHash = secret.hash();
    
  • A utility function to generate a hash of a secret. This is useful for generating a hash of a secret that is passed in using the current entry as the salt and can be compared with another hash generated the same way.

    This does not use the stored secret for calculating a hash.

    If this field has a SID then this method is restricted to frozen formulas.

    Parameters

    • secret: string

      The Secret to get a salted hash of

    Returns string

    Example

    const hash = secret.hashSecretWithEntry("pass");
    
  • The [[Id]] of this object bounded to T.

    Returns Id<SecretField>

    Example


    const displayDiv = `<div class="object-card" id="${baseObject.id()}">
    <div class="title">${baseObject}</div>
    <div class="body">Hello World!</div>
    </div>;
  • Returns whether the object is locked or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const isLocked = baseObject.isLocked();
    
  • Returns whether the object is pending a lock or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const isPendingLock = baseObject.isPendingLock();
    
  • Returns whether the object is pending an unlock or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const lockPendingUnlock = baseObject.isPendingUnLock();
    
  • Returns whether the field is writable

    Returns boolean

    Example

    const firstNameClass = firstName.isWritable() ? 'active' : 'inactive';
    
  • Same as calling optLock().orElse(null)

    Returns Lock

  • Parameters

    • Optional options: string

    Returns string

  • Returns the [[FieldMetaData]] object that this describes this field.

    Returns FieldMetaData<string>

    Example

    const firstNameClass = firstName.metaData().styleClass();
    
    explore example
    [[FieldMetaData.styleClass]]
  • The modified date of this object.

    Returns Instant

    Example

    const isModified = baseObject.modified();
    
  • The [[User]] that last modified this object.

    Returns User

    Example

    const modifierName = baseObject.modifier().fullName();
    
  • Optional value for this field. Same as [[valOpt]]. Try to use this as often as you can over val(); Null-pointer exceptions can be a pain, and this will provide a measure of safety. Try to reserve val() for situations where a field is required and you know that the value cannot be null.

    Returns Optional<string>

    Example

    const middleName = middleName.opt().orElse('No Middle Name Set!');
    // or, similarly
    const middleName = middleName.val() || 'No Middle Name Set!'
    explore example
    [[Java.Optional.isPresent]]
  • A [[Java.Optional]] of the ancestor with the specific class.

    Parameters

    • classType: string | number

    Returns Optional<BaseObject<any>>

    Example

    const ancestors = obj.optAncestor(1000001).ifPresent(a => console.log('${a} exists'));
    
    explore example
    [[Java.Optional.ifPresent]]
  • Returns the date and time that the secret was last changed. BlueStep began tracking secret changes in September 2013. Secrets set prior to this time make a worst-case assumption that the secret has not been changed since the account was created.

    Returns Optional<Instant>

    Example

    const passLastMod = secret.lastChanged();
    
  • Returns the [[Lock]]

    Returns Optional<Lock>

    Deprecated

    Part of the [[Lock]] API.

    Example

    const lockExpire = baseObject.optLock();
    
  • A [[Java.Optional]] of the current object's parent object.

    Parameters

    • Optional classType: string | number

    Returns Optional<BaseObject<any>>

    Example

    const ancestors = obj.optAncestor(1000001).ifPresent(a => console.log('${a} found'));
    
    explore example
    [[Java.Optional.ifPresent]]
  • Same as calling optParent(var).orElse(null)

    Type Parameters

    Parameters

    • Optional classType: string | number

    Returns B

  • Reset the current object so that it is cleared from the cache and looked up from the database.

    Returns void

  • Calculates the bit strength, a measure of how easily a secret can be cracked by random guessing. It goes through a formula consisting of a dictionary word check, a repeated/adjacent letters check, and a character complexity check. This includes upper and lowercase letters, numbers, punctuation, space, ASCII, and Unicode.

    BlueStep recommends a minimum bit strength of 50, but the minimum-allowable bit strength (MABS) is customizable to each organization.

    NOTE Setting the MABS only affects future secret. Forcing existing users to change weak secrets is currently a process only available to BlueStep employees.

    Returns number

    Example

    const secStrength = secret.strength();
    
  • The [[Id]] or [[AltId]] that the system deems most relevant.

    Returns AltId<SecretField> | Id<SecretField>

    Example


    const displayDiv = `<div class="object-card" id="${baseObject.topId()}">
    <div class="title">${baseObject}</div>
    <div class="body">Hello World!</div>
    </div>;
  • Returns the bluestep.js classpath for the current object.

    Returns string

    Example

    const isBool = testForm.fields.mysteryField.typeName().toLowerCase().includes('boolean')
    
  • Makes changes to the database for this object

    Returns void

  • Gets the field's value if there is one, and will otherwise return null. Some overrides of this method have default return-values for convenience but, that would not make sense for this: the general-use case. In situations where the value might be null (e.g. non required field), consider using optional chaining: field.val()?.toString(). The preferred method to handle nulls in bs.js is simply [[opt]]/[[valOpt]]; as the methods available off of that can handle virtually any situation.

    This is identical to calling field.opt().orElse(null).

    Returns string

    Example

    // it is important to notice that, due to how JavaScript works, doubleVal will evaluate to 0 if numberField.val() is null.
    const doubleVal = numberField.val() * 2;
  • Set the field's value.

    Parameters

    • newValue: string

      The value to be put into the field.

    Returns void

    Example

    // make the field say `hello`
    field.val('hello');
  • Optional value for this field. Alias for [[opt]].

    Returns Optional<string>

    Example

    date.valOpt().map(val => `Report Date: ${val}`).orElse('No Date');
    
    explore example
    [[Java.Optional.map]], [[Java.Optional.orElse]]
  • Returns string

  • Test a secret field's value to verify that it matches your test value.

    If this field has a SID then this method is restricted to frozen formulas.

    Parameters

    • secret: string

      The Secret to test against

    Returns boolean

    Example

    const passwordIsCorrect = password.verifySecret("pass");
    
  • The version of this object or empty string if it doesn't exist.

    Returns string

    Example

    const version = baseObject.version();
    
  • Returns a view URL for this object, if it has one. This value is always a relative URL, meaning it does not contain the protocol prefix or domain name such as http://xyz.bluestep.net.

    Returns string

    Example

    const viewBtn = `<button data-href="${baseObject.viewUrl()}">Go to ${baseObject.displayName()}</button>;
    

Generated using TypeDoc