dataspace-client-sdk-node 0.1.1 → 0.1.2
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 +28 -0
- package/README.md +40 -0
- package/dist/client.d.ts +114 -32
- package/dist/client.js +482 -30
- package/dist/types.d.ts +92 -0
- package/docs/BACKEND_NODE_INTEGRATION.md +122 -0
- package/docs/DATA_MODEL_ALIGNMENT.md +37 -13
- package/docs/PORTAL_BACKEND_INTEGRATION_HANDOVER.md +335 -0
- package/docs/REACT_WEB_INTEGRATION.md +72 -0
- package/examples/smoke-legal-org-local.mjs +40 -0
- package/package.json +1 -1
- package/src/client.ts +628 -66
- package/src/types.ts +101 -0
- package/tests/client.test.mjs +491 -0
- package/SDK_PARITY_MAP.md +0 -120
package/SDK_PARITY_MAP.md
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
# SDK Parity Map (Node vs Python)
|
|
2
|
-
|
|
3
|
-
Estado: guía de referencia para alinear `dataspace-client-sdk-node` con `connector-sdk-py`.
|
|
4
|
-
|
|
5
|
-
Convención:
|
|
6
|
-
- Node SDK: `dataspace-client-sdk-node`
|
|
7
|
-
- Python SDK: `connector-sdk-py`
|
|
8
|
-
- Wallet interno temporal en Node: `src/sdk/dataspace-wallet-sdk-node/`
|
|
9
|
-
|
|
10
|
-
## 0) Repos fuente del ecosistema (contexto obligatorio)
|
|
11
|
-
|
|
12
|
-
| Repo | Rol |
|
|
13
|
-
|---|---|
|
|
14
|
-
| `dataspace-client-sdk-node` | SDK backend Node (este repo) |
|
|
15
|
-
| `connector-sdk-py` | referencia de paridad backend Python |
|
|
16
|
-
| `gdc-sdk-client-ts` | SDK/frontend wallet UX-side |
|
|
17
|
-
| `gwtemplate-node-ts` | base backend GW + `gdc-backend-utils-node` |
|
|
18
|
-
| `gdc-unid-node-ts` | fork operativo de GW para UNID |
|
|
19
|
-
| `uhc-unid-chat-node` | consumidor de alto nivel (voice/chat orchestration) |
|
|
20
|
-
|
|
21
|
-
## 1) Perímetro de paridad
|
|
22
|
-
|
|
23
|
-
La paridad se mide por capacidades, no por nombres internos exactos:
|
|
24
|
-
|
|
25
|
-
1. Auth backend (PKCE + exchange / SMART backend)
|
|
26
|
-
2. Submit + poll de operaciones de dominio
|
|
27
|
-
3. Lifecycle de API keys
|
|
28
|
-
4. Wallet/KMS cliente (firma, verificación, cifrado, descifrado)
|
|
29
|
-
|
|
30
|
-
## 2) Identity Routes (canónicas)
|
|
31
|
-
|
|
32
|
-
Patrón objetivo para rutas de identidad:
|
|
33
|
-
|
|
34
|
-
`/{prefix}/cds-{jurisdiction}/v1/{sector}/{tenantId}/identity/auth/{action}`
|
|
35
|
-
|
|
36
|
-
Donde `prefix` depende del servicio:
|
|
37
|
-
- `host` (GW)
|
|
38
|
-
- `publisher` (DataConv)
|
|
39
|
-
- `ica` (ICA)
|
|
40
|
-
|
|
41
|
-
Nota de compatibilidad:
|
|
42
|
-
- Consumidores que usan métodos de alto nivel (`authenticateBackendPkceAndExchange`) no deberían depender de este detalle.
|
|
43
|
-
- Consumidores que montaban rutas manuales sí deben migrar.
|
|
44
|
-
|
|
45
|
-
## 3) Paridad de Auth
|
|
46
|
-
|
|
47
|
-
| Capability | Node SDK | Python SDK | Estado objetivo |
|
|
48
|
-
|---|---|---|---|
|
|
49
|
-
| Identity DCR submit/poll | path builder + submit/poll | operación equivalente | ✅ |
|
|
50
|
-
| Identity code submit/poll | path builder + submit/poll | operación equivalente | ✅ |
|
|
51
|
-
| Identity token submit/poll | path builder + submit/poll | operación equivalente | ✅ |
|
|
52
|
-
| Identity exchange submit/poll | path builder + submit/poll | operación equivalente | ✅ |
|
|
53
|
-
| PKCE orchestration | `authenticateBackendPkceAndExchange(...)` | `authenticate_backend_pkce_and_exchange(...)` | ✅ |
|
|
54
|
-
| SMART backend orchestration | método Node equivalente (pendiente según contrato) | `authenticate_backend_smart_standard(...)` | ⏳ |
|
|
55
|
-
|
|
56
|
-
## 4) Paridad de Wallet/KMS cliente
|
|
57
|
-
|
|
58
|
-
Arquitectura temporal Node:
|
|
59
|
-
- módulo interno `src/sdk/dataspace-wallet-sdk-node/`
|
|
60
|
-
- evolución futura: extraer a paquete/repo independiente
|
|
61
|
-
|
|
62
|
-
Baseline funcional backend/KMS que debe respetarse:
|
|
63
|
-
- en GW (`gdc-unid-node-ts`/`gwtemplate-node-ts`) existen servicios KMS runtime (`KmsService`, `DemoKmsService`) y utilidades KEK en backend utils,
|
|
64
|
-
- el SDK cliente no replica managers de GW,
|
|
65
|
-
- pero sí debe exponer wallet/KMS reutilizable para servicios backend cliente.
|
|
66
|
-
|
|
67
|
-
| Capability | Node target (`dataspace-wallet-sdk-node` interno) | Python target | Estado |
|
|
68
|
-
|---|---|---|---|
|
|
69
|
-
| Key material provider abstraction | `WalletProvider` | provider equivalente | ⏳ |
|
|
70
|
-
| In-memory provider | `memory-provider` | provider equivalente | ⏳ |
|
|
71
|
-
| Deterministic seed provider (demo/dev) | `seed-provider` | provider equivalente | ⏳ |
|
|
72
|
-
| Public JWK export | `getPublicJwks(...)` | equivalente | ⏳ |
|
|
73
|
-
| Sign/verify | `sign(...)`, `verify(...)` | equivalente | ⏳ |
|
|
74
|
-
| Encrypt/decrypt | `encrypt(...)`, `decrypt(...)` | equivalente | ⏳ |
|
|
75
|
-
| Single-tenant facade | `WalletClient` | equivalente | ⏳ |
|
|
76
|
-
| Multi-tenant facade | `MultiWalletClient` | equivalente | ⏳ |
|
|
77
|
-
|
|
78
|
-
## 5) Paridad de dominios (baseline)
|
|
79
|
-
|
|
80
|
-
| Domain capability | Node SDK | Python SDK | Estado |
|
|
81
|
-
|---|---|---|---|
|
|
82
|
-
| Family/Organization onboarding | métodos batch + poll | equivalente | ✅/⏳ según endpoint |
|
|
83
|
-
| RelatedPerson | métodos batch + poll | equivalente | ✅ |
|
|
84
|
-
| Observation | métodos batch + poll | equivalente | ✅ |
|
|
85
|
-
| Communication | métodos batch + poll | equivalente | ✅ |
|
|
86
|
-
| Composition | métodos batch + poll | equivalente | ✅ |
|
|
87
|
-
| Task | métodos batch + poll | equivalente | ✅ |
|
|
88
|
-
| Conversion upload | upload + poll | equivalente | ✅ |
|
|
89
|
-
|
|
90
|
-
## 6) Surface nuevo (onboarding/licensing/payment)
|
|
91
|
-
|
|
92
|
-
| Capability | Node SDK | Python SDK | Contract endpoint | Estado |
|
|
93
|
-
|---|---|---|---|---|
|
|
94
|
-
| Family Organization search | pendiente | pendiente | `individual/org.schema/Organization/_search` (+ `_batch-response`) | ⏳ |
|
|
95
|
-
| Family Organization create/resume | pendiente | pendiente | `individual/org.schema/Organization/_batch` (+ `_batch-response`) | ⏳ |
|
|
96
|
-
| Family Order create | pendiente | pendiente | `individual/org.schema/Order/_batch` (+ `_batch-response`) | ⏳ |
|
|
97
|
-
| Host registry order (host flow) | pendiente | pendiente | `host/.../registry/org.schema/Order/_batch` (+ `_batch-response`) | ⏳ |
|
|
98
|
-
| Offer consumption for family flow | pendiente | pendiente | offer returned by Organization `_batch-response` | ⏳ |
|
|
99
|
-
| Stripe intent | pendiente | pendiente | `payment/stripe/_intent` | ⏳ |
|
|
100
|
-
| Stripe status | pendiente | pendiente | `payment/stripe/_status` | ⏳ |
|
|
101
|
-
| API key create | pendiente | disponible en Python | `identity/api-key/_create` | ⏳ |
|
|
102
|
-
| API key disable | pendiente | disponible en Python | `identity/api-key/_disable` | ⏳ |
|
|
103
|
-
| API key search | pendiente | disponible en Python | `identity/api-key/_search` | ⏳ |
|
|
104
|
-
|
|
105
|
-
## 7) Reglas de cambio
|
|
106
|
-
|
|
107
|
-
Cada PR que cambie superficie pública en Node o Python debe incluir:
|
|
108
|
-
|
|
109
|
-
1. actualización de esta tabla,
|
|
110
|
-
2. tests de paridad/compatibilidad,
|
|
111
|
-
3. nota de migración si hay breaking changes.
|
|
112
|
-
|
|
113
|
-
## 8) Check de salida para release
|
|
114
|
-
|
|
115
|
-
Antes de publicar nueva versión Node:
|
|
116
|
-
|
|
117
|
-
1. `README` actualizado con auth + wallet.
|
|
118
|
-
2. ejemplos funcionales en `examples/`.
|
|
119
|
-
3. tests de paridad en verde.
|
|
120
|
-
4. changelog con sección de migración (si aplica).
|