@portaidentity/sdk 1.7.3 → 1.8.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.
Files changed (116) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +70 -41
  3. package/dist/agent.d.ts +15 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +473 -69
  6. package/dist/agent.js.map +1 -1
  7. package/dist/auth/cli-auth.d.ts +45 -71
  8. package/dist/auth/cli-auth.d.ts.map +1 -1
  9. package/dist/auth/cli-auth.js +208 -144
  10. package/dist/auth/cli-auth.js.map +1 -1
  11. package/dist/auth/index.d.ts +1 -1
  12. package/dist/auth/index.d.ts.map +1 -1
  13. package/dist/domains/applications.d.ts +22 -3
  14. package/dist/domains/applications.d.ts.map +1 -1
  15. package/dist/domains/applications.js +90 -20
  16. package/dist/domains/applications.js.map +1 -1
  17. package/dist/domains/branding.d.ts +47 -16
  18. package/dist/domains/branding.d.ts.map +1 -1
  19. package/dist/domains/branding.js +28 -5
  20. package/dist/domains/branding.js.map +1 -1
  21. package/dist/domains/clients.d.ts +23 -6
  22. package/dist/domains/clients.d.ts.map +1 -1
  23. package/dist/domains/clients.js +121 -21
  24. package/dist/domains/clients.js.map +1 -1
  25. package/dist/domains/config.d.ts +20 -3
  26. package/dist/domains/config.d.ts.map +1 -1
  27. package/dist/domains/config.js +30 -3
  28. package/dist/domains/config.js.map +1 -1
  29. package/dist/domains/custom-claims.d.ts +2 -1
  30. package/dist/domains/custom-claims.d.ts.map +1 -1
  31. package/dist/domains/custom-claims.js +2 -2
  32. package/dist/domains/custom-claims.js.map +1 -1
  33. package/dist/domains/exports.d.ts +6 -1
  34. package/dist/domains/exports.d.ts.map +1 -1
  35. package/dist/domains/exports.js +27 -1
  36. package/dist/domains/exports.js.map +1 -1
  37. package/dist/domains/helpers.d.ts +31 -0
  38. package/dist/domains/helpers.d.ts.map +1 -1
  39. package/dist/domains/helpers.js +72 -1
  40. package/dist/domains/helpers.js.map +1 -1
  41. package/dist/domains/imports.d.ts +8 -7
  42. package/dist/domains/imports.d.ts.map +1 -1
  43. package/dist/domains/imports.js +158 -14
  44. package/dist/domains/imports.js.map +1 -1
  45. package/dist/domains/index.d.ts +1 -1
  46. package/dist/domains/index.d.ts.map +1 -1
  47. package/dist/domains/organizations.d.ts +2 -9
  48. package/dist/domains/organizations.d.ts.map +1 -1
  49. package/dist/domains/organizations.js +2 -13
  50. package/dist/domains/organizations.js.map +1 -1
  51. package/dist/domains/permissions.d.ts +22 -4
  52. package/dist/domains/permissions.d.ts.map +1 -1
  53. package/dist/domains/permissions.js +47 -13
  54. package/dist/domains/permissions.js.map +1 -1
  55. package/dist/domains/roles.d.ts +26 -16
  56. package/dist/domains/roles.d.ts.map +1 -1
  57. package/dist/domains/roles.js +61 -31
  58. package/dist/domains/roles.js.map +1 -1
  59. package/dist/domains/user-roles.d.ts +9 -4
  60. package/dist/domains/user-roles.d.ts.map +1 -1
  61. package/dist/domains/user-roles.js +32 -6
  62. package/dist/domains/user-roles.js.map +1 -1
  63. package/dist/domains/users.d.ts +31 -26
  64. package/dist/domains/users.d.ts.map +1 -1
  65. package/dist/domains/users.js +56 -46
  66. package/dist/domains/users.js.map +1 -1
  67. package/dist/errors/index.d.ts +2 -0
  68. package/dist/errors/index.d.ts.map +1 -1
  69. package/dist/errors/index.js +18 -1
  70. package/dist/errors/index.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/node.d.ts +1 -1
  75. package/dist/node.d.ts.map +1 -1
  76. package/dist/pagination/index.d.ts +5 -1
  77. package/dist/pagination/index.d.ts.map +1 -1
  78. package/dist/pagination/index.js +2 -2
  79. package/dist/pagination/index.js.map +1 -1
  80. package/dist/types/applications.d.ts +27 -6
  81. package/dist/types/applications.d.ts.map +1 -1
  82. package/dist/types/branding.d.ts +38 -11
  83. package/dist/types/branding.d.ts.map +1 -1
  84. package/dist/types/branding.js +0 -5
  85. package/dist/types/branding.js.map +1 -1
  86. package/dist/types/bulk.d.ts +2 -4
  87. package/dist/types/bulk.d.ts.map +1 -1
  88. package/dist/types/clients.d.ts +98 -13
  89. package/dist/types/clients.d.ts.map +1 -1
  90. package/dist/types/common.d.ts +26 -3
  91. package/dist/types/common.d.ts.map +1 -1
  92. package/dist/types/config.d.ts +57 -21
  93. package/dist/types/config.d.ts.map +1 -1
  94. package/dist/types/config.js +1 -8
  95. package/dist/types/config.js.map +1 -1
  96. package/dist/types/exports.d.ts +17 -0
  97. package/dist/types/exports.d.ts.map +1 -1
  98. package/dist/types/imports.d.ts +388 -84
  99. package/dist/types/imports.d.ts.map +1 -1
  100. package/dist/types/imports.js +1 -7
  101. package/dist/types/imports.js.map +1 -1
  102. package/dist/types/index.d.ts +14 -14
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/organizations.d.ts +5 -9
  105. package/dist/types/organizations.d.ts.map +1 -1
  106. package/dist/types/permissions.d.ts +21 -6
  107. package/dist/types/permissions.d.ts.map +1 -1
  108. package/dist/types/roles.d.ts +3 -1
  109. package/dist/types/roles.d.ts.map +1 -1
  110. package/dist/types/user-roles.d.ts +4 -10
  111. package/dist/types/user-roles.d.ts.map +1 -1
  112. package/dist/types/users.d.ts +102 -15
  113. package/dist/types/users.d.ts.map +1 -1
  114. package/dist/version.d.ts +1 -1
  115. package/dist/version.js +1 -1
  116. package/package.json +3 -2
