@eudiplo/cli 8.0.2 → 8.1.0-main.05183ed

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 (85) hide show
  1. package/README.md +7 -3
  2. package/dist/commands/config/portability/migrations.spec.js +5 -3
  3. package/dist/commands/config/portability/migrations.spec.js.map +1 -1
  4. package/dist/commands/deployment/action.d.ts +1 -1
  5. package/dist/commands/deployment/action.d.ts.map +1 -1
  6. package/dist/commands/deployment/action.js.map +1 -1
  7. package/dist/commands/deployment/index.d.ts.map +1 -1
  8. package/dist/commands/deployment/index.js +7 -4
  9. package/dist/commands/deployment/index.js.map +1 -1
  10. package/dist/commands/doctor/action.d.ts +2 -1
  11. package/dist/commands/doctor/action.d.ts.map +1 -1
  12. package/dist/commands/doctor/action.js +25 -7
  13. package/dist/commands/doctor/action.js.map +1 -1
  14. package/dist/commands/doctor/index.d.ts.map +1 -1
  15. package/dist/commands/doctor/index.js +2 -0
  16. package/dist/commands/doctor/index.js.map +1 -1
  17. package/dist/commands/open/action.d.ts +9 -0
  18. package/dist/commands/open/action.d.ts.map +1 -0
  19. package/dist/commands/open/action.js +41 -0
  20. package/dist/commands/open/action.js.map +1 -0
  21. package/dist/commands/open/index.d.ts +5 -0
  22. package/dist/commands/open/index.d.ts.map +1 -0
  23. package/dist/commands/open/index.js +15 -0
  24. package/dist/commands/open/index.js.map +1 -0
  25. package/dist/commands/upgrade/action.d.ts +3 -0
  26. package/dist/commands/upgrade/action.d.ts.map +1 -0
  27. package/dist/commands/upgrade/action.js +95 -0
  28. package/dist/commands/upgrade/action.js.map +1 -0
  29. package/dist/commands/upgrade/index.d.ts +5 -0
  30. package/dist/commands/upgrade/index.d.ts.map +1 -0
  31. package/dist/commands/upgrade/index.js +15 -0
  32. package/dist/commands/upgrade/index.js.map +1 -0
  33. package/dist/index.js +3139 -550
  34. package/dist/runtime.d.ts.map +1 -1
  35. package/dist/runtime.js +5 -1
  36. package/dist/runtime.js.map +1 -1
  37. package/dist/services/api-auth.d.ts +31 -0
  38. package/dist/services/api-auth.d.ts.map +1 -0
  39. package/dist/services/api-auth.js +78 -0
  40. package/dist/services/api-auth.js.map +1 -0
  41. package/dist/services/backend-checks.d.ts +24 -0
  42. package/dist/services/backend-checks.d.ts.map +1 -0
  43. package/dist/services/backend-checks.js +105 -0
  44. package/dist/services/backend-checks.js.map +1 -0
  45. package/dist/services/browser.d.ts +30 -0
  46. package/dist/services/browser.d.ts.map +1 -0
  47. package/dist/services/browser.js +102 -0
  48. package/dist/services/browser.js.map +1 -0
  49. package/dist/services/compose-args.d.ts +28 -0
  50. package/dist/services/compose-args.d.ts.map +1 -0
  51. package/dist/services/compose-args.js +117 -0
  52. package/dist/services/compose-args.js.map +1 -0
  53. package/dist/services/compose-project.js +6 -6
  54. package/dist/services/compose-project.js.map +1 -1
  55. package/dist/services/compose-upgrade.d.ts +40 -0
  56. package/dist/services/compose-upgrade.d.ts.map +1 -0
  57. package/dist/services/compose-upgrade.js +102 -0
  58. package/dist/services/compose-upgrade.js.map +1 -0
  59. package/dist/services/container-state.d.ts +14 -0
  60. package/dist/services/container-state.d.ts.map +1 -0
  61. package/dist/services/container-state.js +70 -0
  62. package/dist/services/container-state.js.map +1 -0
  63. package/dist/services/deployment-drivers.d.ts +8 -1
  64. package/dist/services/deployment-drivers.d.ts.map +1 -1
  65. package/dist/services/deployment-drivers.js +162 -19
  66. package/dist/services/deployment-drivers.js.map +1 -1
  67. package/dist/services/diagnostics.d.ts +19 -2
  68. package/dist/services/diagnostics.d.ts.map +1 -1
  69. package/dist/services/diagnostics.js +219 -50
  70. package/dist/services/diagnostics.js.map +1 -1
  71. package/dist/services/tls-expiry.d.ts +16 -0
  72. package/dist/services/tls-expiry.d.ts.map +1 -0
  73. package/dist/services/tls-expiry.js +80 -0
  74. package/dist/services/tls-expiry.js.map +1 -0
  75. package/dist/types.d.ts +5 -1
  76. package/dist/types.d.ts.map +1 -1
  77. package/package.json +4 -4
  78. package/templates/demo-config/trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json +1 -97
  79. package/templates/docker-compose.yml +35 -28
  80. package/templates/schemas/IssuanceConfig.schema.json +13 -0
  81. package/templates/schemas/IssuanceConfigFile.schema.json +663 -1
  82. package/templates/schemas/KeyChainConfigFile.schema.json +7 -3
  83. package/templates/schemas/KeyChainImportDto.schema.json +7 -3
  84. package/templates/schemas/PresentationConfigCreateDto.schema.json +3 -6
  85. package/templates/schemas/PresentationConfigFile.schema.json +723 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "8.0.2",
