@ibgib/core-gib 0.1.63 → 0.1.65

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 (32) hide show
  1. package/dist/keystone/keystone-constants.d.mts +1 -0
  2. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  3. package/dist/keystone/keystone-constants.mjs +1 -0
  4. package/dist/keystone/keystone-constants.mjs.map +1 -1
  5. package/dist/keystone/keystone-helpers.d.mts +27 -1
  6. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  7. package/dist/keystone/keystone-helpers.mjs +261 -16
  8. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  9. package/dist/keystone/keystone-service-v1.d.mts +113 -1
  10. package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
  11. package/dist/keystone/keystone-service-v1.mjs +442 -27
  12. package/dist/keystone/keystone-service-v1.mjs.map +1 -1
  13. package/dist/keystone/keystone-service-v1.respec.mjs +641 -47
  14. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  15. package/dist/keystone/keystone-types.d.mts +31 -2
  16. package/dist/keystone/keystone-types.d.mts.map +1 -1
  17. package/dist/keystone/keystone-types.mjs +15 -0
  18. package/dist/keystone/keystone-types.mjs.map +1 -1
  19. package/dist/keystone/policy/profiles/profile-domain.json +2 -61
  20. package/dist/keystone/policy/profiles/profile-sync.json +2 -16
  21. package/dist/keystone/policy/schemas/keystone.high.schema.json +1 -1
  22. package/dist/keystone/policy/schemas/keystone.medium.schema.json +1 -1
  23. package/package.json +2 -2
  24. package/src/keystone/keystone-constants.mts +1 -0
  25. package/src/keystone/keystone-helpers.mts +308 -15
  26. package/src/keystone/keystone-service-v1.mts +535 -28
  27. package/src/keystone/keystone-service-v1.respec.mts +2130 -1459
  28. package/src/keystone/keystone-types.mts +50 -2
  29. package/src/keystone/policy/profiles/profile-domain.json +3 -62
  30. package/src/keystone/policy/profiles/profile-sync.json +2 -16
  31. package/src/keystone/policy/schemas/keystone.high.schema.json +1 -1
  32. package/src/keystone/policy/schemas/keystone.medium.schema.json +1 -1
@@ -256,6 +256,54 @@ export interface KeystoneChallengePool {
256
256
  metadata?: any;
257
257
  }
258
258
 
259
+ // #region KeystoneClaimType enum
260
+ export const KEYSTONE_CLAIM_TYPE_ADD_POOL = 'add-pool';
261
+ export const KEYSTONE_CLAIM_TYPE_REMOVE_POOL = 'remove-pool';
262
+ export const KEYSTONE_CLAIM_TYPE_REPLACE_POOL = 'replace-pool';
263
+ export const KEYSTONE_CLAIM_TYPE_CHANGE_PASSWORD = 'change-password';
264
+
265
+ export type KeystoneClaimType =
266
+ | typeof KEYSTONE_CLAIM_TYPE_ADD_POOL
267
+ | typeof KEYSTONE_CLAIM_TYPE_REMOVE_POOL
268
+ | typeof KEYSTONE_CLAIM_TYPE_REPLACE_POOL
269
+ | typeof KEYSTONE_CLAIM_TYPE_CHANGE_PASSWORD
270
+ ;
271
+
272
+ export const KeystoneClaimType = {
273
+ add_pool: KEYSTONE_CLAIM_TYPE_ADD_POOL,
274
+ remove_pool: KEYSTONE_CLAIM_TYPE_REMOVE_POOL,
275
+ replace_pool: KEYSTONE_CLAIM_TYPE_REPLACE_POOL,
276
+ change_password: KEYSTONE_CLAIM_TYPE_CHANGE_PASSWORD,
277
+ } satisfies { readonly [key: string]: KeystoneClaimType };
278
+
279
+ export const KEYSTONE_CLAIM_TYPE_VALID_VALUES: KeystoneClaimType[] = Object.values(KeystoneClaimType);
280
+
281
+ export function isKeystoneClaimType(value: any): value is KeystoneClaimType {
282
+ return typeof value === 'string' && KEYSTONE_CLAIM_TYPE_VALID_VALUES.includes(value as any);
283
+ }
284
+ // #endregion KeystoneClaimType enum
285
+
286
+ export interface ClaimDetails {
287
+ type: KeystoneClaimType;
288
+ info: any;
289
+ }
290
+
291
+ export interface ClaimDetails_AddPool {
292
+ add: string[];
293
+ }
294
+
295
+ export interface ClaimDetails_RemovePool {
296
+ remove: string[];
297
+ }
298
+
299
+ export interface ClaimDetails_ReplacePool {
300
+ replace: string;
301
+ }
302
+
303
+ export interface ClaimDetails_ChangePassword {
304
+ change: string[];
305
+ }
306
+
259
307
  /**
260
308
  * Describes the specific privilege that the evolution of the keystone
261
309
  * authorizes.
@@ -277,9 +325,9 @@ export interface KeystoneClaim {
277
325
  */