@@ -1,26 +1,62 @@
1
- /**
2
- * System configuration types for the Porta SDK.
3
- *
4
- * Matches the server config route response shape exactly.
5
- * Server returns valueType and isSensitive from the system_config table.
6
- *
7
- * @module types/config
8
- */
1
+ /** Public operational configuration contracts; the server owns validation and display metadata. */
2
+ /** Closed operational policy keys accepted by configuration mutations. */
3
+ export type ConfigKey = 'access_token_ttl' | 'id_token_ttl' | 'refresh_token_ttl' | 'authorization_code_ttl' | 'session_ttl' | 'magic_link_ttl' | 'password_reset_ttl' | 'invitation_ttl' | 'rate_limit_login_max' | 'rate_limit_login_window' | 'rate_limit_magic_link_max' | 'rate_limit_magic_link_window' | 'rate_limit_password_reset_max' | 'rate_limit_password_reset_window' | 'max_failed_logins' | 'lockout_duration_seconds' | 'audit_retention_days' | 'default_locale';
4
+ /** Native JSON scalars; key-specific bounds and supported strings remain server-authoritative. */
5
+ export type ConfigValue = number | string;
6
+ /** Logical tab grouping provided by the server catalog. */
7
+ export type ConfigGroup = 'lifetimes' | 'rate-limits' | 'lockout' | 'general';
8
+ /** Native scalar category used by metadata-driven editors. */
9
+ export type ConfigValueType = 'integer' | 'string';
10
+ /** Display unit for a stored scalar, without conversion of its wire value. */
11
+ export type ConfigUnit = 'seconds' | 'attempts' | 'days' | 'locale';
12
+ /** Whether running consumers converge or every server instance must restart. */
13
+ export type ConfigApplicationMode = 'runtime' | 'restart-required';
14
+ /** Complete authoritative entry; bootstrap settings and secrets are not part of this surface. */
9
15
  export interface ConfigEntry {
10
- /** Configuration key (e.g., "ttl.access_token") */
11
- key: string;
12
- /** Configuration value (masked with '***' for sensitive entries) */
13
- value: string;
14
- /** Value type (e.g., "number", "string", "boolean") */
15
- valueType: string;
16
- /** Human-readable description */
17
- description: string | null;
18
- /** Whether the value is sensitive (masked in GET responses) */
19
- isSensitive: boolean;
20
- /** Last update timestamp (ISO 8601) */
21
- updatedAt: string;
16
+ /** Closed catalog identifier. */
17
+ readonly key: ConfigKey;
18
+ /** Logical editor group. */
19
+ readonly group: ConfigGroup;
20
+ /** Human-readable field caption. */
21
+ readonly label: string;
22
+ /** Explanation of the policy's effect. */
23
+ readonly description: string;
24
+ /** Current native stored value. */
25
+ readonly value: ConfigValue;
26
+ /** Safe catalog fallback used by runtime readers. */
27
+ readonly defaultValue: ConfigValue;
28
+ /** Expected native scalar category. */
29
+ readonly valueType: ConfigValueType;
30
+ /** Unit used for bounds and current value. */
31
+ readonly unit: ConfigUnit;
32
+ /** Inclusive lower bound for integer values. */
33
+ readonly minimum?: number;
34
+ /** Inclusive upper bound for integer values. */
35
+ readonly maximum?: number;
36
+ /** Exact supported strings for locale values. */
37
+ readonly allowedValues?: readonly 'en'[];
38
+ /** Required operational action after a successful update. */
39
+ readonly applicationMode: ConfigApplicationMode;
40
+ /** Last successful database update, in ISO 8601 format. */
41
+ readonly updatedAt: string;
22
42
  }
