@eudiplo/cli 9.1.0-main.9e52ff4 → 9.1.0-main.a601cfe

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "9.1.0-main.9e52ff4",
3
+ "version": "9.1.0-main.a601cfe",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -15,11 +15,12 @@
15
15
  "scripts": {
16
16
  "assets:sync": "node scripts/sync-cli-assets.cjs",
17
17
  "assets:check": "node scripts/check-cli-assets.cjs",
18
+ "build:deps": "pnpm --silent --filter \"@eudiplo/cli^...\" build",
18
19
  "build": "pnpm assets:sync && pnpm assets:check && tsc -p tsconfig.json",
19
20
  "build:publish": "pnpm build && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist/index.js",
20
21
  "build:sea:bundle": "pnpm assets:sync && pnpm assets:check && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist-sea/index.js",
21
22
  "build:sea": "node scripts/build-cli-sea.mjs",
22
- "dev": "tsx src/index.ts",
23
+ "dev": "pnpm -s build:deps && tsx src/index.ts",
23
24
  "test": "vitest run --root ../.. --project cli",
24
25
  "lint": "biome lint .",
25
26
  "format": "biome format --write .",
@@ -64,6 +65,6 @@
64
65
  "esbuild": "^0.28.2",
65
66
  "tsx": "^4.23.15",
66
67
  "typescript": "^7.0.2",
67
- "vitest": "5.0.3"
68
+ "vitest": "5.0.4"
68
69
  }
69
70
  }
@@ -11,10 +11,10 @@
11
11
  "type": "private-jwk",
12
12
  "jwk": {
13
13
  "crv": "P-256",
14
- "d": "oXPLTk02Mq9n8GfOTQ8hdoe3ENkNoN_Y2ymLnUmnbV0",
14
+ "d": "iAUEObUwUI-QDXsFYH9SLm7D-yuEUsOD73YG_jBgLGk",
15
15
  "kty": "EC",
16
- "x": "HHkkbUgKSkkqXmL8utl-TLWIg8CYQS4WPJ8j_nO44Yw",
17
- "y": "1NJY0LT3mEuucLQCZJWNrA7fVW8ypR4Zf5cuu85NjSw",
16
+ "x": "sSdNHYiCOK0E8lNE9rUQLUN3MbVeDnxjRwVwRiI9BqY",
17
+ "y": "xRP83r38x_MYGsteGhUW25Q0XVXA-ZRXlP38a8URPDg",
18
18
  "alg": "ES256"
19
19
  }
20
20
  },
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "maxLength": 255,
9
+ "pattern": "^[A-Za-z0-9._-]+$",
10
+ "description": "Unique identifier of the trust anchor in the tenant."
11
+ },
12
+ "entityId": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "maxLength": 2048,
16
+ "description": "Entity identifier of the trust anchor, exactly as configured in `federation.trustAnchors` and DCQL `openid_federation` values."
17
+ },
18
+ "description": {
19
+ "anyOf": [
20
+ {
21
+ "type": "string",
22
+ "minLength": 1,
23
+ "maxLength": 1000
24
+ },
25
+ {
26
+ "type": "null"
27
+ }
28
+ ],
29
+ "description": "Optional description of the trust anchor."
30
+ },
31
+ "jwks": {
32
+ "type": "object",
33
+ "properties": {
34
+ "keys": {
35
+ "minItems": 1,
36
+ "maxItems": 20,
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "properties": {
41
+ "kty": {
42
+ "type": "string",
43
+ "enum": [
44
+ "EC",
45
+ "RSA",
46
+ "OKP"
47
+ ],
48
+ "description": "Key type of the public federation key."
49
+ },
50
+ "kid": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "maxLength": 256,
54
+ "description": "Key ID. Federation statements name their signing key with `kid`."
55
+ }
56
+ },
57
+ "required": [
58
+ "kty",
59
+ "kid"
60
+ ],
61
+ "additionalProperties": {},
62
+ "description": "Public federation key of the trust anchor as a JWK."
63
+ },
64
+ "description": "The trust anchor's federation keys."
65
+ }
66
+ },
67
+ "required": [
68
+ "keys"
69
+ ],
70
+ "additionalProperties": false,
71
+ "description": "JWK set with the federation keys of the trust anchor, obtained out of band (OpenID Federation 1.0 Section 10.2)."
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "entityId",
77
+ "jwks"
78
+ ],
79
+ "additionalProperties": false,
80
+ "$id": "./CreateFederationTrustAnchorDto.schema.json",
81
+ "title": "CreateFederationTrustAnchorDto"
82
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./FederationTrustAnchorConfigFile.schema.json",
4
+ "title": "FederationTrustAnchorConfigFile",
5
+ "description": "Configuration file identified by its $schema URL.",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "const": "https://eudiplo.dev/schemas/v1/FederationTrustAnchorConfigFile.schema.json"
13
+ },
14
+ "metadata": {
15
+ "type": "object",
16
+ "properties": {
17
+ "generation": {
18
+ "type": "integer",
19
+ "minimum": 1,
20
+ "description": "Monotonically increasing configuration generation."
21
+ },
22
+ "ownership": {
23
+ "type": "string",
24
+ "enum": [
25
+ "unmanaged",
26
+ "file-managed"
27
+ ],
28
+ "description": "Requested ownership recorded when the document is applied."
29
+ }
30
+ },
31
+ "additionalProperties": false
32
+ },
33
+ "spec": {
34
+ "allOf": [
35
+ {
36
+ "$ref": "./CreateFederationTrustAnchorDto.schema.json"
37
+ },
38
+ {
39
+ "type": "object",
40
+ "required": [
41
+ "id"
42
+ ],
43
+ "properties": {
44
+ "id": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ }
48
+ }
49
+ }
50
+ ]
51
+ }
52
+ },
53
+ "required": [
54
+ "$schema",
55
+ "spec"
56
+ ],
57
+ "additionalProperties": false
58
+ }
59
+ ]
60
+ }
@@ -81,6 +81,18 @@
81
81
  }
