Member Junction
    Preparing search index...

    Fixture for the fls-enforcement bundle: the three seeded Field-Level-Security test users (metadata-optional/integration-test) plus the runtime state the bundle's lifecycle provisions — it enables EnableFieldLevelSecurity on the target entity through the REAL server entity path (so the snapshot/reconciliation code gets live coverage), and teardown restores the flag and deletes every permission row the snapshot wrote.

    Usable=false + Reason ⇒ the seed is absent or the entity is already FLS-enabled by a real administrator (the bundle refuses to mutate a configured entity) — checks skip-as-pass. EnableError is different: the seed IS present but enabling through the entity path FAILED. That is a product bug (it has happened — the snapshot/guard collision), so checks FAIL on it rather than skipping.

    interface FlsFixture {
        CompanyID?: string;
        CreatedEmployeeIds: string[];
        EnableError?: string;
        EntityName: string;
        FixtureEmployeeID?: string;
        Multi?: UserInfo;
        Reader?: UserInfo;
        Reason?: string;
        RoleIDs?: {
            Denier: string;
            Neutral: string;
            Reader: string;
            Writer: string;
        };
        Usable: boolean;
        Writer?: UserInfo;
    }
    Index

    Properties

    CompanyID?: string

    An existing Company ID for creating Employee rows (Employee.CompanyID is required).

    CreatedEmployeeIds: string[]

    Employee rows the checks created (create-suppression), swept by teardown.

    EnableError?: string

    Set when the seed was present but enabling field security through the entity path failed — a product bug, not a skip.

    EntityName: string

    The FLS target entity name ('MJ: Employees').

    FixtureEmployeeID?: string

    ID of the fixture Employee row Setup seeds (via Pool SQL), for the load/update/round-trip checks.

    Multi?: UserInfo

    Seeded user holding Writer + Denier + Neutral — the cross-role aggregation user.

    Reader?: UserInfo

    Seeded user holding ONLY the FLS Reader role (read-only; Email tightened to Deny, BCMID row deleted).

    Reason?: string

    Why the fixture is unusable (seed absent / entity pre-configured), when Usable is false.

    RoleIDs?: { Denier: string; Neutral: string; Reader: string; Writer: string }

    The four seeded FLS role IDs, resolved by name from live metadata.

    Usable: boolean

    True iff seeded users resolved, the entity was FLS-disabled, and Setup enabled it successfully.

    Writer?: UserInfo

    Seeded user holding ONLY the FLS Writer role (read+create+update+delete; fully allowed).