@adonis-agora/durable 1.0.0-rc.21 → 1.0.0-rc.23

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.
@@ -3,9 +3,15 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <!-- Inline, so the browser's automatic /favicon.ico probe is not a 404 in the host app's log:
7
+ the provider serves only `<path>` and `<path>/assets/:file`, nothing at the site root. -->
8
+ <link
9
+ rel="icon"
10
+ href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5' fill='%2309090b'/%3E%3Cpath d='M17.5 9A6 6 0 1 0 18 13' fill='none' stroke='%23a3e635' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M18 5.5V9h-3.5' fill='none' stroke='%23a3e635' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"
11
+ />
6
12
  <title>durable · control plane</title>
7
- <script type="module" crossorigin src="/__DURABLE_DASHBOARD__/assets/index-DzXygyDm.js"></script>
8
- <link rel="stylesheet" crossorigin href="/__DURABLE_DASHBOARD__/assets/index-BgoNV3TR.css">
13
+ <script type="module" crossorigin src="/__DURABLE_DASHBOARD__/assets/index-DlwRCDs7.js"></script>
14
+ <link rel="stylesheet" crossorigin href="/__DURABLE_DASHBOARD__/assets/index-ChDc-SJJ.css">
9
15
  </head>
10
16
  <body>
11
17
  <div id="root"></div>
@@ -22,15 +22,19 @@ export type SignOutOption = string | {
22
22
  } | false;
23
23
  /** The `viewer` config hook: return the viewer, or `null`/`undefined` for no user row. */
24
24
  export type ViewerHook = (ctx: HttpContext) => ConsoleViewer | null | undefined | Promise<ConsoleViewer | null | undefined>;
25
+ /** The one role the footer shows: the first admin-like one (`ADMIN`, `org_admin`), else the first. */
26
+ export declare function pickRole(names: readonly string[]): string | undefined;
25
27
  /**
26
- * A viewer from any user-ish object: `fullName` / `name` / `email` for the label, `email`, and the
27
- * first of `role` / `roles`. `undefined` when nothing usable is there.
28
+ * A viewer from any user-ish object: `fullName` / `name` / `email` for the label, `email`, and one
29
+ * role from `role` / `roles` / `globalRoles` plus `extraRoles` (an admin-like one first, else the
30
+ * first). `undefined` when nothing usable is there.
28
31
  */
29
- export declare function viewerFromUser(user: unknown): ConsoleViewer | undefined;
32
+ export declare function viewerFromUser(user: unknown, extraRoles?: readonly string[]): ConsoleViewer | undefined;
30
33
  /**
31
34
  * The viewer for this request: the host's `viewer(ctx)` hook when configured (a throw or an empty
32
35
  * answer means no user row), else a structural read of `ctx.auth?.user` — only when the request is
33
- * already authenticated; it never triggers an authentication.
36
+ * already authenticated; it never triggers an authentication. The fallback's role also looks at
37
+ * authkit's per-request identity (`ctx.authkit`, its `globalRoles`) once a user is there.
34
38
  */
35
39
  export declare function resolveViewer(ctx: HttpContext, hook: ViewerHook | null | undefined): Promise<ConsoleViewer | undefined>;
36
40
  /** The request's CSRF token when `@adonisjs/shield` (or anything like it) put one on the request. */