278
326
  target: IbGibAddr;
279
327
  /**
280
- * What limitations are narrowed down to beyond just target + verb?
328
+ * Detailed information describing the nature of the keystone evolution/transition.
281
329
  */
282
- scope?: string;
330
+ details?: ClaimDetails;
283
331
  }
284
332
 
285
333
  /**
@@ -5,25 +5,11 @@
5
5
  "securityLevel": "high"
6
6
  },
7
7
  "pools": {
8
- "sync": {
9
- "id": "sync",
10
- "allowedVerbs": [
11
- "sync"
12
- ],
13
- "algo": "SHA-512",
14
- "rounds": 4,
15
- "behavior": {
16
- "size": 2000,
17
- "replenish": "top-up",
18
- "selectSequentially": 10,
19
- "selectRandomly": 10,
20
- "targetBindingCount": 16
21
- }
22
- },
23
8
  "manage": {
24
9
  "id": "manage",
25
10
  "allowedVerbs": [
26
- "manage"
11
+ "manage",
12
+ "revoke"
27
13
  ],
28
14
  "algo": "SHA-512",
29
15
  "rounds": 6,
@@ -34,51 +20,6 @@
34
20
  "selectRandomly": 12,
35
21
  "targetBindingCount": 16
36
22
  }
37
- },
38
- "revoke": {
39
- "id": "revoke",
40
- "allowedVerbs": [
41
- "revoke"
42
- ],
43
- "algo": "SHA-512",
44
- "rounds": 20,
45
- "behavior": {
46
- "size": 2000,
47
- "replenish": "delete-all",
48
- "selectSequentially": 50,
49
- "selectRandomly": 50,
50
- "targetBindingCount": 0
51
- }
52
- },
53
- "connect": {
54
- "id": "connect",
55
- "allowedVerbs": [
56
- "connect"
57
- ],
58
- "algo": "SHA-512",
59
- "rounds": 4,
60
- "behavior": {
61
- "size": 2000,
62
- "replenish": "top-up",
63
- "selectSequentially": 10,
64
- "selectRandomly": 10,
65
- "targetBindingCount": 16
66
- }
67
- },
68
- "sign": {
69
- "id": "default",
70
- "allowedVerbs": [
71
- "sign"
72
- ],
73
- "algo": "SHA-512",
74
- "rounds": 4,
75
- "behavior": {
76
- "size": 2000,
77
- "replenish": "top-up",
78
- "selectSequentially": 10,
79
- "selectRandomly": 10,
80
- "targetBindingCount": 16
81
- }
82
23
  }
83
24
  }
84
- }
25
+ }
@@ -23,7 +23,8 @@
23
23
  "manage": {
24
24
  "id": "manage",
25
25
  "allowedVerbs": [
26
- "manage"
26
+ "manage",
27
+ "revoke"
27
28
  ],
28
29
  "algo": "SHA-256",
29
30
  "rounds": 2,
@@ -35,21 +36,6 @@
35
36
  "targetBindingCount": 8
36
37
  }
37
38
  },
38
- "revoke": {
39
- "id": "revoke",
40
- "allowedVerbs": [
41
- "revoke"
42
- ],
43
- "algo": "SHA-256",
44
- "rounds": 5,
45
- "behavior": {
46
- "size": 100,
47
- "replenish": "delete-all",
48
- "selectSequentially": 3,
49
- "selectRandomly": 3,
50
- "targetBindingCount": 0
51
- }
52
- },
53
39
  "connect": {
54
40
  "id": "connect",
55
41
  "allowedVerbs": [
@@ -19,7 +19,7 @@
19
19
  "connect": { "$ref": "./connect-pool.high.schema.json" },
20
20
  "sign": { "$ref": "./sign-pool.high.schema.json" }
21
21
  },
22
- "required": ["sync", "manage", "revoke", "connect", "sign"]
22
+ "required": ["manage", "revoke", "sign"]
23
23
  }
24
24
  },
25
25
  "required": ["pools"]
@@ -19,7 +19,7 @@
19
19
  "connect": { "$ref": "./connect-pool.medium.schema.json" },
20
20
  "sign": { "$ref": "./sign-pool.medium.schema.json" }
21
21
  },
22
- "required": ["sync", "manage", "revoke", "connect", "sign"]
22
+ "required": ["manage", "revoke", "sign"]
23
23
  }
24
24
  },
25
25
  "required": ["pools"]