3
+ "version": "8.1.0-main.05183ed",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "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
21
  "build:sea": "node scripts/build-cli-sea.mjs",
22
22
  "dev": "tsx src/index.ts",
23
- "test": "vitest run --project cli",
23
+ "test": "vitest run --root ../.. --project cli",
24
24
  "lint": "biome lint .",
25
25
  "prepublishOnly": "pnpm build:publish"
26
26
  },
@@ -57,11 +57,11 @@
57
57
  "jsonc-parser": "^3.3.1"
58
58
  },
59
59
  "devDependencies": {
60
- "@biomejs/biome": "2.5.13",
60
+ "@biomejs/biome": "2.5.14",
61
61
  "@types/node": "^26.4.0",
62
62
  "esbuild": "^0.28.2",
63
63
  "tsx": "^4.23.13",
64
64
  "typescript": "^7.0.2",
65
- "vitest": "4.1.11"
65
+ "vitest": "5.0.2"
66
66
  }
67
67
  }
@@ -17,102 +17,6 @@
17
17
  "locale": "en"
18
18
  }
19
19
  }
20
- ],
21
- "data": {
22
- "ListAndSchemeInformation": {
23
- "LoTEVersionIdentifier": 1,
24
- "LoTESequenceNumber": 2,
25
- "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUEAAProvidersList",
26
- "StatusDeterminationApproach": "http://uri.etsi.org/19602/EUEAAProvidersList/StatusDetn/EU",
27
- "SchemeTypeCommunityRules": [
28
- {
29
- "locale": "en",
30
- "uriValue": "http://uri.etsi.org/19602/EUEAAProviders/schemerules/EU"
31
- }
32
- ],
33
- "SchemeTerritory": "EU",
34
- "NextUpdate": "2026-02-01T09:40:29.793Z",
35
- "SchemeOperatorName": [
36
- {
37
- "locale": "en",
38
- "value": "Root Tenant"
39
- }
40
- ],
41
- "ListIssueDateTime": "2026-01-02T09:40:29.793Z"
42
- },
43
- "TrustedEntitiesList": [
44
- {
45
- "TrustedEntityInformation": {
46
- "TEInformationURI": [
47
- {
48
- "locale": "en",
49
- "uriValue": "http://example.com/te-info"
50
- }
51
- ],
52
- "TEName": [
53
- {
54
- "locale": "en",
55
- "value": "PID Provider"
56
- }
57
- ],
58
- "TEAddress": {
59
- "TEElectronicAddress": [
60
- {
61
- "locale": "en",
62
- "uriValue": "mailto:example@example.com"
63
- }
64
- ],
65
- "TEPostalAddress": [
66
- {
67
- "Country": "DE",
68
- "locale": "en",
69
- "Locality": "",
70
- "PostalCode": "",
71
- "StreetAddress": ""
72
- }
73
- ]
74
- }
75
- },
76
- "TrustedEntityServices": [
77
- {
78
- "ServiceInformation": {
79
- "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/EAA/Issuance",
80
- "ServiceName": [
81
- {
82
- "locale": "en",
83
- "value": "EAA-Issuance-Service"
84
- }
85
- ],
86
- "ServiceDigitalIdentity": {
87
- "X509Certificates": [
88
- {
89
- "val": "MIIBbzCCARagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtSb290IFRlbmFudDAeFw0yNjAxMDIwOTIzMjJaFw0yNzAxMDIwOTIzMjJaMBYxFDASBgNVBAMTC1Jvb3QgVGVuYW50MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHHkkbUgKSkkqXmL8utl+TLWIg8CYQS4WPJ8j/nO44YzU0ljQtPeYS65wtAJklY2sDt9VbzKlHhl/ly67zk2NLKNVMFMwIgYDVR0RBBswGYIXc2VydmljZS5ldWRpLXdhbGxldC5kZXYwDgYDVR0PAQH/BAQDAgWgMB0GA1UdDgQWBBRvQX4DfNolj/xERsq6Mnn0LJ1LZDAKBggqhkjOPQQDAgNHADBEAiAv/7ZiDe2XT+7GNMQGWbEr+IakJ2Y5EMnur10iLIhVZQIgKrri3W2Bq2qSVyiF0w8v+NwM7Iej3vWwt95KZ2EZ1Cg="
90
- }
91
- ]
92
- }
93
- }
94
- },
95
- {
96
- "ServiceInformation": {
97
- "ServiceName": [
98
- {
99
- "locale": "en",
100
- "value": "EAA-Revocation-Service"
101
- }
102
- ],
103
- "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/EAA/Revocation",
104
- "ServiceDigitalIdentity": {
105
- "X509Certificates": [
106
- {
107
- "val": "MIIBcDCCARagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtSb290IFRlbmFudDAeFw0yNjAxMDIwODQwNDFaFw0yNzAxMDIwODQwNDFaMBYxFDASBgNVBAMTC1Jvb3QgVGVuYW50MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjl97bi6xKezsht0gbbRpkprPE7Ib926KL7MCbnHtnoGNCEJmvdXuaZm86HO1S6T0+QgH8XyC+8FRNGssEDxkQKNVMFMwIgYDVR0RBBswGYIXc2VydmljZS5ldWRpLXdhbGxldC5kZXYwDgYDVR0PAQH/BAQDAgWgMB0GA1UdDgQWBBQ0c6zxfvAgXDu6ikUlMCge3Yn2LTAKBggqhkjOPQQDAgNIADBFAiEA2/XJ9iirNeYCewMScN2SoGa41T1trYmPfqyqV/BP8+8CIFzOX+GgcnGp4H6qJ3IMueeU8ujXeS3nTHKT6U2yONH6"
108
- }
109
- ]
110
- }
111
- }
112
- }
113
- ]
114
- }
115
- ]
116
- }
20
+ ]
117
21
  }
