All files / realm/blong-access/meta/model accessPolicyModel.ts

100% Statements 67/67
100% Branches 2/2
100% Functions 1/1
100% Lines 67/67

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 681x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 1x  
import {model} from '@feasibleone/blong';
 
/**
 * accessPolicyModel — browse-only view of the credential policies.
 *
 * `policyName` is the display name (lives in `core_resource.resourceName`) and
 * is provided by the custom `access.policy.find` handler. No Create/Edit/Delete
 * toolbar — the entity is not editable from the UI.
 */
export default model(
    () =>
        async function accessPolicyModel() {
            return {
                subject: 'access',
                object: 'policy',
                objectTitle: 'Policy',
                public: true,
                nameField: 'policy.policyName',
 
                schema: {
                    properties: {
                        policy: {
                            properties: {
                                policyName: {
                                    title: 'Name',
                                    filter: true,
                                    sort: true,
                                },
                                credentialType: {
                                    title: 'Type',
                                    filter: true,
                                },
                                minLength: {title: 'Min Length'},
                                maxAgeDays: {title: 'Max Age (days)'},
                                maxAttempts: {title: 'Max Attempts'},
                                isActive: {title: 'Active', type: 'boolean'},
                                // server schema defined:
                                // policyId: {},
                            },
                            widget: {
                                columns: [
                                    'policyName',
                                    'credentialType',
                                    'minLength',
                                    'maxAgeDays',
                                    'isActive',
                                ],
                            },
                        },
                    },
                },
 
                cards: {
                    browse: {
                        label: 'Policies',
                        widgets: ['policy'],
                    },
                },
 
                browser: {
                    title: 'Credential Policies',
                    icon: 'pi pi-shield',
                    toolbar: [],
                },
            };
        },
);