@objectstack/platform-objects 12.5.0 → 13.0.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.
@@ -127,10 +127,22 @@ var SETUP_NAV_CONTRIBUTIONS = [
127
127
  priority: BASE_PRIORITY,
128
128
  items: [
129
129
  { id: "nav_users", type: "object", label: "Users", objectName: "sys_user", icon: "user" },
130
+ // The ACTIVE organization's record page (Members / Invitations / Teams
131
+ // tabs with the better-auth row actions), rendered inside the app shell
132
+ // (ADR-0081). `{current_org_id}` resolves from the session's active
133
+ // organization; unresolved (e.g. org-less admin before bootstrap) it
134
+ // falls back to the sys_organization list — one row in single-org.
135
+ { id: "nav_organization", type: "object", label: "Organization", objectName: "sys_organization", recordId: "{current_org_id}", icon: "building-2" },
130
136
  { id: "nav_business_units", type: "object", label: "Business Units", objectName: "sys_business_unit", icon: "building", requiresObject: "sys_business_unit" },
131
- { id: "nav_teams", type: "object", label: "Teams", objectName: "sys_team", icon: "users-round", requiresService: "org-scoping" },
137
+ // Teams / Invitations no longer gate on `org-scoping` (ADR-0081 D1):
138
+ // the better-auth organization capability is always mounted, and
139
+ // plugin-auth's single-org default-org bootstrap guarantees an org to
140
+ // invite into — these are the OPEN member-management basics. Only the
141
+ // org LIST below keeps the gate: browsing organizations is meaningful
142
+ // only when more than one can exist (enterprise multi-org).
143
+ { id: "nav_teams", type: "object", label: "Teams", objectName: "sys_team", icon: "users-round" },
132
144
  { id: "nav_organizations", type: "object", label: "Organizations", objectName: "sys_organization", icon: "building-2", requiresService: "org-scoping" },
133
- { id: "nav_invitations", type: "object", label: "Invitations", objectName: "sys_invitation", icon: "mail", requiresService: "org-scoping" }
145
+ { id: "nav_invitations", type: "object", label: "Invitations", objectName: "sys_invitation", icon: "mail" }
134
146
  ]
135
147
  },
