@cosmicdrift/kumiko-bundled-features 0.5.1 → 0.5.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @cosmicdrift/kumiko-bundled-features
2
2
 
3
+ ## 0.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 4f0d781: fix(tenant): updateMemberRoles erlaubt "system"-Rolle (symmetrisch zu create)
8
+
9
+ Drift innerhalb des tenant-Features: `tenant:write:create` akzeptierte
10
+ `["system", "SystemAdmin"]`, `tenant:write:update-member-roles` aber
11
+ nur `["SystemAdmin"]`. Konsequenz: ops-tooling und seed-migrations
12
+ (`createSystemUser` mit `roles: ["system"]`) konnten den Handler nicht
13
+ aufrufen — `access_denied`.
14
+
15
+ Live entdeckt beim ersten Driver-Sample der es-ops Phase 1: publicstatus
16
+ seed `2026-05-20-fix-admin-roles.ts` rief `update-member-roles` via
17
+ `systemWriteAs` → access_denied → Pod CrashLoopBackOff.
18
+
19
+ Plus access-rule-Pinning-Test in `tenant.integration.ts`-scenario-7.
20
+
21
+ - Updated dependencies [4f0d781]
22
+ - @cosmicdrift/kumiko-framework@0.5.2
23
+ - @cosmicdrift/kumiko-dispatcher-live@0.5.2
24
+ - @cosmicdrift/kumiko-renderer@0.5.2
25
+ - @cosmicdrift/kumiko-renderer-web@0.5.2
26
+
3
27
  ## 0.5.1
4
28
 
5
29
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-bundled-features",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Built-in features — tenant, user, auth, delivery. The stuff you'd rewrite anyway, already typed.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -74,10 +74,10 @@
74
74
  "@aws-sdk/client-s3": "^3.1045.0",
75
75
  "@aws-sdk/lib-storage": "^3.1045.0",
76
76
  "@aws-sdk/s3-request-presigner": "^3.1045.0",
77
- "@cosmicdrift/kumiko-dispatcher-live": "0.5.1",
78
- "@cosmicdrift/kumiko-framework": "0.5.1",
79
- "@cosmicdrift/kumiko-renderer": "0.5.1",
80
- "@cosmicdrift/kumiko-renderer-web": "0.5.1",
77
+ "@cosmicdrift/kumiko-dispatcher-live": "0.5.2",
78
+ "@cosmicdrift/kumiko-framework": "0.5.2",
79
+ "@cosmicdrift/kumiko-renderer": "0.5.2",
80
+ "@cosmicdrift/kumiko-renderer-web": "0.5.2",
81
81
  "@mollie/api-client": "^4.5.0",
82
82
  "@node-rs/argon2": "^2.0.2",
83
83
  "@types/nodemailer": "^8.0.0",
@@ -337,6 +337,11 @@ describe("scenario 7: access rules on handlers", () => {
337
337
  expect(rolesOf(stack.registry.getWriteHandler(TenantHandlers.disable)?.access)).toEqual([
338
338
  "SystemAdmin",
339
339
  ]);
340
+ // updateMemberRoles akzeptiert "system" (für seed-migrations + ops-tooling)
341
+ // PLUS "SystemAdmin" (echter Operator-Pfad). Symmetrisch zu create.
342
+ expect(
343
+ rolesOf(stack.registry.getWriteHandler(TenantHandlers.updateMemberRoles)?.access),
344
+ ).toEqual(["system", "SystemAdmin"]);
340
345
  expect(rolesOf(stack.registry.getQueryHandler(TenantQueries.list)?.access)).toEqual([
341
346
  "SystemAdmin",
342
347
  ]);
@@ -16,7 +16,11 @@ export const updateMemberRolesWrite = defineWriteHandler({
16
16
  tenantId: z.string(),
17
17
  roles: z.array(z.string()).min(1),
18
18
  }),
19
- access: { roles: ["SystemAdmin"] },
19
+ // "system" + "SystemAdmin" — symmetrisch zu tenant:write:create. System-
20
+ // User (createSystemUser, roles=["system"]) braucht den Access für seed-
21
+ // migrations + andere ops-tooling-Pfade. SystemAdmin ist der echte
22
+ // human-Operator-Pfad über die UI.
23
+ access: { roles: ["system", "SystemAdmin"] },
20
24
  handler: async (event, ctx) => {
21
25
  const db = ctx.db;
22
26
  const existing = await fetchOne(