82
82
  },
83
83
  "additionalProperties": false
84
+ },
85
+ "defaultKeyChains": {
86
+ "type": "object",
87
+ "properties": {
88
+ "access": {
89
+ "description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
90
+ "type": "string",
91
+ "minLength": 1
92
+ }
93
+ },
94
+ "additionalProperties": false,
95
+ "description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
84
96
  }
85
97
  },
86
98
  "required": [
@@ -528,8 +528,9 @@
528
528
  ]
529
529
  },
530
530
  "entityId": {
531
- "description": "Optional local federation entity id.",
532
- "type": "string"
531
+ "description": "Entity Identifier of the tenant's federation entity, usually {PUBLIC_URL}/issuers/{tenantId}: an https URL with a host and without query or fragment (OpenID Federation 1.0 Section 1.2). http is accepted only when OUTBOUND_URL_ALLOW_HTTP is true.",
532
+ "type": "string",
533
+ "pattern": "^(https?:\\/\\/[^\\s?#]+)?$"
533
534
  },
534
535
  "enforceSigningPolicy": {
535
536
  "description": "Enforce strict signing policy checks.",
@@ -564,6 +565,80 @@
564
565
  "additionalProperties": false
565
566
  },
566
567
  "description": "Federation trust anchors."
568
+ },
569
+ "entityTypes": {
570
+ "description": "Roles the entity configuration publishes metadata for. Defaults to openid_credential_issuer.",
571
+ "minItems": 1,
572
+ "type": "array",
573
+ "items": {
574
+ "type": "string",
575
+ "enum": [
576
+ "openid_credential_issuer",
577
+ "openid_credential_verifier"
578
+ ]
579
+ }
580
+ },
581
+ "authorityHints": {
582
+ "description": "authority_hints of the entity configuration: the superiors that issue a subordinate statement about this entity. Defaults to the trust anchor entity ids.",
583
+ "type": "array",
584
+ "items": {
585
+ "type": "string",
586
+ "format": "uri"
587
+ }
588
+ },
589
+ "entityKeyChainId": {
590
+ "description": "Key chain with usage type 'federation' that signs the entity configuration. Without it, a federation key chain of the tenant is used; set it when the tenant has several.",
591
+ "type": "string",
592
+ "minLength": 1
593
+ },
594
+ "entityConfigurationLifetimeSeconds": {
595
+ "description": "Lifetime (exp - iat) of the entity configuration in seconds. Defaults to 86400.",
596
+ "type": "integer",
597
+ "minimum": 60,
598
+ "maximum": 31536000
599
+ },
600
+ "trustMarks": {
601
+ "description": "Trust mark JWTs issued to this entity, published in the entity configuration.",
602
+ "type": "array",
603
+ "items": {
604
+ "type": "string",
605
+ "minLength": 1
606
+ }
607
+ },
608
+ "entityMetadata": {
609
+ "description": "Informational federation_entity metadata of the entity configuration.",
610
+ "type": "object",
611
+ "properties": {
612
+ "organization_name": {
613
+ "type": "string",
614
+ "minLength": 1
615
+ },
616
+ "contacts": {
617
+ "minItems": 1,
618
+ "type": "array",
619
+ "items": {
620
+ "type": "string",
621
+ "minLength": 1
622
+ }
623
+ },
624
+ "logo_uri": {
625
+ "type": "string",
626
+ "format": "uri"
627
+ },
628
+ "policy_uri": {
629
+ "type": "string",
630
+ "format": "uri"
631
+ },
632
+ "homepage_uri": {
633
+ "type": "string",
634
+ "format": "uri"
635
+ }
636
+ },
637
+ "additionalProperties": false
638
+ },
639
+ "includeTrustChain": {
640
+ "description": "Add the trust chain of this entity as trust_chain header to federation SD-JWT VCs and OID4VP request objects.",
641
+ "type": "boolean"
567
642
  }
568
643
  },
569
644
  "required": [