118
22
  }
@@ -2,12 +2,12 @@
2
2
  #
3
3
  # Usage:
4
4
  # docker compose up # Minimal: just EUDIPLO (SQLite, local storage)
5
- # docker compose --profile standard up # Standard: + Postgres + MinIO
6
- # docker compose --profile full up # Full: + Postgres + MinIO + Vault
5
+ # docker compose --profile standard up # Standard: + Postgres + RustFS
6
+ # docker compose --profile full up # Full: + Postgres + RustFS + Vault
7
7
  # docker compose --profile postgres --profile s3 up # Custom components
8
8
  #
9
9
  # For more information, see the documentation:
10
- # https://docs.eudiplo.dev/deployment/docker-compose/
10
+ # https://docs.eudiplo.dev/operate/docker-compose/
11
11
 
12
12
  services:
13
13
  # =============================================================================
@@ -28,8 +28,8 @@ services:
28
28
  postgres:
29
29
  condition: service_healthy
30
30
  required: false
31
- minio:
32
- condition: service_healthy
31
+ rustfs-init:
32
+ condition: service_completed_successfully
33
33
  required: false
34
34
  healthcheck:
35
35
  test: ['CMD', 'curl', '-f', 'http://localhost:3000/health']
@@ -62,7 +62,7 @@ services:
62
62
  - eudiplo-network
63
63
 
64
64
  # =============================================================================
65
- # STANDARD PROFILE: PostgreSQL + MinIO
65
+ # STANDARD PROFILE: PostgreSQL + RustFS
66
66
  # =============================================================================
67
67
 
68
68
  postgres:
@@ -87,21 +87,23 @@ services:
87
87
  networks:
88
88
  - eudiplo-network
89
89
 
