@objectstack/platform-objects 12.6.0 → 14.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/index.d.mts +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.js +38 -17
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/index.mjs +38 -17
- package/dist/apps/index.mjs.map +1 -1
- package/dist/audit/index.d.mts +90 -30
- package/dist/audit/index.d.ts +90 -30
- package/dist/identity/index.d.mts +1057 -280
- package/dist/identity/index.d.ts +1057 -280
- package/dist/identity/index.js +184 -29
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/index.mjs +184 -29
- package/dist/identity/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +362 -335
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +362 -336
- package/dist/index.mjs.map +1 -1
- package/dist/metadata-translations/index.js +20 -288
- package/dist/metadata-translations/index.js.map +1 -1
- package/dist/metadata-translations/index.mjs +20 -288
- package/dist/metadata-translations/index.mjs.map +1 -1
- package/dist/pages/index.d.mts +35 -4
- package/dist/pages/index.d.ts +35 -4
- package/dist/pages/index.js +112 -1
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/index.mjs +112 -2
- package/dist/pages/index.mjs.map +1 -1
- package/dist/plugin.js +37 -300
- package/dist/plugin.js.map +1 -1
- package/dist/plugin.mjs +37 -300
- package/dist/plugin.mjs.map +1 -1
- package/dist/system/index.d.mts +30 -9
- package/dist/system/index.d.ts +30 -9
- package/dist/system/index.js +8 -0
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.mjs +8 -0
- package/dist/system/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/pages/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pages/sys-organization.page.ts","../../src/pages/sys-user.page.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { Page } from '@objectstack/spec/ui';\n\n/**\n * sys_organization — Record Detail Page (slotted)\n *\n * Adds Members / Invitations / Teams tabs to the organization detail\n * page so an admin can manage the membership graph from a single place\n * instead of switching between three separate Setup list views.\n *\n * The page is `kind: 'slotted'` and overrides only the `tabs` slot —\n * header, actions, highlights, details and discussion fall through to\n * the synthesized default, so the organization's own fields and the\n * existing record-header actions (Set Active, Edit, Delete, Leave) are\n * preserved.\n *\n * Each tab is a `record:related_list` over a child object that already\n * has `organization_id` as a `Field.lookup('sys_organization')` — the\n * renderer scopes the list to the current organization automatically\n * (the related-list runtime uses the parent record id from the page\n * context as the filter value for `relationshipField`). The per-row\n * actions defined on each child object (invite_user, cancel_invitation,\n * remove_member, transfer_ownership, create_team, …) are inherited\n * unchanged — no admin endpoint has to be re-declared here.\n *\n * Notable omissions:\n * - **OAuth Apps**: `sys_oauth_application` is owned by `user_id`, not\n * `organization_id`. They surface on the user's Account → Developer\n * section instead of the org detail.\n * - **SSO**: no `sys_sso*` object exists yet. When the SSO plugin lands,\n * add a fourth tab here.\n */\nexport const SysOrganizationDetailPage: Page = {\n name: 'sys_organization_detail',\n label: 'Organization',\n type: 'record',\n object: 'sys_organization',\n template: 'default',\n kind: 'slotted',\n isDefault: true,\n // `regions` is required by the Page schema even for slotted pages —\n // empty array lets the synthesizer fill in header/details/discussion\n // while the `slots.tabs` override below replaces the synthesized\n // tabs strip.\n regions: [],\n slots: {\n tabs: {\n type: 'page:tabs',\n properties: {\n type: 'line',\n position: 'top',\n items: [\n {\n label: 'Members',\n icon: 'users',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_member',\n relationshipField: 'organization_id',\n columns: ['user_id', 'role', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Members',\n },\n },\n ],\n },\n {\n label: 'Invitations',\n icon: 'mail',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_invitation',\n relationshipField: 'organization_id',\n columns: ['email', 'role', 'status', 'expires_at', 'inviter_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Invitations',\n },\n },\n ],\n },\n {\n label: 'Teams',\n icon: 'users-round',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_team',\n relationshipField: 'organization_id',\n columns: ['name', 'created_at', 'updated_at'],\n sort: [{ field: 'name', order: 'asc' }],\n limit: 25,\n showViewAll: true,\n title: 'Teams',\n },\n },\n ],\n },\n ],\n },\n },\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { Page } from '@objectstack/spec/ui';\n\n/**\n * sys_user — Record Detail Page (slotted, default for ALL sys_user records)\n *\n * **Audience**: admins browsing user records from Setup.\n *\n * The Account App's \"Profile\" entry no longer routes here — it points at\n * the `account:profile_card` Console component for a settings-form-style\n * personal profile. This page therefore optimizes for the admin\n * use case: scanning a user's signals (email/verification/2FA/role),\n * reviewing related sessions/orgs/oauth/api-keys, and triggering\n * admin actions (ban / impersonate / set_role).\n *\n * Strategy\n * --------\n * - `kind: 'slotted'` + `isDefault: true`: overrides `highlights`,\n * `details`, `tabs` and `discussion`. Header / actions fall through\n * to the synthesizer so the object's declared actions\n * (`update_my_profile / change_my_password / resend_verification_email\n * / ban_user / set_user_role / impersonate_user / …`) still appear\n * in the header overflow menu automatically.\n * - `highlights` promotes the four signals worth scanning at the top:\n * email, verification state, 2FA, platform role. Highlight fields\n * are auto-dropped from the details grid below.\n * - `details` re-groups remaining fields into sections and hides\n * admin-internal audit columns. Banned / ban metadata is still\n * editable from the header actions — we just don't show it in\n * every user's body.\n * - `tabs` is **explicitly curated** to the 4 related lists that matter\n * on a user profile (Sessions / Linked Accounts / Organizations /\n * Personal OAuth Apps). Without this override, the synthesizer\n * auto-generates a tab per object that has a FK to sys_user\n * (sys_role.created_by, sys_email.updated_by, sys_user_preference,\n * sys_email_template.created_by, …) producing dozens of noisy\n * \"查看全部\" cards on every profile.\n * - `discussion: []` removes the Chatter feed — it has no business\n * on a personal profile.\n */\nexport const SysUserDetailPage: Page = {\n name: 'sys_user_detail',\n label: 'User',\n type: 'record',\n object: 'sys_user',\n template: 'default',\n kind: 'slotted',\n isDefault: true,\n\n regions: [],\n\n slots: {\n // ── Alert banners ─────────────────────────────────────────────\n // Conditional notices rendered between the page header and the\n // highlight strip. The unverified-email banner only shows for the\n // current user viewing their own profile (admins looking at other\n // users see nothing — they can use Setup actions instead).\n alerts: [\n {\n type: 'record:alert',\n properties: {\n severity: 'warning',\n icon: 'mail',\n title: '邮箱未验证',\n body: '验证你的邮箱以接收密码重置和重要的系统通知。',\n visible: 'record.id == ctx.user.id && record.email_verified == false',\n dismissible: false,\n action: {\n actionName: 'resend_verification_email',\n label: '重新发送验证邮件',\n },\n },\n },\n ],\n\n // ── Highlight chips above the fold ────────────────────────────\n highlights: {\n type: 'record:highlights',\n properties: {\n fields: ['email', 'email_verified', 'two_factor_enabled', 'role'],\n },\n },\n\n // ── Body / details grid ───────────────────────────────────────\n details: {\n type: 'record:details',\n properties: {\n hideFields: [\n 'id',\n 'banned',\n 'ban_reason',\n 'ban_expires',\n // already promoted to highlights:\n 'email',\n 'email_verified',\n 'two_factor_enabled',\n 'role',\n ],\n sections: [\n {\n label: 'Identity',\n fields: ['name', 'image'],\n },\n {\n label: 'Audit',\n fields: ['created_at', 'updated_at'],\n },\n ],\n },\n },\n\n // ── Tabs: curated related lists ───────────────────────────────\n // Only the 4 lists that are semantically about THIS user account.\n // Everything else (sys_role created_by, sys_email_template\n // updated_by, …) is incidental authorship metadata and would only\n // create noise.\n tabs: {\n type: 'page:tabs',\n properties: {\n type: 'line',\n position: 'top',\n items: [\n {\n label: 'Sessions',\n icon: 'monitor',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_session',\n relationshipField: 'user_id',\n columns: ['user_agent', 'ip_address', 'created_at', 'expires_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Sessions',\n },\n },\n ],\n },\n {\n label: 'Linked Accounts',\n icon: 'link',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_account',\n relationshipField: 'user_id',\n columns: ['provider_id', 'account_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Linked Accounts',\n },\n },\n ],\n },\n {\n label: 'Organizations',\n icon: 'building-2',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_member',\n relationshipField: 'user_id',\n columns: ['organization_id', 'role', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Organizations',\n },\n },\n ],\n },\n {\n label: 'OAuth Apps',\n icon: 'key-square',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_oauth_application',\n relationshipField: 'user_id',\n columns: ['name', 'client_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'OAuth Apps',\n },\n },\n ],\n },\n // ── Security ──────────────────────────────────────────────\n // Grouped self-service security controls. Each `record:quick_actions`\n // pulls its actions by name from the sys_user object metadata\n // (DRY — definitions stay on the object) and filters by\n // `location: 'record_section'` so they only render here, not\n // in the global header row.\n {\n label: 'Security',\n icon: 'shield',\n children: [\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Password & Sign-in',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Change your password or the email address associated with this account.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['change_my_password', 'change_my_email'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Two-Factor Authentication',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Add a second layer of security using a TOTP authenticator app. Backup codes let you sign in if you lose your device.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['enable_two_factor', 'disable_two_factor', 'generate_backup_codes'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Email Verification',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Verify your email so password resets and notifications reach you. The button appears only while verification is pending.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['resend_verification_email'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Danger Zone',\n },\n className: 'text-destructive',\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Permanent. Once deleted, your account cannot be recovered.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['delete_my_account'],\n },\n },\n ],\n },\n // ── API Keys ──────────────────────────────────────────────\n // Programmatic credentials issued for this user. Filtered by\n // user_id FK; the sys_api_key object's own list-item actions\n // (revoke / restore) handle row operations.\n {\n label: 'API Keys',\n icon: 'key-round',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_api_key',\n relationshipField: 'user_id',\n columns: ['name', 'prefix', 'expires_at', 'revoked', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'API Keys',\n },\n },\n ],\n },\n ],\n },\n },\n\n // ── Suppress the Discussion / Chatter thread ──────────────────\n discussion: [],\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/pages/sys-organization.page.ts","../../src/pages/sys-user.page.ts","../../src/pages/sys-position.page.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { Page } from '@objectstack/spec/ui';\n\n/**\n * sys_organization — Record Detail Page (slotted)\n *\n * Adds Members / Invitations / Teams tabs to the organization detail\n * page so an admin can manage the membership graph from a single place\n * instead of switching between three separate Setup list views.\n *\n * The page is `kind: 'slotted'` and overrides only the `tabs` slot —\n * header, actions, highlights, details and discussion fall through to\n * the synthesized default, so the organization's own fields and the\n * existing record-header actions (Set Active, Edit, Delete, Leave) are\n * preserved.\n *\n * Each tab is a `record:related_list` over a child object that already\n * has `organization_id` as a `Field.lookup('sys_organization')` — the\n * renderer scopes the list to the current organization automatically\n * (the related-list runtime uses the parent record id from the page\n * context as the filter value for `relationshipField`). The per-row\n * actions defined on each child object (invite_user, cancel_invitation,\n * remove_member, transfer_ownership, create_team, …) are inherited\n * unchanged — no admin endpoint has to be re-declared here.\n *\n * Notable omissions:\n * - **OAuth Apps**: `sys_oauth_application` is owned by `user_id`, not\n * `organization_id`. They surface on the user's Account → Developer\n * section instead of the org detail.\n * - **SSO**: no `sys_sso*` object exists yet. When the SSO plugin lands,\n * add a fourth tab here.\n */\nexport const SysOrganizationDetailPage: Page = {\n name: 'sys_organization_detail',\n label: 'Organization',\n type: 'record',\n object: 'sys_organization',\n template: 'default',\n kind: 'slotted',\n isDefault: true,\n // `regions` is required by the Page schema even for slotted pages —\n // empty array lets the synthesizer fill in header/details/discussion\n // while the `slots.tabs` override below replaces the synthesized\n // tabs strip.\n regions: [],\n slots: {\n tabs: {\n type: 'page:tabs',\n properties: {\n type: 'line',\n position: 'top',\n items: [\n {\n label: 'Members',\n icon: 'users',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_member',\n relationshipField: 'organization_id',\n columns: ['user_id', 'role', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Members',\n },\n },\n ],\n },\n {\n label: 'Invitations',\n icon: 'mail',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_invitation',\n relationshipField: 'organization_id',\n columns: ['email', 'role', 'status', 'expires_at', 'inviter_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Invitations',\n },\n },\n ],\n },\n {\n label: 'Teams',\n icon: 'users-round',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_team',\n relationshipField: 'organization_id',\n columns: ['name', 'created_at', 'updated_at'],\n sort: [{ field: 'name', order: 'asc' }],\n limit: 25,\n showViewAll: true,\n title: 'Teams',\n },\n },\n ],\n },\n ],\n },\n },\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { Page } from '@objectstack/spec/ui';\n\n/**\n * sys_user — Record Detail Page (slotted, default for ALL sys_user records)\n *\n * **Audience**: admins browsing user records from Setup.\n *\n * The Account App's \"Profile\" entry no longer routes here — it points at\n * the `account:profile_card` Console component for a settings-form-style\n * personal profile. This page therefore optimizes for the admin\n * use case: scanning a user's signals (email/verification/2FA/role),\n * reviewing related sessions/orgs/oauth/api-keys, and triggering\n * admin actions (ban / impersonate / set_role).\n *\n * Strategy\n * --------\n * - `kind: 'slotted'` + `isDefault: true`: overrides `highlights`,\n * `details`, `tabs` and `discussion`. Header / actions fall through\n * to the synthesizer so the object's declared actions\n * (`update_my_profile / change_my_password / resend_verification_email\n * / ban_user / set_user_role / impersonate_user / …`) still appear\n * in the header overflow menu automatically.\n * - `highlights` promotes the four signals worth scanning at the top:\n * email, verification state, 2FA, platform role. Highlight fields\n * are auto-dropped from the details grid below.\n * - `details` re-groups remaining fields into sections and hides\n * admin-internal audit columns. Banned / ban metadata is still\n * editable from the header actions — we just don't show it in\n * every user's body.\n * - `tabs` is **explicitly curated** to the 5 related lists that matter\n * on a user profile (Positions / Sessions / Linked Accounts / Organizations /\n * Personal OAuth Apps). Without this override, the synthesizer\n * auto-generates a tab per object that has a FK to sys_user\n * (sys_position.created_by, sys_email.updated_by, sys_user_preference,\n * sys_email_template.created_by, …) producing dozens of noisy\n * \"查看全部\" cards on every profile.\n * - `discussion: []` removes the Chatter feed — it has no business\n * on a personal profile.\n */\nexport const SysUserDetailPage: Page = {\n name: 'sys_user_detail',\n label: 'User',\n type: 'record',\n object: 'sys_user',\n template: 'default',\n kind: 'slotted',\n isDefault: true,\n\n regions: [],\n\n slots: {\n // ── Alert banners ─────────────────────────────────────────────\n // Conditional notices rendered between the page header and the\n // highlight strip. The unverified-email banner only shows for the\n // current user viewing their own profile (admins looking at other\n // users see nothing — they can use Setup actions instead).\n alerts: [\n {\n type: 'record:alert',\n properties: {\n severity: 'warning',\n icon: 'mail',\n title: '邮箱未验证',\n body: '验证你的邮箱以接收密码重置和重要的系统通知。',\n visible: 'record.id == ctx.user.id && record.email_verified == false',\n dismissible: false,\n action: {\n actionName: 'resend_verification_email',\n label: '重新发送验证邮件',\n },\n },\n },\n ],\n\n // ── Highlight chips above the fold ────────────────────────────\n highlights: {\n type: 'record:highlights',\n properties: {\n fields: ['email', 'email_verified', 'two_factor_enabled', 'role'],\n },\n },\n\n // ── Body / details grid ───────────────────────────────────────\n details: {\n type: 'record:details',\n properties: {\n hideFields: [\n 'id',\n 'banned',\n 'ban_reason',\n 'ban_expires',\n // already promoted to highlights:\n 'email',\n 'email_verified',\n 'two_factor_enabled',\n 'role',\n ],\n sections: [\n {\n label: 'Identity',\n fields: ['name', 'image'],\n },\n {\n label: 'Audit',\n fields: ['created_at', 'updated_at'],\n },\n ],\n },\n },\n\n // ── Tabs: curated related lists ───────────────────────────────\n // Only the 4 lists that are semantically about THIS user account.\n // Everything else (sys_position created_by, sys_email_template\n // updated_by, …) is incidental authorship metadata and would only\n // create noise.\n tabs: {\n type: 'page:tabs',\n properties: {\n type: 'line',\n position: 'top',\n items: [\n {\n label: 'Positions',\n icon: 'shield-check',\n children: [\n {\n // [ADR-0090 D3] Position assignments (岗位分派) — pure SDUI:\n // the Add picker creates sys_user_position rows storing the\n // position's MACHINE NAME (valueField: 'name'), and every\n // server-side rule (the D12 delegated-admin gate, audience-\n // anchor rejection) surfaces its error in the dialog.\n type: 'record:related_list',\n properties: {\n objectName: 'sys_user_position',\n relationshipField: 'user_id',\n columns: ['position', 'business_unit_id', 'granted_by', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Positions',\n add: {\n picker: {\n object: 'sys_position',\n valueField: 'name',\n labelField: 'label',\n },\n linkField: 'position',\n label: 'Assign position',\n },\n },\n },\n ],\n },\n {\n label: 'Sessions',\n icon: 'monitor',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_session',\n relationshipField: 'user_id',\n columns: ['user_agent', 'ip_address', 'created_at', 'expires_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Sessions',\n },\n },\n ],\n },\n {\n label: 'Linked Accounts',\n icon: 'link',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_account',\n relationshipField: 'user_id',\n columns: ['provider_id', 'account_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Linked Accounts',\n },\n },\n ],\n },\n {\n label: 'Organizations',\n icon: 'building-2',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_member',\n relationshipField: 'user_id',\n columns: ['organization_id', 'role', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Organizations',\n },\n },\n ],\n },\n {\n label: 'OAuth Apps',\n icon: 'key-square',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_oauth_application',\n relationshipField: 'user_id',\n columns: ['name', 'client_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'OAuth Apps',\n },\n },\n ],\n },\n // ── Security ──────────────────────────────────────────────\n // Grouped self-service security controls. Each `record:quick_actions`\n // pulls its actions by name from the sys_user object metadata\n // (DRY — definitions stay on the object) and filters by\n // `location: 'record_section'` so they only render here, not\n // in the global header row.\n {\n label: 'Security',\n icon: 'shield',\n children: [\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Password & Sign-in',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Change your password or the email address associated with this account.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['change_my_password', 'change_my_email'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Two-Factor Authentication',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Add a second layer of security using a TOTP authenticator app. Backup codes let you sign in if you lose your device.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['enable_two_factor', 'disable_two_factor', 'generate_backup_codes'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Email Verification',\n },\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Verify your email so password resets and notifications reach you. The button appears only while verification is pending.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['resend_verification_email'],\n },\n },\n { type: 'element:divider' },\n {\n type: 'element:text',\n properties: {\n variant: 'subheading',\n content: 'Danger Zone',\n },\n className: 'text-destructive',\n },\n {\n type: 'element:text',\n properties: {\n variant: 'caption',\n content: 'Permanent. Once deleted, your account cannot be recovered.',\n },\n },\n {\n type: 'record:quick_actions',\n properties: {\n location: 'record_section',\n align: 'start',\n actionNames: ['delete_my_account'],\n },\n },\n ],\n },\n // ── API Keys ──────────────────────────────────────────────\n // Programmatic credentials issued for this user. Filtered by\n // user_id FK; the sys_api_key object's own list-item actions\n // (revoke / restore) handle row operations.\n {\n label: 'API Keys',\n icon: 'key-round',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_api_key',\n relationshipField: 'user_id',\n columns: ['name', 'prefix', 'expires_at', 'revoked', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'API Keys',\n },\n },\n ],\n },\n ],\n },\n },\n\n // ── Suppress the Discussion / Chatter thread ──────────────────\n discussion: [],\n },\n};\n","// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { Page } from '@objectstack/spec/ui';\n\n/**\n * sys_position — Record Detail Page (slotted, default for ALL sys_position\n * records)\n *\n * **Audience**: admins managing capability distribution from Setup.\n *\n * A position (岗位, ADR-0090 D3) is the flat distribution group: users hold\n * it (`sys_user_position`), and it binds permission sets\n * (`sys_position_permission_set`). This page makes both edges manageable\n * as PURE SDUI — two `record:related_list` tabs with Add pickers; no\n * bespoke React:\n *\n * - **Holders** — who holds this position. `sys_user_position.position`\n * stores the position's MACHINE NAME, so the list keys on\n * `relationshipValueField: 'name'` (the generic name-keyed-junction\n * affordance this page motivated). Assigning here inserts an ordinary\n * assignment row; the ADR-0090 D12 delegated-admin gate governs the\n * write and its denial reason surfaces in the Add dialog. The\n * `business_unit_id` column is the assignment-level BU anchor\n * (ADR-0090 Addendum); `valid_from`/`valid_until` columns join it when\n * ADR-0091 L1 lands.\n * - **Permission Sets** — what the position distributes\n * (`sys_position_permission_set`, ordinary id-keyed junction). Binding\n * is guarded by BOTH the audience-anchor gate (D5/D9 — high-privilege\n * sets never bind to everyone/guest) and the D12 gate.\n *\n * Header/actions fall through to the synthesizer, so the object's declared\n * row actions (activate/deactivate/clone/set-default) keep working.\n */\nexport const SysPositionDetailPage: Page = {\n name: 'sys_position_detail',\n label: 'Position',\n type: 'record',\n object: 'sys_position',\n template: 'default',\n kind: 'slotted',\n isDefault: true,\n\n regions: [],\n\n slots: {\n tabs: {\n type: 'page:tabs',\n properties: {\n type: 'line',\n position: 'top',\n items: [\n {\n label: 'Holders',\n icon: 'users',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_user_position',\n relationshipField: 'position',\n relationshipValueField: 'name',\n columns: ['user_id', 'business_unit_id', 'granted_by', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Holders',\n add: {\n picker: {\n object: 'sys_user',\n labelField: 'name',\n },\n linkField: 'user_id',\n label: 'Assign user',\n },\n },\n },\n ],\n },\n {\n label: 'Permission Sets',\n icon: 'lock',\n children: [\n {\n type: 'record:related_list',\n properties: {\n objectName: 'sys_position_permission_set',\n relationshipField: 'position_id',\n columns: ['permission_set_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n limit: 25,\n showViewAll: true,\n title: 'Permission Sets',\n add: {\n picker: {\n object: 'sys_permission_set',\n labelField: 'label',\n },\n linkField: 'permission_set_id',\n label: 'Bind permission set',\n },\n },\n },\n ],\n },\n ],\n },\n },\n\n // No Chatter feed on an RBAC primitive.\n discussion: [],\n },\n};\n"]}
|
package/dist/plugin.js
CHANGED
|
@@ -666,8 +666,8 @@ var enObjects = {
|
|
|
666
666
|
user_id: {
|
|
667
667
|
label: "User"
|
|
668
668
|
},
|
|
669
|
-
|
|
670
|
-
label: "
|
|
669
|
+
function_in_business_unit: {
|
|
670
|
+
label: "Function in Business Unit",
|
|
671
671
|
help: "`lead` is the day-to-day head; `deputy` may stand in for the lead in approval routing.",
|
|
672
672
|
options: {
|
|
673
673
|
member: "member",
|
|
@@ -2619,12 +2619,13 @@ var en = {
|
|
|
2619
2619
|
nav_marketplace_installed: { label: "Installed Apps" },
|
|
2620
2620
|
// People & Organization
|
|
2621
2621
|
nav_users: { label: "Users" },
|
|
2622
|
+
nav_organization: { label: "Organization" },
|
|
2622
2623
|
nav_business_units: { label: "Business Units" },
|
|
2623
2624
|
nav_teams: { label: "Teams" },
|
|
2624
2625
|
nav_organizations: { label: "Organizations" },
|
|
2625
2626
|
nav_invitations: { label: "Invitations" },
|
|
2626
2627
|
// Access Control
|
|
2627
|
-
|
|
2628
|
+
nav_positions: { label: "Positions" },
|
|
2628
2629
|
nav_permission_sets: { label: "Permission Sets" },
|
|
2629
2630
|
nav_sharing_rules: { label: "Sharing Rules" },
|
|
2630
2631
|
nav_record_shares: { label: "Record Shares" },
|
|
@@ -3412,8 +3413,8 @@ var zhCNObjects = {
|
|
|
3412
3413
|
user_id: {
|
|
3413
3414
|
label: "\u7528\u6237"
|
|
3414
3415
|
},
|
|
3415
|
-
|
|
3416
|
-
label: "\u4E1A\u52A1\u5355\u5143\u5185\
|
|
3416
|
+
function_in_business_unit: {
|
|
3417
|
+
label: "\u4E1A\u52A1\u5355\u5143\u5185\u804C\u80FD",
|
|
3417
3418
|
help: "`lead` \u8868\u793A\u65E5\u5E38\u8D1F\u8D23\u4EBA\uFF1B`deputy` \u53EF\u5728\u5BA1\u6279\u8DEF\u7531\u4E2D\u4EE3\u66FF\u8D1F\u8D23\u4EBA\u3002",
|
|
3418
3419
|
options: {
|
|
3419
3420
|
member: "\u6210\u5458",
|
|
@@ -5362,16 +5363,18 @@ var zhCN = {
|
|
|
5362
5363
|
group_advanced: { label: "\u9AD8\u7EA7" },
|
|
5363
5364
|
nav_system_overview: { label: "\u7CFB\u7EDF\u6982\u89C8" },
|
|
5364
5365
|
nav_users: { label: "\u7528\u6237" },
|
|
5366
|
+
nav_organization: { label: "\u7EC4\u7EC7" },
|
|
5365
5367
|
nav_business_units: { label: "\u4E1A\u52A1\u5355\u5143" },
|
|
5366
5368
|
nav_teams: { label: "\u56E2\u961F" },
|
|
5367
5369
|
nav_organizations: { label: "\u7EC4\u7EC7" },
|
|
5368
5370
|
nav_invitations: { label: "\u9080\u8BF7" },
|
|
5369
|
-
|
|
5371
|
+
nav_positions: { label: "\u5C97\u4F4D" },
|
|
5370
5372
|
nav_capabilities: { label: "\u80FD\u529B" },
|
|
5371
5373
|
nav_permission_sets: { label: "\u6743\u9650\u96C6" },
|
|
5372
5374
|
nav_sharing_rules: { label: "\u5171\u4EAB\u89C4\u5219" },
|
|
5373
5375
|
nav_record_shares: { label: "\u8BB0\u5F55\u5171\u4EAB" },
|
|
5374
5376
|
nav_api_keys: { label: "API \u5BC6\u94A5" },
|
|
5377
|
+
nav_connect_agent: { label: "\u8FDE\u63A5\u667A\u80FD\u4F53" },
|
|
5375
5378
|
nav_approval_processes: { label: "\u5BA1\u6279\u6D41\u7A0B" },
|
|
5376
5379
|
nav_approval_requests: { label: "\u5BA1\u6279\u7533\u8BF7" },
|
|
5377
5380
|
nav_approval_actions: { label: "\u5BA1\u6279\u5386\u53F2" },
|
|
@@ -6121,8 +6124,8 @@ var jaJPObjects = {
|
|
|
6121
6124
|
user_id: {
|
|
6122
6125
|
label: "\u30E6\u30FC\u30B6\u30FC"
|
|
6123
6126
|
},
|
|
6124
|
-
|
|
6125
|
-
label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8\u5185\
|
|
6127
|
+
function_in_business_unit: {
|
|
6128
|
+
label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8\u5185\u306E\u8077\u80FD",
|
|
6126
6129
|
help: "`lead` \u306F\u65E5\u5E38\u306E\u8CAC\u4EFB\u8005\u3001`deputy` \u306F\u627F\u8A8D\u30EB\u30FC\u30C6\u30A3\u30F3\u30B0\u3067\u30EA\u30FC\u30C9\u306E\u4EE3\u7406\u3092\u52D9\u3081\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
6127
6130
|
options: {
|
|
6128
6131
|
member: "\u30E1\u30F3\u30D0\u30FC",
|
|
@@ -8070,11 +8073,12 @@ var jaJP = {
|
|
|
8070
8073
|
group_advanced: { label: "\u8A73\u7D30" },
|
|
8071
8074
|
nav_system_overview: { label: "\u30B7\u30B9\u30C6\u30E0\u6982\u8981" },
|
|
8072
8075
|
nav_users: { label: "\u30E6\u30FC\u30B6\u30FC" },
|
|
8076
|
+
nav_organization: { label: "\u7D44\u7E54" },
|
|
8073
8077
|
nav_business_units: { label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8" },
|
|
8074
8078
|
nav_teams: { label: "\u30C1\u30FC\u30E0" },
|
|
8075
8079
|
nav_organizations: { label: "\u7D44\u7E54" },
|
|
8076
8080
|
nav_invitations: { label: "\u62DB\u5F85" },
|
|
8077
|
-
|
|
8081
|
+
nav_positions: { label: "\u30DD\u30B8\u30B7\u30E7\u30F3" },
|
|
8078
8082
|
nav_permission_sets: { label: "\u6A29\u9650\u30BB\u30C3\u30C8" },
|
|
8079
8083
|
nav_sharing_rules: { label: "\u5171\u6709\u30EB\u30FC\u30EB" },
|
|
8080
8084
|
nav_record_shares: { label: "\u30EC\u30B3\u30FC\u30C9\u5171\u6709" },
|
|
@@ -8827,8 +8831,8 @@ var esESObjects = {
|
|
|
8827
8831
|
user_id: {
|
|
8828
8832
|
label: "Usuario"
|
|
8829
8833
|
},
|
|
8830
|
-
|
|
8831
|
-
label: "
|
|
8834
|
+
function_in_business_unit: {
|
|
8835
|
+
label: "Funci\xF3n en la unidad de negocio",
|
|
8832
8836
|
help: "`lead` es el responsable del d\xEDa a d\xEDa; `deputy` puede sustituir al responsable en el enrutamiento de aprobaciones.",
|
|
8833
8837
|
options: {
|
|
8834
8838
|
member: "Miembro",
|
|
@@ -10776,11 +10780,12 @@ var esES = {
|
|
|
10776
10780
|
group_advanced: { label: "Avanzado" },
|
|
10777
10781
|
nav_system_overview: { label: "Resumen del Sistema" },
|
|
10778
10782
|
nav_users: { label: "Usuarios" },
|
|
10783
|
+
nav_organization: { label: "Organizaci\xF3n" },
|
|
10779
10784
|
nav_business_units: { label: "Unidades de negocio" },
|
|
10780
10785
|
nav_teams: { label: "Equipos" },
|
|
10781
10786
|
nav_organizations: { label: "Organizaciones" },
|
|
10782
10787
|
nav_invitations: { label: "Invitaciones" },
|
|
10783
|
-
|
|
10788
|
+
nav_positions: { label: "Posiciones" },
|
|
10784
10789
|
nav_permission_sets: { label: "Conjuntos de Permisos" },
|
|
10785
10790
|
nav_sharing_rules: { label: "Reglas de Compartici\xF3n" },
|
|
10786
10791
|
nav_record_shares: { label: "Registros Compartidos" },
|
|
@@ -12180,69 +12185,6 @@ var enMetadataForms = {
|
|
|
12180
12185
|
label: "Label",
|
|
12181
12186
|
helpText: "Display label for admins"
|
|
12182
12187
|
},
|
|
12183
|
-
isProfile: {
|
|
12184
|
-
label: "Is Profile",
|
|
12185
|
-
helpText: "Profile = base set assigned to users. Permission Set = additive grant."
|
|
12186
|
-
},
|
|
12187
|
-
systemPermissions: {
|
|
12188
|
-
label: "System Permissions",
|
|
12189
|
-
helpText: "List of system capability keys"
|
|
12190
|
-
},
|
|
12191
|
-
objects: {
|
|
12192
|
-
label: "Objects",
|
|
12193
|
-
helpText: '{ "account": { allowRead: true, allowEdit: true, ... } }'
|
|
12194
|
-
},
|
|
12195
|
-
fields: {
|
|
12196
|
-
label: "Fields",
|
|
12197
|
-
helpText: '{ "account.amount": { readable: true, editable: false } }'
|
|
12198
|
-
},
|
|
12199
|
-
tabPermissions: {
|
|
12200
|
-
label: "Tab Permissions",
|
|
12201
|
-
helpText: '{ "app_crm": "visible", "app_admin": "hidden" }'
|
|
12202
|
-
},
|
|
12203
|
-
rowLevelSecurity: {
|
|
12204
|
-
label: "Row Level Security",
|
|
12205
|
-
helpText: "Array of RLS policies (see rls.zod.ts)"
|
|
12206
|
-
},
|
|
12207
|
-
contextVariables: {
|
|
12208
|
-
label: "Context Variables",
|
|
12209
|
-
helpText: "Custom variables referenced in RLS predicates"
|
|
12210
|
-
}
|
|
12211
|
-
}
|
|
12212
|
-
},
|
|
12213
|
-
profile: {
|
|
12214
|
-
label: "Profile",
|
|
12215
|
-
sections: {
|
|
12216
|
-
identity: {
|
|
12217
|
-
label: "Identity",
|
|
12218
|
-
description: "Permission Sets stack on top of a Profile to grant additional access. Profiles are the base set assigned 1:1 to each user."
|
|
12219
|
-
},
|
|
12220
|
-
system_permissions: {
|
|
12221
|
-
label: "System Permissions",
|
|
12222
|
-
description: "High-level capabilities not tied to a specific object \u2014 e.g. manage_users, view_audit_logs."
|
|
12223
|
-
},
|
|
12224
|
-
object_and_field_permissions: {
|
|
12225
|
-
label: "Object & Field Permissions",
|
|
12226
|
-
description: "Per-object CRUD + per-field FLS. Edit via the matrix editor or paste JSON here."
|
|
12227
|
-
},
|
|
12228
|
-
tab_and_row_level_security: {
|
|
12229
|
-
label: "Tab & Row-Level Security",
|
|
12230
|
-
description: "Tab visibility, RLS policies, and custom context variables for predicate evaluation."
|
|
12231
|
-
}
|
|
12232
|
-
},
|
|
12233
|
-
fields: {
|
|
12234
|
-
name: {
|
|
12235
|
-
label: "Name",
|
|
12236
|
-
helpText: "Machine name (snake_case)"
|
|
12237
|
-
},
|
|
12238
|
-
label: {
|
|
12239
|
-
label: "Label",
|
|
12240
|
-
helpText: "Display label for admins"
|
|
12241
|
-
},
|
|
12242
|
-
isProfile: {
|
|
12243
|
-
label: "Is Profile",
|
|
12244
|
-
helpText: "Profile = base set assigned to users. Permission Set = additive grant."
|
|
12245
|
-
},
|
|
12246
12188
|
systemPermissions: {
|
|
12247
12189
|
label: "System Permissions",
|
|
12248
12190
|
helpText: "List of system capability keys"
|
|
@@ -12269,12 +12211,12 @@ var enMetadataForms = {
|
|
|
12269
12211
|
}
|
|
12270
12212
|
}
|
|
12271
12213
|
},
|
|
12272
|
-
|
|
12273
|
-
label: "
|
|
12214
|
+
position: {
|
|
12215
|
+
label: "Position",
|
|
12274
12216
|
sections: {
|
|
12275
|
-
|
|
12276
|
-
label: "
|
|
12277
|
-
description: "
|
|
12217
|
+
position: {
|
|
12218
|
+
label: "Position",
|
|
12219
|
+
description: "A position is a flat, assignable bundle of permission sets (e.g. sales_rep, sales_manager). Capability lives on permission sets; visibility depth lives on the business-unit tree."
|
|
12278
12220
|
}
|
|
12279
12221
|
},
|
|
12280
12222
|
fields: {
|
|
@@ -12285,10 +12227,6 @@ var enMetadataForms = {
|
|
|
12285
12227
|
label: {
|
|
12286
12228
|
label: "Label"
|
|
12287
12229
|
},
|
|
12288
|
-
parent: {
|
|
12289
|
-
label: "Parent",
|
|
12290
|
-
helpText: "Parent role machine name (Reports To)"
|
|
12291
|
-
},
|
|
12292
12230
|
description: {
|
|
12293
12231
|
label: "Description"
|
|
12294
12232
|
}
|
|
@@ -13818,10 +13756,6 @@ var zhCNMetadataForms = {
|
|
|
13818
13756
|
label: "\u663E\u793A\u540D\u79F0",
|
|
13819
13757
|
helpText: "\u9762\u5411\u7BA1\u7406\u5458\u7684\u663E\u793A\u6807\u7B7E"
|
|
13820
13758
|
},
|
|
13821
|
-
isProfile: {
|
|
13822
|
-
label: "\u662F\u5426\u914D\u7F6E\u6587\u4EF6",
|
|
13823
|
-
helpText: "\u52FE\u9009\u540E\u4F5C\u4E3A\u5B8C\u6574\u914D\u7F6E\u6587\u4EF6\uFF08\u800C\u975E\u9644\u52A0\u6743\u9650\u96C6\uFF09"
|
|
13824
|
-
},
|
|
13825
13759
|
systemPermissions: {
|
|
13826
13760
|
label: "\u7CFB\u7EDF\u6743\u9650",
|
|
13827
13761
|
helpText: "\u5E94\u7528\u8BBF\u95EE\u3001API\u3001\u7BA1\u7406\u64CD\u4F5C"
|
|
@@ -13848,71 +13782,12 @@ var zhCNMetadataForms = {
|
|
|
13848
13782
|
}
|
|
13849
13783
|
}
|
|
13850
13784
|
},
|
|
13851
|
-
|
|
13852
|
-
label: "\
|
|
13785
|
+
position: {
|
|
13786
|
+
label: "\u5C97\u4F4D",
|
|
13853
13787
|
sections: {
|
|
13854
|
-
|
|
13855
|
-
label: "\
|
|
13856
|
-
description: "\
|
|
13857
|
-
},
|
|
13858
|
-
system_permissions: {
|
|
13859
|
-
label: "\u7CFB\u7EDF\u6743\u9650",
|
|
13860
|
-
description: "\u4E0E\u7279\u5B9A\u5BF9\u8C61\u65E0\u5173\u7684\u9AD8\u7EA7\u80FD\u529B\u2014\u2014\u4F8B\u5982 manage_users\u3001view_audit_logs\u3002"
|
|
13861
|
-
},
|
|
13862
|
-
object_and_field_permissions: {
|
|
13863
|
-
label: "\u5BF9\u8C61\u4E0E\u5B57\u6BB5\u6743\u9650",
|
|
13864
|
-
description: "\u6309\u5BF9\u8C61\u7684\u589E\u5220\u6539\u67E5 + \u6309\u5B57\u6BB5\u7684\u5B57\u6BB5\u7EA7\u5B89\u5168\uFF08FLS\uFF09\u3002\u53EF\u901A\u8FC7\u77E9\u9635\u7F16\u8F91\u5668\u7F16\u8F91\uFF0C\u6216\u5728\u6B64\u5904\u7C98\u8D34 JSON\u3002"
|
|
13865
|
-
},
|
|
13866
|
-
tab_and_row_level_security: {
|
|
13867
|
-
label: "\u6807\u7B7E\u9875\u4E0E\u884C\u7EA7\u5B89\u5168",
|
|
13868
|
-
description: "\u6807\u7B7E\u9875\u53EF\u89C1\u6027\u3001RLS \u7B56\u7565\uFF0C\u4EE5\u53CA\u7528\u4E8E\u8C13\u8BCD\u6C42\u503C\u7684\u81EA\u5B9A\u4E49\u4E0A\u4E0B\u6587\u53D8\u91CF\u3002"
|
|
13869
|
-
}
|
|
13870
|
-
},
|
|
13871
|
-
fields: {
|
|
13872
|
-
name: {
|
|
13873
|
-
label: "\u540D\u79F0",
|
|
13874
|
-
helpText: "\u673A\u5668\u540D\uFF08snake_case\uFF09"
|
|
13875
|
-
},
|
|
13876
|
-
label: {
|
|
13877
|
-
label: "\u663E\u793A\u540D\u79F0",
|
|
13878
|
-
helpText: "\u9762\u5411\u7BA1\u7406\u5458\u663E\u793A\u7684\u6807\u7B7E"
|
|
13879
|
-
},
|
|
13880
|
-
isProfile: {
|
|
13881
|
-
label: "\u662F\u5426\u914D\u7F6E\u6587\u4EF6",
|
|
13882
|
-
helpText: "\u914D\u7F6E\u6587\u4EF6 = \u5206\u914D\u7ED9\u7528\u6237\u7684\u57FA\u7840\u96C6\u5408\u3002\u6743\u9650\u96C6 = \u9644\u52A0\u6388\u4E88\u3002"
|
|
13883
|
-
},
|
|
13884
|
-
systemPermissions: {
|
|
13885
|
-
label: "\u7CFB\u7EDF\u6743\u9650",
|
|
13886
|
-
helpText: "\u7CFB\u7EDF\u80FD\u529B\u952E\u5217\u8868"
|
|
13887
|
-
},
|
|
13888
|
-
objects: {
|
|
13889
|
-
label: "\u5BF9\u8C61\u6743\u9650",
|
|
13890
|
-
helpText: '\u793A\u4F8B\uFF1A{ "account": { allowRead: true, allowEdit: true, ... } }'
|
|
13891
|
-
},
|
|
13892
|
-
fields: {
|
|
13893
|
-
label: "\u5B57\u6BB5",
|
|
13894
|
-
helpText: '\u793A\u4F8B\uFF1A{ "account.amount": { readable: true, editable: false } }'
|
|
13895
|
-
},
|
|
13896
|
-
tabPermissions: {
|
|
13897
|
-
label: "\u6807\u7B7E\u9875\u6743\u9650",
|
|
13898
|
-
helpText: '\u793A\u4F8B\uFF1A{ "app_crm": "visible", "app_admin": "hidden" }'
|
|
13899
|
-
},
|
|
13900
|
-
rowLevelSecurity: {
|
|
13901
|
-
label: "\u884C\u7EA7\u5B89\u5168",
|
|
13902
|
-
helpText: "RLS \u7B56\u7565\u6570\u7EC4\uFF08\u53C2\u89C1 rls.zod.ts\uFF09"
|
|
13903
|
-
},
|
|
13904
|
-
contextVariables: {
|
|
13905
|
-
label: "\u4E0A\u4E0B\u6587\u53D8\u91CF",
|
|
13906
|
-
helpText: "RLS \u8C13\u8BCD\u4E2D\u5F15\u7528\u7684\u81EA\u5B9A\u4E49\u53D8\u91CF"
|
|
13907
|
-
}
|
|
13908
|
-
}
|
|
13909
|
-
},
|
|
13910
|
-
role: {
|
|
13911
|
-
label: "\u89D2\u8272",
|
|
13912
|
-
sections: {
|
|
13913
|
-
role: {
|
|
13914
|
-
label: "\u89D2\u8272\u5B9A\u4E49",
|
|
13915
|
-
description: "\u89D2\u8272\u540D\u79F0\u4E0E\u7EE7\u627F\u5173\u7CFB"
|
|
13788
|
+
position: {
|
|
13789
|
+
label: "\u5C97\u4F4D",
|
|
13790
|
+
description: "\u5C97\u4F4D\u662F\u6241\u5E73\u7684\u3001\u53EF\u5206\u914D\u7684\u6743\u9650\u96C6\u7EC4\u5408(\u5982 sales_rep\u3001sales_manager)\u3002\u80FD\u529B\u5728\u6743\u9650\u96C6\u4E0A;\u53EF\u89C1\u8303\u56F4\u6DF1\u5EA6\u5728\u4E1A\u52A1\u5355\u5143\u6811\u4E0A\u3002"
|
|
13916
13791
|
}
|
|
13917
13792
|
},
|
|
13918
13793
|
fields: {
|
|
@@ -13923,10 +13798,6 @@ var zhCNMetadataForms = {
|
|
|
13923
13798
|
label: {
|
|
13924
13799
|
label: "\u663E\u793A\u540D\u79F0"
|
|
13925
13800
|
},
|
|
13926
|
-
parent: {
|
|
13927
|
-
label: "\u7236\u7EA7",
|
|
13928
|
-
helpText: "\u7EE7\u627F\u7236\u89D2\u8272\u7684\u6743\u9650"
|
|
13929
|
-
},
|
|
13930
13801
|
description: {
|
|
13931
13802
|
label: "\u63CF\u8FF0"
|
|
13932
13803
|
}
|
|
@@ -15456,10 +15327,6 @@ var jaJPMetadataForms = {
|
|
|
15456
15327
|
label: "\u8868\u793A\u540D",
|
|
15457
15328
|
helpText: "\u7BA1\u7406\u8005\u5411\u3051\u8868\u793A\u30E9\u30D9\u30EB"
|
|
15458
15329
|
},
|
|
15459
|
-
isProfile: {
|
|
15460
|
-
label: "\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u304B",
|
|
15461
|
-
helpText: "Profile = \u30E6\u30FC\u30B6\u30FC\u306B\u5272\u308A\u5F53\u3066\u308B\u57FA\u672C\u30BB\u30C3\u30C8\u3002Permission Set = \u8FFD\u52A0\u6A29\u9650\u3002"
|
|
15462
|
-
},
|
|
15463
15330
|
systemPermissions: {
|
|
15464
15331
|
label: "\u30B7\u30B9\u30C6\u30E0\u6A29\u9650",
|
|
15465
15332
|
helpText: "\u30B7\u30B9\u30C6\u30E0\u6A5F\u80FD\u30AD\u30FC\u306E\u30EA\u30B9\u30C8"
|
|
@@ -15486,71 +15353,12 @@ var jaJPMetadataForms = {
|
|
|
15486
15353
|
}
|
|
15487
15354
|
}
|
|
15488
15355
|
},
|
|
15489
|
-
|
|
15490
|
-
label: "\
|
|
15356
|
+
position: {
|
|
15357
|
+
label: "\u30DD\u30B8\u30B7\u30E7\u30F3",
|
|
15491
15358
|
sections: {
|
|
15492
|
-
|
|
15493
|
-
label: "
|
|
15494
|
-
description: "\u6A29\u9650\u30BB\u30C3\u30C8\
|
|
15495
|
-
},
|
|
15496
|
-
system_permissions: {
|
|
15497
|
-
label: "\u30B7\u30B9\u30C6\u30E0\u6A29\u9650",
|
|
15498
|
-
description: "\u7279\u5B9A\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304B\u306A\u3044\u9AD8\u30EC\u30D9\u30EB\u6A5F\u80FD \u2014 \u4F8B: manage_users, view_audit_logs\u3002"
|
|
15499
|
-
},
|
|
15500
|
-
object_and_field_permissions: {
|
|
15501
|
-
label: "\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3068\u30D5\u30A3\u30FC\u30EB\u30C9\u6A29\u9650",
|
|
15502
|
-
description: "\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u5358\u4F4D\u306E CRUD + \u30D5\u30A3\u30FC\u30EB\u30C9\u5358\u4F4D\u306E FLS\u3002\u30DE\u30C8\u30EA\u30C3\u30AF\u30B9\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u7DE8\u96C6\u3001\u307E\u305F\u306F\u3053\u3053\u306B JSON \u3092\u8CBC\u308A\u4ED8\u3051\u3002"
|
|
15503
|
-
},
|
|
15504
|
-
tab_and_row_level_security: {
|
|
15505
|
-
label: "\u30BF\u30D6\u3068\u884C\u30EC\u30D9\u30EB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3",
|
|
15506
|
-
description: "\u30BF\u30D6\u8868\u793A\u3001RLS \u30DD\u30EA\u30B7\u30FC\u3001\u8FF0\u8A9E\u8A55\u4FA1\u7528\u30AB\u30B9\u30BF\u30E0\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5909\u6570\u3002"
|
|
15507
|
-
}
|
|
15508
|
-
},
|
|
15509
|
-
fields: {
|
|
15510
|
-
name: {
|
|
15511
|
-
label: "\u540D\u524D",
|
|
15512
|
-
helpText: "\u30DE\u30B7\u30F3\u540D\uFF08snake_case\uFF09"
|
|
15513
|
-
},
|
|
15514
|
-
label: {
|
|
15515
|
-
label: "\u8868\u793A\u540D",
|
|
15516
|
-
helpText: "\u7BA1\u7406\u8005\u5411\u3051\u8868\u793A\u30E9\u30D9\u30EB"
|
|
15517
|
-
},
|
|
15518
|
-
isProfile: {
|
|
15519
|
-
label: "\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u304B",
|
|
15520
|
-
helpText: "Profile = \u30E6\u30FC\u30B6\u30FC\u306B\u5272\u308A\u5F53\u3066\u308B\u57FA\u672C\u30BB\u30C3\u30C8\u3002Permission Set = \u8FFD\u52A0\u6A29\u9650\u3002"
|
|
15521
|
-
},
|
|
15522
|
-
systemPermissions: {
|
|
15523
|
-
label: "\u30B7\u30B9\u30C6\u30E0\u6A29\u9650",
|
|
15524
|
-
helpText: "\u30B7\u30B9\u30C6\u30E0\u6A5F\u80FD\u30AD\u30FC\u306E\u30EA\u30B9\u30C8"
|
|
15525
|
-
},
|
|
15526
|
-
objects: {
|
|
15527
|
-
label: "\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u6A29\u9650",
|
|
15528
|
-
helpText: '\u4F8B: { "account": { allowRead: true, allowEdit: true, ... } }'
|
|
15529
|
-
},
|
|
15530
|
-
fields: {
|
|
15531
|
-
label: "\u30D5\u30A3\u30FC\u30EB\u30C9",
|
|
15532
|
-
helpText: '\u4F8B: { "account.amount": { readable: true, editable: false } }'
|
|
15533
|
-
},
|
|
15534
|
-
tabPermissions: {
|
|
15535
|
-
label: "\u30BF\u30D6\u6A29\u9650",
|
|
15536
|
-
helpText: '\u4F8B: { "app_crm": "visible", "app_admin": "hidden" }'
|
|
15537
|
-
},
|
|
15538
|
-
rowLevelSecurity: {
|
|
15539
|
-
label: "\u884C\u30EC\u30D9\u30EB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3",
|
|
15540
|
-
helpText: "RLS \u30DD\u30EA\u30B7\u30FC\u306E\u914D\u5217\uFF08rls.zod.ts \u53C2\u7167\uFF09"
|
|
15541
|
-
},
|
|
15542
|
-
contextVariables: {
|
|
15543
|
-
label: "\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5909\u6570",
|
|
15544
|
-
helpText: "RLS \u8FF0\u8A9E\u3067\u53C2\u7167\u3059\u308B\u30AB\u30B9\u30BF\u30E0\u5909\u6570"
|
|
15545
|
-
}
|
|
15546
|
-
}
|
|
15547
|
-
},
|
|
15548
|
-
role: {
|
|
15549
|
-
label: "\u30ED\u30FC\u30EB",
|
|
15550
|
-
sections: {
|
|
15551
|
-
role: {
|
|
15552
|
-
label: "\u30ED\u30FC\u30EB",
|
|
15553
|
-
description: "\u30ED\u30FC\u30EB\u306F\u30EC\u30B3\u30FC\u30C9\u5171\u6709\u306B\u4F7F\u3046\u968E\u5C64\u3092\u69CB\u6210\uFF08sales VP \u2192 sales mgr \u2192 sales rep\uFF09\u3002\u6A29\u9650\u81EA\u4F53\u306F Permission Sets \u3068 Profiles \u306B\u5B58\u5728\u3002"
|
|
15359
|
+
position: {
|
|
15360
|
+
label: "\u30DD\u30B8\u30B7\u30E7\u30F3",
|
|
15361
|
+
description: "\u30DD\u30B8\u30B7\u30E7\u30F3\u306F\u6A29\u9650\u30BB\u30C3\u30C8\u3092\u307E\u3068\u3081\u3066\u5272\u308A\u5F53\u3066\u308B\u30D5\u30E9\u30C3\u30C8\u306A\u5358\u4F4D(\u4F8B: sales_rep\u3001sales_manager)\u3002\u80FD\u529B\u306F\u6A29\u9650\u30BB\u30C3\u30C8\u306B\u3001\u53EF\u8996\u7BC4\u56F2\u306E\u6DF1\u3055\u306F\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8\u30C4\u30EA\u30FC\u306B\u3042\u308A\u307E\u3059\u3002"
|
|
15554
15362
|
}
|
|
15555
15363
|
},
|
|
15556
15364
|
fields: {
|
|
@@ -15561,10 +15369,6 @@ var jaJPMetadataForms = {
|
|
|
15561
15369
|
label: {
|
|
15562
15370
|
label: "\u8868\u793A\u540D"
|
|
15563
15371
|
},
|
|
15564
|
-
parent: {
|
|
15565
|
-
label: "\u89AA",
|
|
15566
|
-
helpText: "\u89AA\u30ED\u30FC\u30EB\u306E\u30DE\u30B7\u30F3\u540D\uFF08Reports To\uFF09"
|
|
15567
|
-
},
|
|
15568
15372
|
description: {
|
|
15569
15373
|
label: "\u8AAC\u660E"
|
|
15570
15374
|
}
|
|
@@ -17094,10 +16898,6 @@ var esESMetadataForms = {
|
|
|
17094
16898
|
label: "Etiqueta",
|
|
17095
16899
|
helpText: "Etiqueta mostrada para administradores"
|
|
17096
16900
|
},
|
|
17097
|
-
isProfile: {
|
|
17098
|
-
label: "Es perfil",
|
|
17099
|
-
helpText: "Profile = conjunto base asignado a usuarios. Permission Set = concesi\xF3n adicional."
|
|
17100
|
-
},
|
|
17101
16901
|
systemPermissions: {
|
|
17102
16902
|
label: "Permisos del sistema",
|
|
17103
16903
|
helpText: "Lista de claves de capacidades del sistema"
|
|
@@ -17124,71 +16924,12 @@ var esESMetadataForms = {
|
|
|
17124
16924
|
}
|
|
17125
16925
|
}
|
|
17126
16926
|
},
|
|
17127
|
-
|
|
17128
|
-
label: "
|
|
16927
|
+
position: {
|
|
16928
|
+
label: "Posici\xF3n",
|
|
17129
16929
|
sections: {
|
|
17130
|
-
|
|
17131
|
-
label: "
|
|
17132
|
-
description: "
|
|
17133
|
-
},
|
|
17134
|
-
system_permissions: {
|
|
17135
|
-
label: "Permisos del sistema",
|
|
17136
|
-
description: "Capacidades de alto nivel no vinculadas a un objeto espec\xEDfico \u2014 p. ej. manage_users, view_audit_logs."
|
|
17137
|
-
},
|
|
17138
|
-
object_and_field_permissions: {
|
|
17139
|
-
label: "Permisos de objeto y campo",
|
|
17140
|
-
description: "CRUD por objeto + FLS por campo. Edita mediante el editor matricial o pega JSON aqu\xED."
|
|
17141
|
-
},
|
|
17142
|
-
tab_and_row_level_security: {
|
|
17143
|
-
label: "Pesta\xF1a y seguridad a nivel de fila",
|
|
17144
|
-
description: "Visibilidad de pesta\xF1as, pol\xEDticas RLS y variables de contexto personalizadas para evaluar predicados."
|
|
17145
|
-
}
|
|
17146
|
-
},
|
|
17147
|
-
fields: {
|
|
17148
|
-
name: {
|
|
17149
|
-
label: "Nombre",
|
|
17150
|
-
helpText: "Nombre de m\xE1quina (snake_case)"
|
|
17151
|
-
},
|
|
17152
|
-
label: {
|
|
17153
|
-
label: "Etiqueta",
|
|
17154
|
-
helpText: "Etiqueta mostrada para administradores"
|
|
17155
|
-
},
|
|
17156
|
-
isProfile: {
|
|
17157
|
-
label: "Es perfil",
|
|
17158
|
-
helpText: "Profile = conjunto base asignado a usuarios. Permission Set = concesi\xF3n adicional."
|
|
17159
|
-
},
|
|
17160
|
-
systemPermissions: {
|
|
17161
|
-
label: "Permisos del sistema",
|
|
17162
|
-
helpText: "Lista de claves de capacidades del sistema"
|
|
17163
|
-
},
|
|
17164
|
-
objects: {
|
|
17165
|
-
label: "Permisos de objeto",
|
|
17166
|
-
helpText: 'Ejemplo: { "account": { allowRead: true, allowEdit: true, ... } }'
|
|
17167
|
-
},
|
|
17168
|
-
fields: {
|
|
17169
|
-
label: "Campos",
|
|
17170
|
-
helpText: 'Ejemplo: { "account.amount": { readable: true, editable: false } }'
|
|
17171
|
-
},
|
|
17172
|
-
tabPermissions: {
|
|
17173
|
-
label: "Permisos de pesta\xF1a",
|
|
17174
|
-
helpText: 'Ejemplo: { "app_crm": "visible", "app_admin": "hidden" }'
|
|
17175
|
-
},
|
|
17176
|
-
rowLevelSecurity: {
|
|
17177
|
-
label: "Seguridad a nivel de fila",
|
|
17178
|
-
helpText: "Array de pol\xEDticas RLS (ver rls.zod.ts)"
|
|
17179
|
-
},
|
|
17180
|
-
contextVariables: {
|
|
17181
|
-
label: "Variables de contexto",
|
|
17182
|
-
helpText: "Variables personalizadas referenciadas en predicados RLS"
|
|
17183
|
-
}
|
|
17184
|
-
}
|
|
17185
|
-
},
|
|
17186
|
-
role: {
|
|
17187
|
-
label: "Rol",
|
|
17188
|
-
sections: {
|
|
17189
|
-
role: {
|
|
17190
|
-
label: "Rol",
|
|
17191
|
-
description: "Los roles componen una jerarqu\xEDa usada para compartir registros (sales VP \u2192 sales mgr \u2192 sales rep). Los permisos en s\xED residen en Permission Sets y Profiles."
|
|
16930
|
+
position: {
|
|
16931
|
+
label: "Posici\xF3n",
|
|
16932
|
+
description: "Una posici\xF3n es un conjunto plano y asignable de permission sets (p. ej. sales_rep, sales_manager). La capacidad reside en los permission sets; la profundidad de visibilidad en el \xE1rbol de unidades de negocio."
|
|
17192
16933
|
}
|
|
17193
16934
|
},
|
|
17194
16935
|
fields: {
|
|
@@ -17199,10 +16940,6 @@ var esESMetadataForms = {
|
|
|
17199
16940
|
label: {
|
|
17200
16941
|
label: "Etiqueta"
|
|
17201
16942
|
},
|
|
17202
|
-
parent: {
|
|
17203
|
-
label: "Padre",
|
|
17204
|
-
helpText: "Nombre de m\xE1quina del rol padre (Reports To)"
|
|
17205
|
-
},
|
|
17206
16943
|
description: {
|
|
17207
16944
|
label: "Descripci\xF3n"
|
|
17208
16945
|
}
|