@idp.global/catalog 8.0.0 → 8.1.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/changelog.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-11-12 - 8.1.0
4
+
5
+ ### Features
6
+
7
+ - create a confidential global app from the Platform Apps page (admin)
8
+ - In the global-admin console, a "New app" action on the Platform Apps page opens a "Create global app" dialog
9
+ with name, description, app URL, logo URL, a free-text category (at most 256 characters) and the callback,
10
+ post-logout, scope, grant-type and token-lifetime fields of the configure dialog, validated by the same rules.
11
+ It always creates a confidential client and has no client-type control.
12
+ - The dialog says up front that creating a confidential client requires a passkey sign-in within the last
13
+ 5 minutes.
14
+ - Submitting dispatches `idp-admin-ga-app-create` with an `IIdpAdminGaAppCreateEventDetail`. The first submit
15
+ freezes the payload: the dialog reopens locked, and a retry dispatches exactly the same values. "Discard and
16
+ edit" drops the frozen draft, dispatches `idp-admin-ga-app-create-discard` and unlocks the values. After a
17
+ successful creation the host calls `completeGaAppCreate()` and shows the secret through `oidcClientSecret`,
18
+ the existing one-time secret notice. A create is refused while a client secret is still displayed.
19
+ - The admin shell gains a second demo that shows the global-admin Platform Apps page with the action.
20
+
21
+ ### Maintenance
22
+
23
+ - release tooling currency (tooling)
24
+ - Replaces the deprecated `@git.zone/tsbuild`, `@git.zone/tsbundle` and `@git.zone/tswatch` with
25
+ `@git.zone/tsrepo` `^2.1.0`. The scripts run `tsrepo build`, `tsrepo bundle`, `tsrepo watch` and `tsrepo docs`
26
+ (formerly a global `tsdoc`), and `.smartconfig.json` moves the `@git.zone/tsbundle` and `@git.zone/tswatch`
27
+ sections to `"@git.zone/tsrepo".bundle` and `.watch`. The build now compiles with the TypeScript 7 native
28
+ compiler.
29
+ - `packageManager` pnpm@12.18.0 and `@types/node` `^26.6.6`.
30
+
3
31
  ## 2026-09-29 - 8.0.0
4
32
 
5
33
  ### Breaking Changes
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@idp.global/catalog',
6
- version: '8.0.0',
6
+ version: '8.1.0',
7
7
  description: 'Web component catalog for idp.global, based on the v5 Apple-system design language.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxxRkFBcUY7Q0FDbkcsQ0FBQSJ9
@@ -105,6 +105,28 @@ export interface IIdpAdminGaAppConfigureEventDetail {
105
105
  refreshTokenLifetime: number;
106
106
  };
107
107
  }
108
+ /**
109
+ * Detail of `idp-admin-ga-app-create`: one confidential global OIDC client to create.
110
+ * The shell freezes these fields at the first submit; every retry dispatches the same
111
+ * values until the host calls `completeGaAppCreate()` or the admin discards the draft,
112
+ * which dispatches `idp-admin-ga-app-create-discard`.
113
+ */
114
+ export interface IIdpAdminGaAppCreateEventDetail {
115
+ name: string;
116
+ description: string;
117
+ logoUrl: string;
118
+ appUrl: string;
119
+ category: string;
120
+ redirectUris: string[];
121
+ postLogoutRedirectUris: string[];
122
+ allowedScopes: string[];
123
+ grantTypes: Array<'authorization_code' | 'refresh_token'>;
124
+ oidcSettings: {
125
+ accessTokenLifetime: number;
126
+ idTokenLifetime: number;
127
+ refreshTokenLifetime: number;
128
+ };
129
+ }
108
130
  export interface IIdpAdminGaAppRotateSecretEventDetail {
109
131
  appId: string;
110
132
  gracePeriodSeconds: number;
@@ -327,7 +349,7 @@ export interface IIdpAdminPasskeyEventDetail {
327
349
  passkeyId: string;
328
350
  }
329
351
  export declare class IdpAdminShell extends DeesElement {
330
- static demo: () => TemplateResult<1>;
352
+ static demo: (() => TemplateResult<1>)[];
331
353
  static demoGroups: string[];
332
354
  static styles: import("@design.estate/dees-element").CSSResult[];
333
355
  accessor page: TIdpAdminPage;
@@ -420,6 +442,13 @@ export declare class IdpAdminShell extends DeesElement {
420
442
  private accessor dialogIdTokenLifetime;
421
443
  private accessor dialogRefreshTokenLifetime;
422
444
  private accessor dialogSecretGracePeriod;
445
+ private accessor dialogAppName;
446
+ private accessor dialogAppDescription;
447
+ private accessor dialogAppLogoUrl;
448
+ private accessor dialogAppUrl;
449
+ private accessor dialogAppCategory;
450
+ /** the create payload frozen at its first submit; it outlives the dialog until resolved or discarded */
451
+ private accessor gaAppCreateSubmission;
423
452
  private get safeOrgs();
424
453
  private get currentOrg();
425
454
  private get userInitials();
@@ -465,11 +494,28 @@ export declare class IdpAdminShell extends DeesElement {
465
494
  private openMemberRolesDialog;
466
495
  private openAppRoleMappingsDialog;
467
496
  private openOidcAppConfigDialog;
497
+ private openOidcAppCreateDialog;
468
498
  private openOidcSecretRotateDialog;
469
499
  private parseLines;
470
500
  private isValidExactUri;
471
501
  private setDialogNumber;
502
+ /** validates the OIDC client fields the configure and create dialogs share; sets dialogError and returns null when invalid */
503
+ private validateOidcClientDialogFields;
472
504
  private submitOidcAppConfigDialog;
505
+ /** an HTTPS URL without credentials, as the app stores registered app and logo URLs */
506
+ private isValidHttpsUrl;
507
+ /** the app metadata limits idp.global stores: lengths in UTF-16 code units, no control characters */
508
+ private validateGaAppCreateMetadata;
509
+ /** only one one-time secret is on screen at a time */
510
+ private ensureNoDisplayedClientSecret;
511
+ private submitOidcAppCreateDialog;
512
+ /** drops the frozen draft and unlocks its values for editing; the next submit is a new creation */
513
+ private discardOidcAppCreate;
514
+ /**
515
+ * The host calls this once `idp-admin-ga-app-create` has created the app (after it set
516
+ * `oidcClientSecret`): the frozen draft is cleared and an open create dialog closes.
517
+ */
518
+ completeGaAppCreate(): void;
473
519
  private submitOidcSecretRotateDialog;
474
520
  private setDialogRoleField;
475
521
  private toggleDialogMemberRole;
@@ -485,6 +531,10 @@ export declare class IdpAdminShell extends DeesElement {
485
531
  private renderMemberRolesDialog;
486
532
  private renderAppRoleMappingsDialog;
487
533
  private renderOidcAppConfigDialog;
534
+ /** the OIDC client rows the configure and create dialogs share */
535
+ private renderOidcClientFieldRows;
536
+ private setDialogAppField;
537
+ private renderOidcAppCreateDialog;
488
538
  private renderOidcSecretRotateDialog;
489
539
  private renderCreateOrgDialog;
490
540
  private renderLogoutConfirmDialog;