43
+ /** Native single-value request body. */
23
44
  export interface SetConfigInput {
24
- value: string;
45
+ /** Value validated against the targeted server catalog definition. */
46
+ readonly value: ConfigValue;
47
+ }
48
+ /** Confirmed single update, preserving the server's restart decision. */
49
+ export interface ConfigUpdateResult {
50
+ /** Fresh authoritative entry. */
51
+ readonly data: ConfigEntry;
52
+ /** True when every Porta server instance must restart. */
53
+ readonly restartRequired: boolean;
54
+ }
55
+ /** Confirmed atomic batch update, in server catalog order. */
56
+ export interface ConfigBatchUpdateResult {
57
+ /** Fresh authoritative entries for the changed keys. */
58
+ readonly data: readonly ConfigEntry[];
59
+ /** True when any changed policy requires every server instance to restart. */
60
+ readonly restartRequired: boolean;
25
61
  }
26
62
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,wBAAwB,GACxB,aAAa,GACb,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,yBAAyB,GACzB,2BAA2B,GAC3B,8BAA8B,GAC9B,+BAA+B,GAC/B,kCAAkC,GAClC,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,kGAAkG;AAClG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,2DAA2D;AAC3D,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAEnE,iGAAiG;AACjG,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC"}
@@ -1,10 +1,3 @@
1
- /**
2
- * System configuration types for the Porta SDK.
3
- *
4
- * Matches the server config route response shape exactly.
5
- * Server returns valueType and isSensitive from the system_config table.
6
- *
7
- * @module types/config
8
- */
1
+ /** Public operational configuration contracts; the server owns validation and display metadata. */
9
2
  export {};
10
3
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,mGAAmG"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @module types/exports
5
5
  */
6
+ import type { PortabilityApplicationSelection, PortabilityCategory, PortabilityManifest, PortabilityScope } from './imports.js';
6
7
  /** Closed administrative entity catalog supported by the export API. */
7
8
  export type ExportEntityType = 'organizations' | 'clients' | 'users' | 'roles' | 'audit';
8
9
  /** Public export representation. */
@@ -22,4 +23,20 @@ export interface ExportParams {
22
23
  /** Required inclusive audit-window end. */
23
24
  endDate?: string;
24
25
  }
26
+ /** Exact selection sent when exporting one portability manifest. */
27
+ export interface ExportManifestRequest {
28
+ /** Organization or whole-environment source scope. */
29
+ readonly scope: PortabilityScope;
30
+ /** Non-empty manifest categories to include. */
31
+ readonly categories: readonly PortabilityCategory[];
32
+ /** Explicit application selection for application-related categories. */
33
+ readonly application_selection: PortabilityApplicationSelection;
34
+ }
35
+ /** Parsed manifest attachment returned without writing to the local filesystem. */
36
+ export interface ExportManifestResponse {
37
+ /** Strict manifest returned by Porta. */
38
+ readonly manifest: PortabilityManifest;
39
+ /** Safe final filename component suggested by Porta or generated by the SDK. */
40
+ readonly filename: string;
41
+ }
25
42
  //# sourceMappingURL=exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/types/exports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzF,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1C,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/types/exports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzF,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1C,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,yEAAyE;IACzE,QAAQ,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;CACjE;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