90
- minio:
91
- image: quay.io/minio/minio:latest
90
+ rustfs:
91
+ image: rustfs/rustfs:1.0.0
92
92
  restart: always
93
93
  profiles: ['s3', 'standard', 'full']
94
94
  ports:
95
95
  - '9000:9000'
96
96
  - '9001:9001'
97
97
  environment:
98
- MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
99
- MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
98
+ RUSTFS_ACCESS_KEY: ${RUSTFS_ACCESS_KEY:-rustfsadmin}
99
+ RUSTFS_SECRET_KEY: ${RUSTFS_SECRET_KEY:-rustfsadmin}
100
+ RUSTFS_CONSOLE_ENABLE: "true"
101
+ RUSTFS_CONSOLE_ADDRESS: ":9001"
100
102
  volumes:
101
- - minio-data:/data
102
- command: server /data --console-address ":9001"
103
+ - rustfs-data:/data
104
+ command: ["/data"]
103
105
  healthcheck:
104
- test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live']
106
+ test: ['CMD', 'curl', '-f', 'http://localhost:9000/health/ready']
105
107
  interval: 30s
106
108
  timeout: 10s
107
109
  retries: 3
@@ -109,24 +111,29 @@ services:
109
111
  networks:
110
112
  - eudiplo-network
111
113
 
112
- # MinIO bucket initialization job
113
- minio-init:
114
- image: quay.io/minio/mc:latest
114
+ # S3 bucket initialization using the AWS CLI
115
+ rustfs-init:
116
+ image: amazon/aws-cli:2.37.3
115
117
  profiles: ['s3', 'standard', 'full']
116
118
  depends_on:
117
- minio:
119
+ rustfs:
118
120
  condition: service_healthy
119
121
  environment:
120
- MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
121
- MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
122
- MINIO_BUCKET: ${S3_BUCKET:-uploads}
123
- entrypoint: >
124
- /bin/sh -c "
125
- mc alias set local http://minio:9000 $$MINIO_ROOT_USER $$MINIO_ROOT_PASSWORD;
126
- mc mb -p local/$$MINIO_BUCKET || true;
127
- mc anonymous set download local/$$MINIO_BUCKET || true;
128
- echo 'Bucket created successfully';
129
- "
122
+ AWS_ACCESS_KEY_ID: ${RUSTFS_ACCESS_KEY:-rustfsadmin}
123
+ AWS_SECRET_ACCESS_KEY: ${RUSTFS_SECRET_KEY:-rustfsadmin}
124
+ AWS_DEFAULT_REGION: ${S3_REGION:-us-east-1}
125
+ AWS_CONFIG_FILE: /tmp/aws-config
126
+ S3_BUCKET: ${S3_BUCKET:-uploads}
127
+ entrypoint: ['/bin/sh', '-c']
128
+ command:
129
+ - |
130
+ set -eu
131
+ aws configure set default.s3.addressing_style path
132
+ s3() { aws --endpoint-url http://rustfs:9000 s3api "$$@"; }
133
+ s3 head-bucket --bucket "$$S3_BUCKET" 2>/dev/null || s3 create-bucket --bucket "$$S3_BUCKET"
134
+ printf '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"*","Action":["s3:GetObject"],"Resource":["arn:aws:s3:::%s/*"]}]}' "$$S3_BUCKET" > /tmp/bucket-policy.json
135
+ s3 put-bucket-policy --bucket "$$S3_BUCKET" --policy file:///tmp/bucket-policy.json
136
+ echo 'Bucket initialized successfully'
130
137
  networks:
131
138
  - eudiplo-network
132
139
 
@@ -164,7 +171,7 @@ volumes:
164
171
  driver: local
165
172
  postgres-data:
166
173
  driver: local
167
- minio-data:
174
+ rustfs-data:
168
175
  driver: local
169
176
  vault-data:
170
177
  driver: local
@@ -612,6 +612,19 @@
612
612
  "type": "null"
613
613
  }
614
614
  ]
615
+ },
616
+ "offerLifetimeSeconds": {
617
+ "description": "Default lifetime of credential offers in seconds. Can be overridden per offer request. Null or unset: offers do not expire.",
618
+ "anyOf": [
619
+ {
620
+ "type": "integer",
621
+ "minimum": 1,
622
+ "maximum": 9007199254740991
623
+ },
624
+ {
625
+ "type": "null"
626
+ }
627
+ ]
615
628
  }
616
629
  },
617
630
  "required": [