@@ -1 +1 @@
1
- {"version":3,"file":"console_shell.d.ts","sourceRoot":"","sources":["../../../src/dashboard/console_shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAevD,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,sGAAsG;AACtG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC;AAEnF,0FAA0F;AAC1F,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,WAAW,KACb,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAyBlF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAQvE;AAaD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAepC;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAGhE;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EAC5C,QAAQ,EAAE,OAAO,GAChB,cAAc,GAAG,SAAS,CAW5B"}
1
+ {"version":3,"file":"console_shell.d.ts","sourceRoot":"","sources":["../../../src/dashboard/console_shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAevD,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,sGAAsG;AACtG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC;AAEnF,0FAA0F;AAC1F,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,WAAW,KACb,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AA0BlF,sGAAsG;AACtG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAErE;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,aAAa,GAAG,SAAS,CAO3B;AA4CD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAYpC;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAGhE;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EAC5C,QAAQ,EAAE,OAAO,GAChB,cAAc,GAAG,SAAS,CAW5B"}
@@ -9,39 +9,99 @@ function text(value) {
9
9
  return value.trim();
10
10
  return undefined;
11
11
  }
12
- /** The first role of a user, from `role`, `roles: string[]` or `roles: [{ name }]`. */
13
- function roleOf(user) {
14
- const direct = text(user.role);
15
- if (direct)
16
- return direct;
17
- const roles = user.roles;
18
- if (Array.isArray(roles)) {
19
- for (const role of roles) {
20
- const name = text(role) ??
21
- (typeof role === 'object' && role !== null
22
- ? text(role.name)
23
- : undefined);
24
- if (name)
25
- return name;
26
- }
12
+ /** A role's name: a string, or an object's `name` / `role` (an authz role row has `role`). */
13
+ function roleName(value) {
14
+ if (typeof value === 'string')
15
+ return text(value);
16
+ if (typeof value !== 'object' || value === null)
17
+ return undefined;
18
+ const r = value;
19
+ return text(r.name) ?? text(r.role);
20
+ }
21
+ /** Every role name in a field that is one role or a list of them. */
22
+ function roleNames(value) {
23
+ const list = Array.isArray(value) ? value : [value];
24
+ const names = [];
25
+ for (const item of list) {
26
+ const name = roleName(item);
27
+ if (name)
28
+ names.push(name);
29
+ }
30
+ return names;
31
+ }
32
+ /** The one role the footer shows: the first admin-like one (`ADMIN`, `org_admin`), else the first. */
33
+ export function pickRole(names) {
34
+ return names.find((name) => /admin/i.test(name)) ?? names[0];
35
+ }
36
+ /** Read a property without letting a throwing getter escape. */
37
+ function read(source, key) {
38
+ if (typeof source !== 'object' || source === null)
39
+ return undefined;
40
+ try {
41
+ return source[key];
42
+ }
43
+ catch {
44
+ return undefined;
27
45
  }
28
- return undefined;
29
46
  }
30
47
  /**
31
- * A viewer from any user-ish object: `fullName` / `name` / `email` for the label, `email`, and the
32
- * first of `role` / `roles`. `undefined` when nothing usable is there.
48
+ * The roles a user object carries: `role`, `roles` (strings, `{ name }` or `{ role }` rows) and
49
+ * `globalRoles`, in that order.
33
50
  */
34
- export function viewerFromUser(user) {
51
+ function rolesOf(user) {
52
+ return [
53
+ ...roleNames(read(user, 'role')),
54
+ ...roleNames(read(user, 'roles')),
55
+ ...roleNames(read(user, 'globalRoles')),
56
+ ];
57
+ }
58
+ /**
59
+ * A viewer from any user-ish object: `fullName` / `name` / `email` for the label, `email`, and one
60
+ * role from `role` / `roles` / `globalRoles` plus `extraRoles` (an admin-like one first, else the
61
+ * first). `undefined` when nothing usable is there.
62
+ */
63
+ export function viewerFromUser(user, extraRoles = []) {
35
64
  if (typeof user !== 'object' || user === null)
36
65
  return undefined;
37
- const u = user;
38
- const email = text(u.email);
39
- const label = text(u.fullName) ?? text(u.name) ?? email;
66
+ const email = text(read(user, 'email'));
67
+ const label = text(read(user, 'fullName')) ?? text(read(user, 'name')) ?? email;
40
68
  if (!label)
41
69
  return undefined;
42
- const role = roleOf(u);
70
+ const role = pickRole([...rolesOf(user), ...extraRoles]);
43
71
  return { label, ...(email ? { email } : {}), ...(role ? { role } : {}) };
44
72
  }
73
+ /** How long the footer waits for authkit's per-request identity before giving up on the role. */
74
+ const IDENTITY_TIMEOUT_MS = 250;
75
+ /**
76
+ * The global roles of authkit's per-request identity (`ctx.authkit`), read structurally: the
77
+ * already-resolved `identity` when there is one, else `getIdentity()` (memoized per request) under
78
+ * a short timeout. Any failure means no roles.
79
+ */
80
+ async function authkitRoles(ctx) {
81
+ const authkit = read(ctx, 'authkit');
82
+ if (typeof authkit !== 'object' || authkit === null)
83
+ return [];
84
+ let identity = read(authkit, 'identity');
85
+ const getIdentity = read(authkit, 'getIdentity');
86
+ if ((identity === null || identity === undefined) && typeof getIdentity === 'function') {
87
+ let timer;
88
+ try {
89
+ identity = await Promise.race([
90
+ Promise.resolve(getIdentity.call(authkit)),
91
+ new Promise((resolve) => {
92
+ timer = setTimeout(() => resolve(undefined), IDENTITY_TIMEOUT_MS);
93
+ }),
94
+ ]);
95
+ }
96
+ catch {
97
+ identity = undefined;
98
+ }
99
+ finally {
100
+ clearTimeout(timer);
101
+ }
102
+ }
103
+ return roleNames(read(identity, 'globalRoles'));
104
+ }
45
105
  /** Keep only the fields the SPA renders, as trimmed non-empty strings. */
46
106
  function cleanViewer(value) {
47
107
  if (typeof value !== 'object' || value === null)
@@ -57,7 +117,8 @@ function cleanViewer(value) {
57
117
  /**
58
118
  * The viewer for this request: the host's `viewer(ctx)` hook when configured (a throw or an empty
59
119
  * answer means no user row), else a structural read of `ctx.auth?.user` — only when the request is
60
- * already authenticated; it never triggers an authentication.
120
+ * already authenticated; it never triggers an authentication. The fallback's role also looks at
121
+ * authkit's per-request identity (`ctx.authkit`, its `globalRoles`) once a user is there.
61
122
  */
62
123
  export async function resolveViewer(ctx, hook) {
63
124
  if (hook) {
@@ -68,14 +129,11 @@ export async function resolveViewer(ctx, hook) {
68
129
  return undefined;
69
130
  }
70
131
  }
71
- try {
72
- const auth = ctx.auth;
73
- return viewerFromUser(auth?.user);
74
- }
75
- catch {
76
- // Some guards throw on `.user` before authentication; that just means "no viewer".
132
+ // `read` swallows guards that throw on `.user` before authentication: that just means "no viewer".
133
+ const user = read(read(ctx, 'auth'), 'user');
134
+ if (!viewerFromUser(user))
77
135
  return undefined;
78
- }
136
+ return viewerFromUser(user, await authkitRoles(ctx));
79
137
  }
80
138
  /** The request's CSRF token when `@adonisjs/shield` (or anything like it) put one on the request. */
81
139
  export function csrfTokenOf(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"console_shell.js","sourceRoot":"","sources":["../../../src/dashboard/console_shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console_shell.js","sourceRoot":"","sources":["../../../src/dashboard/console_shell.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "1.0.0-rc.21";
2
+ export declare const VERSION = "1.0.0-rc.23";
3
3
  export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  export type { CompatSource, FleetGroup, FleetTransport } from './compat.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '1.0.0-rc.21';
2
+ export const VERSION = '1.0.0-rc.23';
3
3
  // The built-in "access denied" page (what a browser sees on a refused page navigation).
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  // Fleet health / protocol-compatibility panel (design §7.6, §10).
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "1.0.0-rc.21";
2
+ export declare const VERSION = "1.0.0-rc.23";
3
3
  export { configure } from '../configure.js';
4
4
  export * from './admission.js';
5
5
  export type { AdmissionContext, AdmissionFactory, RedisAdmissionConfig, } from './admissions/factory.js';
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '1.0.0-rc.21';
2
+ export const VERSION = '1.0.0-rc.23';
3
3
  // Re-export the configure hook from the package root so `node ace configure` finds it.
4
4
  // AdonisJS imports the package MAIN and reads `configure` off the module namespace —
5
5
  // the `./configure` subpath alone is never consulted.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/durable",
3
- "version": "1.0.0-rc.21",
3
+ "version": "1.0.0-rc.23",
4
4
  "description": "Durable cross-app workflows for AdonisJS — deterministic replay engine, AdonisJS binding, ace commands, dashboard, OpenTelemetry, Telescope, testing harness and Redis admission, all in one package. Part of the Agora ecosystem.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -184,7 +184,7 @@
184
184
  },
185
185
  "devDependencies": {
186
186
  "@adonis-agora/diagnostics": "1.0.0-rc.1",
187
- "@adonis-agora/durable-dashboard": "1.0.0-rc.8",
187
+ "@adonis-agora/durable-dashboard": "1.0.0-rc.10",
188
188
  "@adonisjs/assembler": "8.6.0",
189
189
  "@adonisjs/auth": "10.1.0",
190
190
  "@adonisjs/core": "7.6.0",