@@ -1,86 +1,390 @@
1
- /**
2
- * Data import / provisioning types for the Porta SDK.
3
- *
4
- * Types mirror the server's public data-import response shapes exactly.
5
- *
6
- * @module types/imports
7
- */
8
- /** Import mode — controls how existing entities are handled */
9
- export type ImportMode = 'merge' | 'overwrite' | 'dry-run';
10
- /** Request payload for the import endpoint */
11
- export interface ImportManifest {
12
- /** Raw provisioning manifest (YAML/JSON parsed) */
13
- manifest: Record<string, unknown>;
14
- /** Import mode: merge existing, overwrite, or dry-run */
15
- mode?: ImportMode;
16
- /** Dry run — validate without applying (shorthand for mode='dry-run') */
17
- dryRun?: boolean;
18
- /** Optional tenant boundary which every tenant-qualified manifest entry must match. */
19
- organizationId?: string;
20
- }
21
- /** A single entity operation result (created or updated) */
22
- export interface ImportEntityResult {
23
- /** Entity type (e.g., "organization", "application", "client") */
24
- type: string;
25
- /** Entity slug identifier */
26
- slug: string;
27
- /** Entity display name */
28
- name: string;
29
- /** List of changes applied (for updates) */
30
- changes?: string[];
31
- /** Dry-run indication that a committed confidential-client create would issue a credential. */
32
- credentialWillBeGenerated?: boolean;
33
- }
34
- /** A skipped entity with reason */
35
- export interface ImportSkippedResult {
36
- /** Entity type */
37
- type: string;
38
- /** Entity slug identifier */
39
- slug: string;
40
- /** Why the entity was skipped */
41
- reason: string;
42
- }
43
- /** An import error for a specific entity */
44
- export interface ImportErrorResult {
45
- /** Entity type that failed */
46
- type: string;
47
- /** Entity slug identifier */
48
- slug: string;
49
- /** Error message */
50
- error: string;
51
- }
52
- /** Client credentials generated during import (shown once, never stored in plaintext) */
53
- export interface ImportClientCredentials {
54
- /** Client display name */
55
- clientName: string;
56
- /** Generated client ID */
57
- clientId?: string;
58
- /** Client type */
59
- clientType: 'confidential' | 'public';
60
- /** Dry-run indication which never contains generated credential material. */
61
- credentialWillBeGenerated?: boolean;
62
- /** Raw secret — only present on create for confidential clients */
63
- secretPlaintext?: string;
64
- /** DB row ID of the generated secret */
65
- secretId?: string;
66
- /** Optional label for the secret */
67
- secretLabel?: string;
68
- /** Optional expiry for the secret (ISO 8601) */
69
- secretExpiresAt?: string;
70
- }
71
- /** Full import result — matches server ImportResult exactly */
72
- export interface ImportResult {
73
- /** The import mode that was used */
74
- mode: ImportMode;
75
- /** Entities that were created */
76
- created: ImportEntityResult[];
77
- /** Entities that were updated (overwrite mode) */
78
- updated: ImportEntityResult[];
79
- /** Entities that were skipped (merge mode, already exists) */
80
- skipped: ImportSkippedResult[];
81
- /** Legacy rejected-response details; successful imports always omit this field. */
82
- errors?: ImportErrorResult[];
83
- /** Credentials generated by committed confidential-client creates. */
84
- credentials: ImportClientCredentials[];
1
+ /** Public wire types for selective Porta manifest import and export. */
2
+ /** Closed manifest sections that an operator may select. */
3
+ export type PortabilityCategory = 'organizations' | 'applications_authorization' | 'users_assignments' | 'oidc_clients';
4
+ /** Organization-bound or complete-environment portability scope. */
5
+ export type PortabilityScope = {
6
+ readonly kind: 'organization';
7
+ readonly organization_slug: string;
8
+ } | {
9
+ readonly kind: 'environment';
10
+ };
11
+ /** Explicit application filter used by application-related categories. */
12
+ export interface PortabilityApplicationSelection {
13
+ /** Select every eligible application when true. */
14
+ readonly all_applications: boolean;
15
+ /** Select these application slugs when all applications is false. */
16
+ readonly application_slugs: readonly string[];
85
17
  }
18
+ /** Embedded branding image with declared media type and base64 bytes. */
19
+ export interface PortabilityBrandingAsset {
20
+ /** Image media type validated against the branding allowlist. */
21
+ readonly media_type: string;
22
+ /** Base64-encoded image bytes. */
23
+ readonly content_base64: string;
24
+ }
25
+ /** Portable organization branding configuration. */
26
+ export interface PortabilityBranding {
27
+ /** External logo URL, or null when absent. */
28
+ readonly logo_url: string | null;
29
+ /** External favicon URL, or null when absent. */
30
+ readonly favicon_url: string | null;
31
+ /** Six-digit HTML accent color, or null when absent. */
32
+ readonly primary_color: string | null;
33
+ /** Organization name displayed by hosted templates, or null when absent. */
34
+ readonly company_name: string | null;
35
+ /** Bounded custom template CSS, or null when absent. */
36
+ readonly custom_css: string | null;
37
+ /** Embedded logo bytes, or null when no logo is embedded. */
38
+ readonly logo_asset: PortabilityBrandingAsset | null;
39
+ /** Embedded favicon bytes, or null when no favicon is embedded. */
40
+ readonly favicon_asset: PortabilityBrandingAsset | null;
41
+ }
42
+ /** Portable organization record identified by its slug. */
43
+ export interface PortabilityOrganization {
44
+ /** Public organization slug. */
45
+ readonly slug: string;
46
+ /** Organization display name. */
47
+ readonly name: string;
48
+ /** Organization lifecycle state. */
49
+ readonly status: 'active' | 'suspended';
50
+ /** Default locale identifier. */
51
+ readonly default_locale: string;
52
+ /** Default authentication methods. */
53
+ readonly default_login_methods: readonly ('password' | 'magic_link')[];
54
+ /** Organization two-factor policy. */
55
+ readonly two_factor_policy: 'optional' | 'required_email' | 'required_totp' | 'required_any';
56
+ /** Hosted-page branding configuration. */
57
+ readonly branding: PortabilityBranding;
58
+ }
59
+ /** Portable application record identified by its slug. */
60
+ export interface PortabilityApplication {
61
+ /** Public application slug. */
62
+ readonly slug: string;
63
+ /** Application display name. */
64
+ readonly name: string;
65
+ /** Optional application description. */
66
+ readonly description: string | null;
67
+ /** Application lifecycle state. */
68
+ readonly status: 'active' | 'inactive';
69
+ }
70
+ /** Portable module record identified within an application. */
71
+ export interface PortabilityApplicationModule {
72
+ /** Owning application slug. */
73
+ readonly application_slug: string;
74
+ /** Module slug. */
75
+ readonly slug: string;
76
+ /** Module display name. */
77
+ readonly name: string;
78
+ /** Optional module description. */
79
+ readonly description: string | null;
80
+ /** Module lifecycle state. */
81
+ readonly status: 'active' | 'inactive';
82
+ }
83
+ /** Portable role record identified within an application. */
84
+ export interface PortabilityRole {
85
+ /** Owning application slug. */
86
+ readonly application_slug: string;
87
+ /** External role claim value. */
88
+ readonly slug: string;
89
+ /** Role display name. */
90
+ readonly name: string;
91
+ /** Optional role description. */
92
+ readonly description: string | null;
93
+ }
94
+ /** Portable permission record identified within an application. */
95
+ export interface PortabilityPermission {
96
+ /** Owning application slug. */
97
+ readonly application_slug: string;
98
+ /** External permission claim value. */
99
+ readonly slug: string;
100
+ /** Optional owning module slug. */
101
+ readonly module_slug: string | null;
102
+ /** Permission display name. */
103
+ readonly name: string;
104
+ /** Optional permission description. */
105
+ readonly description: string | null;
106
+ }
107
+ /** Portable custom-claim definition. */
108
+ export interface PortabilityClaimDefinition {
109
+ /** Owning application slug. */
110
+ readonly application_slug: string;
111
+ /** External claim name. */
112
+ readonly claim_name: string;
113
+ /** Value type enforced for this claim. */
114
+ readonly claim_type: 'string' | 'number' | 'boolean' | 'json';
115
+ /** Optional claim description. */
116
+ readonly description: string | null;
117
+ /** Whether the claim appears in ID tokens. */
118
+ readonly include_in_id_token: boolean;
119
+ /** Whether the claim appears in access tokens. */
120
+ readonly include_in_access_token: boolean;
121
+ /** Whether the claim appears in UserInfo responses. */
122
+ readonly include_in_userinfo: boolean;
123
+ }
124
+ /** Portable role-to-permission mapping for one application role. */
125
+ export interface PortabilityRolePermissionMapping {
126
+ /** Owning application slug. */
127
+ readonly application_slug: string;
128
+ /** Role claim value. */
129
+ readonly role_slug: string;
130
+ /** Non-empty sorted permission claim values. */
131
+ readonly permission_slugs: readonly string[];
132
+ }
133
+ /** Portable user profile without credentials, lock state, or activity counters. */
134
+ export interface PortabilityUser {
135
+ /** Owning organization slug. */
136
+ readonly organization_slug: string;
137
+ /** User email address. */
138
+ readonly email: string;
139
+ /** Whether the email address is verified. */
140
+ readonly email_verified: boolean;
141
+ /** OIDC given name. */
142
+ readonly given_name: string | null;
143
+ /** OIDC family name. */
144
+ readonly family_name: string | null;
145
+ /** OIDC middle name. */
146
+ readonly middle_name: string | null;
147
+ /** OIDC nickname. */
148
+ readonly nickname: string | null;
149
+ /** OIDC preferred username. */
150
+ readonly preferred_username: string | null;
151
+ /** OIDC profile URL. */
152
+ readonly profile_url: string | null;
153
+ /** OIDC picture URL. */
154
+ readonly picture_url: string | null;
155
+ /** OIDC website URL. */
156
+ readonly website_url: string | null;
157
+ /** OIDC gender value. */
158
+ readonly gender: string | null;
159
+ /** OIDC calendar birthdate. */
160
+ readonly birthdate: string | null;
161
+ /** OIDC time-zone identifier. */
162
+ readonly zoneinfo: string | null;
163
+ /** OIDC locale identifier. */
164
+ readonly locale: string | null;
165
+ /** OIDC phone number. */
166
+ readonly phone_number: string | null;
167
+ /** Whether the phone number is verified. */
168
+ readonly phone_number_verified: boolean;
169
+ /** Street address. */
170
+ readonly address_street: string | null;
171
+ /** Address locality. */
172
+ readonly address_locality: string | null;
173
+ /** Address region. */
174
+ readonly address_region: string | null;
175
+ /** Postal code. */
176
+ readonly address_postal_code: string | null;
177
+ /** Two-letter country code. */
178
+ readonly address_country: string | null;
179
+ /** Portable lifecycle state; automatic lock state is excluded. */
180
+ readonly status: 'active' | 'inactive';
181
+ }
182
+ /** Portable assignment of one application role to one user. */
183
+ export interface PortabilityUserRoleAssignment {
184
+ /** Owning organization slug. */
185
+ readonly organization_slug: string;
186
+ /** Assigned user's email address. */
187
+ readonly email: string;
188
+ /** Owning application slug. */
189
+ readonly application_slug: string;
190
+ /** Assigned role claim value. */
191
+ readonly role_slug: string;
192
+ }
193
+ /** JSON values supported in custom claim assignments. */
194
+ export type PortabilityJsonValue = string | number | boolean | null | readonly PortabilityJsonValue[] | {
195
+ readonly [key: string]: PortabilityJsonValue;
196
+ };
197
+ /** Portable custom-claim value assigned to one user. */
198
+ export interface PortabilityUserClaimValue {
199
+ /** Owning organization slug. */
200
+ readonly organization_slug: string;
201
+ /** Assigned user's email address. */
202
+ readonly email: string;
203
+ /** Owning application slug. */
204
+ readonly application_slug: string;
205
+ /** Claim definition name. */
206
+ readonly claim_name: string;
207
+ /** JSON-compatible claim value. */
208
+ readonly value: PortabilityJsonValue;
209
+ }
210
+ /** Portable OIDC client registration without secret material. */
211
+ export interface PortabilityClient {
212
+ /** Public OIDC client identifier. */
213
+ readonly client_id: string;
214
+ /** Owning organization slug. */
215
+ readonly organization_slug: string;
216
+ /** Owning application slug. */
217
+ readonly application_slug: string;
218
+ /** Client display name. */
219
+ readonly name: string;
220
+ /** Client confidentiality mode. */
221
+ readonly client_type: 'public' | 'confidential';
222
+ /** Client deployment type. */
223
+ readonly application_type: 'web' | 'native' | 'spa';
224
+ /** Client lifecycle state. */
225
+ readonly status: 'active' | 'inactive';
226
+ /** Enabled OAuth grant types. */
227
+ readonly grant_types: readonly string[];
228
+ /** Enabled OIDC response types. */
229
+ readonly response_types: readonly string[];
230
+ /** Space-separated scope string. */
231
+ readonly scope: string;
232
+ /** Explicit login methods, or null to inherit organization defaults. */
233
+ readonly login_methods: readonly ('password' | 'magic_link')[] | null;
234
+ /** Token endpoint authentication method. */
235
+ readonly token_endpoint_auth_method: 'client_secret_basic' | 'client_secret_post' | 'none';
236
+ /** Exact authorization redirect URIs. */
237
+ readonly redirect_uris: readonly string[];
238
+ /** Exact post-logout redirect URIs. */
239
+ readonly post_logout_redirect_uris: readonly string[];
240
+ /** Exact browser origins allowed by the client. */
241
+ readonly allowed_origins: readonly string[];
242
+ /** Whether authorization-code requests require PKCE. */
243
+ readonly require_pkce: boolean;
244
+ }
245
+ /** Complete version 1.0 portability manifest. */
246
+ export interface PortabilityManifest {
247
+ /** Manifest format version. */
248
+ readonly version: '1.0';
249
+ /** UTC instant at which the export snapshot was created. */
250
+ readonly exported_at: string;
251
+ /** Source data scope represented by the manifest. */
252
+ readonly scope: PortabilityScope;
253
+ /** Selected manifest categories. */
254
+ readonly categories: readonly PortabilityCategory[];
255
+ /** Application filter used by application-related categories. */
256
+ readonly application_selection: PortabilityApplicationSelection;
257
+ /** Portable organizations. */
258
+ readonly organizations: readonly PortabilityOrganization[];
259
+ /** Portable applications. */
260
+ readonly applications: readonly PortabilityApplication[];
261
+ /** Portable application modules. */
262
+ readonly application_modules: readonly PortabilityApplicationModule[];
263
+ /** Portable application roles. */
264
+ readonly roles: readonly PortabilityRole[];
265
+ /** Portable application permissions. */
266
+ readonly permissions: readonly PortabilityPermission[];
267
+ /** Portable custom-claim definitions. */
268
+ readonly claim_definitions: readonly PortabilityClaimDefinition[];
269
+ /** Portable role-to-permission mappings. */
270
+ readonly role_permission_mappings: readonly PortabilityRolePermissionMapping[];
271
+ /** Portable organization users. */
272
+ readonly users: readonly PortabilityUser[];
273
+ /** Portable user-to-role assignments. */
274
+ readonly user_role_assignments: readonly PortabilityUserRoleAssignment[];
275
+ /** Portable user custom-claim values. */
276
+ readonly user_claim_values: readonly PortabilityUserClaimValue[];
277
+ /** Portable OIDC clients. */
278
+ readonly clients: readonly PortabilityClient[];
279
+ }
280
+ /** Import operation mode. */
281
+ export type PortabilityImportMode = 'dry-run' | 'keep-existing' | 'update-existing';
282
+ /** Request body for previewing or applying one manifest. */
283
+ export interface ImportManifestRequest {
284
+ /** Strict manifest to validate and process. */
285
+ readonly manifest: PortabilityManifest;
286
+ /** Preview, keep-existing, or update-existing behavior. */
287
+ readonly mode: PortabilityImportMode;
288
+ }
289
+ /** Portable entity groups in dependency order. */
290
+ export type PortabilityEntityType = 'organizations' | 'applications' | 'application_modules' | 'roles' | 'permissions' | 'claim_definitions' | 'role_permission_mappings' | 'users' | 'user_role_assignments' | 'user_claim_values' | 'clients';
291
+ /** Planned or completed action for one manifest record. */
292
+ export type PortabilityAction = 'created' | 'updated' | 'skipped' | 'rejected';
293
+ /** Counts for one entity group. */
294
+ export interface PortabilityActionCounts {
295
+ /** Records created. */
296
+ readonly created: number;
297
+ /** Records updated. */
298
+ readonly updated: number;
299
+ /** Existing records left unchanged. */
300
+ readonly skipped: number;
301
+ /** Invalid or incompatible records rejected. */
302
+ readonly rejected: number;
303
+ }
304
+ /** Public natural-key fields identifying one portable entity. */
305
+ export type PortabilityNaturalKey = {
306
+ readonly slug: string;
307
+ } | {
308
+ readonly application_slug: string;
309
+ readonly slug: string;
310
+ } | {
311
+ readonly application_slug: string;
312
+ readonly claim_name: string;
313
+ } | {
314
+ readonly application_slug: string;
315
+ readonly role_slug: string;
316
+ } | {
317
+ readonly organization_slug: string;
318
+ readonly email: string;
319
+ } | {
320
+ readonly organization_slug: string;
321
+ readonly email: string;
322
+ readonly application_slug: string;
323
+ readonly role_slug: string;
324
+ } | {
325
+ readonly organization_slug: string;
326
+ readonly email: string;
327
+ readonly application_slug: string;
328
+ readonly claim_name: string;
329
+ } | {
330
+ readonly client_id: string;
331
+ };
332
+ /** Ordered result item for one manifest record. */
333
+ export interface PortabilityResultItem {
334
+ /** Entity group containing the record. */
335
+ readonly entity_type: PortabilityEntityType;
336
+ /** Planned or completed action. */
337
+ readonly action: PortabilityAction;
338
+ /** Public natural key without database identifiers. */
339
+ readonly natural_key: PortabilityNaturalKey;
340
+ /** Whether apply will create a confidential-client credential. */
341
+ readonly credential_will_be_generated?: boolean;
342
+ }
343
+ /** Closed safe validation codes returned for rejected records. */
344
+ export type PortabilityResultErrorCode = 'invalid_record' | 'duplicate_natural_key' | 'missing_dependency' | 'ambiguous_dependency' | 'incompatible_record' | 'cross_scope_reference' | 'control_plane_record' | 'client_id_collision';
345
+ /** Safe bounded error for one rejected manifest record. */
346
+ export interface PortabilityResultError {
347
+ /** Entity group containing the rejected record. */
348
+ readonly entity_type: PortabilityEntityType;
349
+ /** Public natural key without database identifiers. */
350
+ readonly natural_key: PortabilityNaturalKey;
351
+ /** Stable safe rejection code. */
352
+ readonly code: PortabilityResultErrorCode;
353
+ }
354
+ /** One-time credential returned only after a committed confidential-client creation. */
355
+ export interface PortabilityCredential {
356
+ /** Public OIDC client identifier. */
357
+ readonly client_id: string;
358
+ /** Human-readable credential label. */
359
+ readonly label: string;
360
+ /** Plaintext secret shown only in this response. */
361
+ readonly secret: string;
362
+ /** UTC credential expiry instant. */
363
+ readonly expires_at: string;
364
+ }
365
+ /** Fields shared by preview and committed portability results. */
366
+ export interface PortabilityResultBase {
367
+ /** Per-entity counts in the closed dependency groups. */
368
+ readonly summary: Readonly<Record<PortabilityEntityType, PortabilityActionCounts>>;
369
+ /** Ordered record outcomes. */
370
+ readonly items: readonly PortabilityResultItem[];
371
+ /** Bounded safe rejected-record details. */
372
+ readonly errors: readonly PortabilityResultError[];
373
+ }
374
+ /** Mutation-free import preview result. */
375
+ export interface PortabilityPreviewResult extends PortabilityResultBase {
376
+ /** Preview discriminator. */
377
+ readonly mode: 'dry-run';
378
+ /** Preview never contains plaintext credential material. */
379
+ readonly credentials?: never;
380
+ }
381
+ /** Successfully committed portability result. */
382
+ export interface PortabilityApplyResult extends PortabilityResultBase {
383
+ /** Conflict policy used by the committed import. */
384
+ readonly mode: 'keep-existing' | 'update-existing';
385
+ /** One-time credentials returned only for newly created confidential clients. */
386
+ readonly credentials?: readonly PortabilityCredential[];
387
+ }
388
+ /** Safe ordered result returned by preview and committed apply operations. */
389
+ export type PortabilityResult = PortabilityPreviewResult | PortabilityApplyResult;
86
390
  //# sourceMappingURL=imports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/types/imports.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE3D,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,yDAAyD;IACzD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+FAA+F;IAC/F,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,UAAU,EAAE,cAAc,GAAG,QAAQ,CAAC;IACtC,6EAA6E;IAC7E,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,kDAAkD;IAClD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,sEAAsE;IACtE,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/types/imports.ts"],"names":[],"mappings":"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"}