136
148
  {
@@ -192,7 +204,11 @@ var SETUP_NAV_CONTRIBUTIONS = [
192
204
  priority: BASE_PRIORITY,
193
205
  items: [
194
206
  { id: "nav_oauth_apps", type: "object", label: "OAuth Applications", objectName: "sys_oauth_application", icon: "app-window" },
195
- { id: "nav_jwks", type: "object", label: "Signing Keys (JWKS)", objectName: "sys_jwks", icon: "key-round" },
207
+ // nav_jwks is capability-gated (like nav_api_keys): sys_jwks is
208
+ // `access.default:'private'` (ADR-0066 ④ — signing keys), so a
209
+ // non-admin's list request 403s server-side; gating the nav item keeps
210
+ // the menu honest instead of showing an entry that can only error.
211
+ { id: "nav_jwks", type: "object", label: "Signing Keys (JWKS)", objectName: "sys_jwks", icon: "key-round", requiredPermissions: ["manage_platform_settings"] },
196
212
  // `sys_verification` (email/phone tokens) and `sys_device_code` (OAuth
197
213
  // device-grant codes) deliberately omit `list` from their `apiMethods`
198
214
  // (sensitive, ephemeral secrets — not browsable), so an object/list-view
@@ -1531,8 +1547,8 @@ var enObjects = {
1531
1547
  user_id: {
1532
1548
  label: "User"
1533
1549
  },
1534
- role_in_business_unit: {
1535
- label: "Role in Business Unit",
1550
+ function_in_business_unit: {
1551
+ label: "Function in Business Unit",
1536
1552
  help: "`lead` is the day-to-day head; `deputy` may stand in for the lead in approval routing.",
1537
1553
  options: {
1538
1554
  member: "member",
@@ -3484,6 +3500,7 @@ var en = {
3484
3500
  nav_marketplace_installed: { label: "Installed Apps" },
3485
3501
  // People & Organization
3486
3502
  nav_users: { label: "Users" },
3503
+ nav_organization: { label: "Organization" },
3487
3504
  nav_business_units: { label: "Business Units" },
3488
3505
  nav_teams: { label: "Teams" },
3489
3506
  nav_organizations: { label: "Organizations" },
@@ -4277,8 +4294,8 @@ var zhCNObjects = {
4277
4294
  user_id: {
4278
4295
  label: "\u7528\u6237"
4279
4296
  },
4280
- role_in_business_unit: {
4281
- label: "\u4E1A\u52A1\u5355\u5143\u5185\u89D2\u8272",
4297
+ function_in_business_unit: {
4298
+ label: "\u4E1A\u52A1\u5355\u5143\u5185\u804C\u80FD",
4282
4299
  help: "`lead` \u8868\u793A\u65E5\u5E38\u8D1F\u8D23\u4EBA\uFF1B`deputy` \u53EF\u5728\u5BA1\u6279\u8DEF\u7531\u4E2D\u4EE3\u66FF\u8D1F\u8D23\u4EBA\u3002",
4283
4300
  options: {
4284
4301
  member: "\u6210\u5458",
@@ -6227,6 +6244,7 @@ var zhCN = {
6227
6244
  group_advanced: { label: "\u9AD8\u7EA7" },
6228
6245
  nav_system_overview: { label: "\u7CFB\u7EDF\u6982\u89C8" },
6229
6246
  nav_users: { label: "\u7528\u6237" },
6247
+ nav_organization: { label: "\u7EC4\u7EC7" },
6230
6248
  nav_business_units: { label: "\u4E1A\u52A1\u5355\u5143" },
6231
6249
  nav_teams: { label: "\u56E2\u961F" },
6232
6250
  nav_organizations: { label: "\u7EC4\u7EC7" },
@@ -6986,8 +7004,8 @@ var jaJPObjects = {
6986
7004
  user_id: {
6987
7005
  label: "\u30E6\u30FC\u30B6\u30FC"
6988
7006
  },
6989
- role_in_business_unit: {
6990
- label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8\u5185\u30ED\u30FC\u30EB",
7007
+ function_in_business_unit: {
7008
+ label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8\u5185\u306E\u8077\u80FD",
6991
7009
  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",
6992
7010
  options: {
6993
7011
  member: "\u30E1\u30F3\u30D0\u30FC",
@@ -8935,6 +8953,7 @@ var jaJP = {
8935
8953
  group_advanced: { label: "\u8A73\u7D30" },
8936
8954
  nav_system_overview: { label: "\u30B7\u30B9\u30C6\u30E0\u6982\u8981" },
8937
8955
  nav_users: { label: "\u30E6\u30FC\u30B6\u30FC" },
8956
+ nav_organization: { label: "\u7D44\u7E54" },
8938
8957
  nav_business_units: { label: "\u30D3\u30B8\u30CD\u30B9\u30E6\u30CB\u30C3\u30C8" },
8939
8958
  nav_teams: { label: "\u30C1\u30FC\u30E0" },
8940
8959
  nav_organizations: { label: "\u7D44\u7E54" },
@@ -9692,8 +9711,8 @@ var esESObjects = {
9692
9711
  user_id: {
9693
9712
  label: "Usuario"
9694
9713
  },
9695
- role_in_business_unit: {
9696
- label: "Rol en el departamento",
9714
+ function_in_business_unit: {
9715
+ label: "Funci\xF3n en la unidad de negocio",
9697
9716
  help: "`lead` es el responsable del d\xEDa a d\xEDa; `deputy` puede sustituir al responsable en el enrutamiento de aprobaciones.",
9698
9717
  options: {
9699
9718
  member: "Miembro",
@@ -11641,6 +11660,7 @@ var esES = {
11641
11660
  group_advanced: { label: "Avanzado" },
11642
11661
  nav_system_overview: { label: "Resumen del Sistema" },
11643
11662
  nav_users: { label: "Usuarios" },
11663
+ nav_organization: { label: "Organizaci\xF3n" },
11644
11664
  nav_business_units: { label: "Unidades de negocio" },
11645
11665
  nav_teams: { label: "Equipos" },
11646
11666
  nav_organizations: { label: "Organizaciones" },