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