@parmana/sdk 1.1.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.
- package/README.md +284 -0
- package/dist/client/AuditApi.d.ts +18 -0
- package/dist/client/AuditApi.d.ts.map +1 -0
- package/dist/client/AuditApi.js +25 -0
- package/dist/client/AuditApi.js.map +1 -0
- package/dist/client/ExecutionApi.d.ts +39 -0
- package/dist/client/ExecutionApi.d.ts.map +1 -0
- package/dist/client/ExecutionApi.js +58 -0
- package/dist/client/ExecutionApi.js.map +1 -0
- package/dist/client/HealthApi.d.ts +22 -0
- package/dist/client/HealthApi.d.ts.map +1 -0
- package/dist/client/HealthApi.js +24 -0
- package/dist/client/HealthApi.js.map +1 -0
- package/dist/client/ParmanaClient.d.ts +154 -0
- package/dist/client/ParmanaClient.d.ts.map +1 -0
- package/dist/client/ParmanaClient.js +223 -0
- package/dist/client/ParmanaClient.js.map +1 -0
- package/dist/client/PolicyApi.d.ts +53 -0
- package/dist/client/PolicyApi.d.ts.map +1 -0
- package/dist/client/PolicyApi.js +48 -0
- package/dist/client/PolicyApi.js.map +1 -0
- package/dist/client/ReceiptApi.d.ts +29 -0
- package/dist/client/ReceiptApi.d.ts.map +1 -0
- package/dist/client/ReceiptApi.js +38 -0
- package/dist/client/ReceiptApi.js.map +1 -0
- package/dist/client/RefusalApi.d.ts +25 -0
- package/dist/client/RefusalApi.d.ts.map +1 -0
- package/dist/client/RefusalApi.js +38 -0
- package/dist/client/RefusalApi.js.map +1 -0
- package/dist/client/ReplayApi.d.ts +21 -0
- package/dist/client/ReplayApi.d.ts.map +1 -0
- package/dist/client/ReplayApi.js +30 -0
- package/dist/client/ReplayApi.js.map +1 -0
- package/dist/client/TransactionApi.d.ts +43 -0
- package/dist/client/TransactionApi.d.ts.map +1 -0
- package/dist/client/TransactionApi.js +62 -0
- package/dist/client/TransactionApi.js.map +1 -0
- package/dist/client/TrustRecordApi.d.ts +19 -0
- package/dist/client/TrustRecordApi.d.ts.map +1 -0
- package/dist/client/TrustRecordApi.js +25 -0
- package/dist/client/TrustRecordApi.js.map +1 -0
- package/dist/client/VerificationApi.d.ts +27 -0
- package/dist/client/VerificationApi.d.ts.map +1 -0
- package/dist/client/VerificationApi.js +42 -0
- package/dist/client/VerificationApi.js.map +1 -0
- package/dist/config/Configuration.d.ts +66 -0
- package/dist/config/Configuration.d.ts.map +1 -0
- package/dist/config/Configuration.js +17 -0
- package/dist/config/Configuration.js.map +1 -0
- package/dist/config/RetryPolicy.d.ts +66 -0
- package/dist/config/RetryPolicy.d.ts.map +1 -0
- package/dist/config/RetryPolicy.js +27 -0
- package/dist/config/RetryPolicy.js.map +1 -0
- package/dist/config/Transport.d.ts +80 -0
- package/dist/config/Transport.d.ts.map +1 -0
- package/dist/config/Transport.js +17 -0
- package/dist/config/Transport.js.map +1 -0
- package/dist/errors/AuthenticationError.d.ts +12 -0
- package/dist/errors/AuthenticationError.d.ts.map +1 -0
- package/dist/errors/AuthenticationError.js +21 -0
- package/dist/errors/AuthenticationError.js.map +1 -0
- package/dist/errors/AuthorizationError.d.ts +31 -0
- package/dist/errors/AuthorizationError.d.ts.map +1 -0
- package/dist/errors/AuthorizationError.js +42 -0
- package/dist/errors/AuthorizationError.js.map +1 -0
- package/dist/errors/ConfigurationError.d.ts +11 -0
- package/dist/errors/ConfigurationError.d.ts.map +1 -0
- package/dist/errors/ConfigurationError.js +20 -0
- package/dist/errors/ConfigurationError.js.map +1 -0
- package/dist/errors/ConflictError.d.ts +14 -0
- package/dist/errors/ConflictError.d.ts.map +1 -0
- package/dist/errors/ConflictError.js +23 -0
- package/dist/errors/ConflictError.js.map +1 -0
- package/dist/errors/ExecutionRejectedError.d.ts +11 -0
- package/dist/errors/ExecutionRejectedError.d.ts.map +1 -0
- package/dist/errors/ExecutionRejectedError.js +20 -0
- package/dist/errors/ExecutionRejectedError.js.map +1 -0
- package/dist/errors/InternalServerError.d.ts +11 -0
- package/dist/errors/InternalServerError.d.ts.map +1 -0
- package/dist/errors/InternalServerError.js +20 -0
- package/dist/errors/InternalServerError.js.map +1 -0
- package/dist/errors/NetworkError.d.ts +11 -0
- package/dist/errors/NetworkError.d.ts.map +1 -0
- package/dist/errors/NetworkError.js +20 -0
- package/dist/errors/NetworkError.js.map +1 -0
- package/dist/errors/NotFoundError.d.ts +13 -0
- package/dist/errors/NotFoundError.d.ts.map +1 -0
- package/dist/errors/NotFoundError.js +22 -0
- package/dist/errors/NotFoundError.js.map +1 -0
- package/dist/errors/ParmanaError.d.ts +57 -0
- package/dist/errors/ParmanaError.d.ts.map +1 -0
- package/dist/errors/ParmanaError.js +60 -0
- package/dist/errors/ParmanaError.js.map +1 -0
- package/dist/errors/RateLimitError.d.ts +24 -0
- package/dist/errors/RateLimitError.d.ts.map +1 -0
- package/dist/errors/RateLimitError.js +35 -0
- package/dist/errors/RateLimitError.js.map +1 -0
- package/dist/errors/ReplayError.d.ts +11 -0
- package/dist/errors/ReplayError.d.ts.map +1 -0
- package/dist/errors/ReplayError.js +20 -0
- package/dist/errors/ReplayError.js.map +1 -0
- package/dist/errors/TimeoutError.d.ts +11 -0
- package/dist/errors/TimeoutError.d.ts.map +1 -0
- package/dist/errors/TimeoutError.js +20 -0
- package/dist/errors/TimeoutError.js.map +1 -0
- package/dist/errors/ValidationError.d.ts +11 -0
- package/dist/errors/ValidationError.d.ts.map +1 -0
- package/dist/errors/ValidationError.js +20 -0
- package/dist/errors/ValidationError.js.map +1 -0
- package/dist/errors/VerificationError.d.ts +11 -0
- package/dist/errors/VerificationError.d.ts.map +1 -0
- package/dist/errors/VerificationError.js +20 -0
- package/dist/errors/VerificationError.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/models/audit-event.d.ts +15 -0
- package/dist/models/audit-event.d.ts.map +1 -0
- package/dist/models/audit-event.js +2 -0
- package/dist/models/audit-event.js.map +1 -0
- package/dist/models/authority.d.ts +14 -0
- package/dist/models/authority.d.ts.map +1 -0
- package/dist/models/authority.js +8 -0
- package/dist/models/authority.js.map +1 -0
- package/dist/models/authorization.d.ts +13 -0
- package/dist/models/authorization.d.ts.map +1 -0
- package/dist/models/authorization.js +7 -0
- package/dist/models/authorization.js.map +1 -0
- package/dist/models/business-transaction.d.ts +25 -0
- package/dist/models/business-transaction.d.ts.map +1 -0
- package/dist/models/business-transaction.js +2 -0
- package/dist/models/business-transaction.js.map +1 -0
- package/dist/models/execution.d.ts +36 -0
- package/dist/models/execution.d.ts.map +1 -0
- package/dist/models/execution.js +2 -0
- package/dist/models/execution.js.map +1 -0
- package/dist/models/index.d.ts +15 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +15 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/intent.d.ts +14 -0
- package/dist/models/intent.d.ts.map +1 -0
- package/dist/models/intent.js +7 -0
- package/dist/models/intent.js.map +1 -0
- package/dist/models/override.d.ts +9 -0
- package/dist/models/override.d.ts.map +1 -0
- package/dist/models/override.js +2 -0
- package/dist/models/override.js.map +1 -0
- package/dist/models/policy.d.ts +11 -0
- package/dist/models/policy.d.ts.map +1 -0
- package/dist/models/policy.js +7 -0
- package/dist/models/policy.js.map +1 -0
- package/dist/models/receipt.d.ts +10 -0
- package/dist/models/receipt.d.ts.map +1 -0
- package/dist/models/receipt.js +2 -0
- package/dist/models/receipt.js.map +1 -0
- package/dist/models/refusal-record.d.ts +51 -0
- package/dist/models/refusal-record.d.ts.map +1 -0
- package/dist/models/refusal-record.js +2 -0
- package/dist/models/refusal-record.js.map +1 -0
- package/dist/models/replay-result.d.ts +6 -0
- package/dist/models/replay-result.d.ts.map +1 -0
- package/dist/models/replay-result.js +2 -0
- package/dist/models/replay-result.js.map +1 -0
- package/dist/models/signature.d.ts +16 -0
- package/dist/models/signature.d.ts.map +1 -0
- package/dist/models/signature.js +10 -0
- package/dist/models/signature.js.map +1 -0
- package/dist/models/trust-record.d.ts +20 -0
- package/dist/models/trust-record.d.ts.map +1 -0
- package/dist/models/trust-record.js +2 -0
- package/dist/models/trust-record.js.map +1 -0
- package/dist/models/verification.d.ts +10 -0
- package/dist/models/verification.d.ts.map +1 -0
- package/dist/models/verification.js +2 -0
- package/dist/models/verification.js.map +1 -0
- package/dist/transport/HttpTransport.d.ts +25 -0
- package/dist/transport/HttpTransport.d.ts.map +1 -0
- package/dist/transport/HttpTransport.js +193 -0
- package/dist/transport/HttpTransport.js.map +1 -0
- package/dist/transport/mapHttpErrorResponse.d.ts +52 -0
- package/dist/transport/mapHttpErrorResponse.d.ts.map +1 -0
- package/dist/transport/mapHttpErrorResponse.js +134 -0
- package/dist/transport/mapHttpErrorResponse.js.map +1 -0
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/package.json +57 -0
package/README.md
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# Parmana TypeScript SDK
|
|
2
|
+
|
|
3
|
+
The official TypeScript SDK for **Parmana**.
|
|
4
|
+
|
|
5
|
+
Parmana ensures that only Parmana-approved actions are executed.
|
|
6
|
+
|
|
7
|
+
Parmana is an **Execution Trust Infrastructure** for AI systems.
|
|
8
|
+
|
|
9
|
+
It ensures that autonomous systems execute **only policy-compliant actions** and produces cryptographically verifiable evidence for every execution.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Why Parmana?
|
|
14
|
+
|
|
15
|
+
Modern AI systems can make decisions autonomously, but organizations need assurance that those decisions comply with business policies before execution.
|
|
16
|
+
|
|
17
|
+
Parmana provides that assurance.
|
|
18
|
+
|
|
19
|
+
Using Parmana, organizations can:
|
|
20
|
+
|
|
21
|
+
- Execute only policy-compliant actions
|
|
22
|
+
- Produce verifiable execution evidence
|
|
23
|
+
- Build an auditable authorization-to-execution trust chain
|
|
24
|
+
- Independently verify every execution
|
|
25
|
+
- Support governance and regulatory compliance
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Core Principle
|
|
30
|
+
|
|
31
|
+
Parmana does not execute business actions.
|
|
32
|
+
|
|
33
|
+
Parmana authorizes execution.
|
|
34
|
+
|
|
35
|
+
Only Parmana-approved actions are executed.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
# Architecture
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Application
|
|
43
|
+
│
|
|
44
|
+
▼
|
|
45
|
+
Parmana TypeScript SDK
|
|
46
|
+
│
|
|
47
|
+
▼
|
|
48
|
+
Parmana Runtime
|
|
49
|
+
│
|
|
50
|
+
▼
|
|
51
|
+
Execution Trust Infrastructure
|
|
52
|
+
│
|
|
53
|
+
▼
|
|
54
|
+
Execution Trust Record
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
Independent Verification
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
# Installation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npm install @parmana/typescript-sdk
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
# Quick Start
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import {
|
|
74
|
+
ParmanaClient,
|
|
75
|
+
HttpTransport,
|
|
76
|
+
} from "@parmana/typescript-sdk";
|
|
77
|
+
|
|
78
|
+
const client = new ParmanaClient({
|
|
79
|
+
endpoint: "https://runtime.example.com",
|
|
80
|
+
|
|
81
|
+
transport: new HttpTransport({
|
|
82
|
+
endpoint: "https://runtime.example.com",
|
|
83
|
+
}),
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# Runtime Health
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
const health =
|
|
93
|
+
await client.health();
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
# Execute
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
const trustRecord =
|
|
102
|
+
await client.execute(
|
|
103
|
+
transaction,
|
|
104
|
+
);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The Runtime:
|
|
108
|
+
|
|
109
|
+
1. Loads the requested policy.
|
|
110
|
+
2. Evaluates policy deterministically.
|
|
111
|
+
3. Produces a Decision.
|
|
112
|
+
4. Enforces execution approval.
|
|
113
|
+
5. Executes the Runtime Pipeline.
|
|
114
|
+
6. Produces an Execution Trust Record.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
# Verify
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
const verification =
|
|
122
|
+
await client.getLatestVerification(
|
|
123
|
+
trustRecord.businessTransactionId,
|
|
124
|
+
);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Verification independently validates the Execution Trust Record.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
# Replay
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
const replay =
|
|
135
|
+
await client.replay(
|
|
136
|
+
trustRecord.businessTransactionId,
|
|
137
|
+
);
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Replay deterministically re-executes the recorded execution.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
# Validate Policy
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
const result =
|
|
148
|
+
await client.validatePolicy(
|
|
149
|
+
policy,
|
|
150
|
+
);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Policy validation checks that a policy is structurally valid before deployment.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
# SDK Architecture
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
ParmanaClient
|
|
161
|
+
│
|
|
162
|
+
├── HealthApi
|
|
163
|
+
├── ExecutionApi
|
|
164
|
+
├── VerificationApi
|
|
165
|
+
├── ReplayApi
|
|
166
|
+
├── ReceiptApi
|
|
167
|
+
├── TransactionApi
|
|
168
|
+
├── TrustRecordApi
|
|
169
|
+
└── PolicyApi
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The client is intentionally small.
|
|
173
|
+
|
|
174
|
+
Each API encapsulates a single Parmana capability.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
# Canonical Domain Model
|
|
179
|
+
|
|
180
|
+
The SDK re-exports the canonical Parmana domain model from `@parmana/shared`.
|
|
181
|
+
|
|
182
|
+
Core artifacts include:
|
|
183
|
+
|
|
184
|
+
- Authority
|
|
185
|
+
- Authorization
|
|
186
|
+
- Intent
|
|
187
|
+
- PolicyReference
|
|
188
|
+
- BusinessTransaction
|
|
189
|
+
- Decision
|
|
190
|
+
- Execution
|
|
191
|
+
- ExecutionEvidence
|
|
192
|
+
- ExecutionTrustRecord
|
|
193
|
+
- Verification
|
|
194
|
+
- Receipt
|
|
195
|
+
- Override
|
|
196
|
+
|
|
197
|
+
The SDK does not redefine these models.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
# Error Handling
|
|
202
|
+
|
|
203
|
+
All SDK exceptions inherit from:
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
ParmanaError
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Common errors include:
|
|
210
|
+
|
|
211
|
+
- ConfigurationError
|
|
212
|
+
- ValidationError
|
|
213
|
+
- ExecutionRejectedError
|
|
214
|
+
- VerificationError
|
|
215
|
+
- ReplayError
|
|
216
|
+
- NetworkError
|
|
217
|
+
- TimeoutError
|
|
218
|
+
- InternalServerError
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
# Configuration
|
|
223
|
+
|
|
224
|
+
```typescript
|
|
225
|
+
const configuration = {
|
|
226
|
+
endpoint: "...",
|
|
227
|
+
transport: ...,
|
|
228
|
+
};
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
The SDK configuration controls communication with the Parmana Runtime.
|
|
232
|
+
|
|
233
|
+
It does not control policy evaluation or runtime behavior.
|
|
234
|
+
|
|
235
|
+
No route in the Parmana API enforces authentication or authorization today; every request is accepted from any caller who can reach the port (see docs/CLAIMS.md, "API-layer authentication and authorization"). The SDK configuration has no credentials field for that reason — do not build a client that assumes one.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
# Examples
|
|
240
|
+
|
|
241
|
+
See the `examples/` directory.
|
|
242
|
+
|
|
243
|
+
- Runtime Health
|
|
244
|
+
- Execute
|
|
245
|
+
- Verify
|
|
246
|
+
- Replay
|
|
247
|
+
- Policy Validation
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
# Documentation
|
|
252
|
+
|
|
253
|
+
The complete SDK documentation is available in:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
docs/sdk/
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Including:
|
|
260
|
+
|
|
261
|
+
- SDK Architecture
|
|
262
|
+
- SDK Specification
|
|
263
|
+
- Error Model
|
|
264
|
+
- Configuration
|
|
265
|
+
- Versioning
|
|
266
|
+
- Conformance
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
# License
|
|
271
|
+
|
|
272
|
+
Apache License 2.0
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
# About Parmana
|
|
277
|
+
|
|
278
|
+
Parmana is an Execution Trust Infrastructure for autonomous and AI systems.
|
|
279
|
+
|
|
280
|
+
It establishes a cryptographically verifiable trust chain linking:
|
|
281
|
+
|
|
282
|
+
Authority → Authorization → Intent → Policy → Decision → Execution → Evidence → Verification
|
|
283
|
+
|
|
284
|
+
This enables organizations to confidently deploy AI in high-impact workflows while maintaining governance, auditability, and independent verification.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana Audit Event API.
|
|
3
|
+
*/
|
|
4
|
+
import type { AuditEvent, Signature } from "../models/index.js";
|
|
5
|
+
import type { Transport } from "../config/Transport.js";
|
|
6
|
+
export declare class AuditApi {
|
|
7
|
+
private readonly transport;
|
|
8
|
+
constructor(transport: Transport);
|
|
9
|
+
/**
|
|
10
|
+
* Verifies a signed caller-authentication audit event's signature.
|
|
11
|
+
* Maps to POST /audit/verify -- takes the event
|
|
12
|
+
* and its stored signature directly, not a lookup by id. No caller
|
|
13
|
+
* authentication is required by this route, mirroring
|
|
14
|
+
* RefusalApi.verify()'s independent third-party verifiability.
|
|
15
|
+
*/
|
|
16
|
+
verify(event: AuditEvent, signature: Signature): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=AuditApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditApi.d.ts","sourceRoot":"","sources":["../../src/client/AuditApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;;;;;OAMG;IACU,MAAM,CACjB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC;CAUpB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana Audit Event API.
|
|
3
|
+
*/
|
|
4
|
+
export class AuditApi {
|
|
5
|
+
transport;
|
|
6
|
+
constructor(transport) {
|
|
7
|
+
this.transport = transport;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Verifies a signed caller-authentication audit event's signature.
|
|
11
|
+
* Maps to POST /audit/verify -- takes the event
|
|
12
|
+
* and its stored signature directly, not a lookup by id. No caller
|
|
13
|
+
* authentication is required by this route, mirroring
|
|
14
|
+
* RefusalApi.verify()'s independent third-party verifiability.
|
|
15
|
+
*/
|
|
16
|
+
async verify(event, signature) {
|
|
17
|
+
const response = await this.transport.send({
|
|
18
|
+
method: "POST",
|
|
19
|
+
path: "/audit/verify",
|
|
20
|
+
body: { event, signature },
|
|
21
|
+
});
|
|
22
|
+
return response.body.valid;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=AuditApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditApi.js","sourceRoot":"","sources":["../../src/client/AuditApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,OAAO,QAAQ;IAEA;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,KAAiB,EACjB,SAAoB;QAEpB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAqB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;SAC3B,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana Execution API.
|
|
3
|
+
*
|
|
4
|
+
* Execute Business Transactions through the Parmana Runtime.
|
|
5
|
+
*/
|
|
6
|
+
import type { BusinessTransaction, ExecutionTrustRecord } from "../models/index.js";
|
|
7
|
+
import type { Transport } from "../config/Transport.js";
|
|
8
|
+
/**
|
|
9
|
+
* Execution API.
|
|
10
|
+
*
|
|
11
|
+
* Responsibilities
|
|
12
|
+
* ----------------
|
|
13
|
+
* - Runtime health check
|
|
14
|
+
* - Execute Business Transactions
|
|
15
|
+
*
|
|
16
|
+
* This API does NOT:
|
|
17
|
+
* - verify trust records
|
|
18
|
+
* - replay executions
|
|
19
|
+
* - generate receipts
|
|
20
|
+
* - validate policies
|
|
21
|
+
*/
|
|
22
|
+
export declare class ExecutionApi {
|
|
23
|
+
private readonly transport;
|
|
24
|
+
constructor(transport: Transport);
|
|
25
|
+
/**
|
|
26
|
+
* Returns the Runtime health status.
|
|
27
|
+
*/
|
|
28
|
+
health(): Promise<unknown>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the Runtime name, version, and API version. Requires caller
|
|
31
|
+
* authentication, unlike GET /health.
|
|
32
|
+
*/
|
|
33
|
+
version(): Promise<unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* Execute a Business Transaction.
|
|
36
|
+
*/
|
|
37
|
+
execute(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ExecutionApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionApi.d.ts","sourceRoot":"","sources":["../../src/client/ExecutionApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAUvC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAUxC;;OAEG;IACU,OAAO,CAClB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;CAUjC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana Execution API.
|
|
3
|
+
*
|
|
4
|
+
* Execute Business Transactions through the Parmana Runtime.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Execution API.
|
|
8
|
+
*
|
|
9
|
+
* Responsibilities
|
|
10
|
+
* ----------------
|
|
11
|
+
* - Runtime health check
|
|
12
|
+
* - Execute Business Transactions
|
|
13
|
+
*
|
|
14
|
+
* This API does NOT:
|
|
15
|
+
* - verify trust records
|
|
16
|
+
* - replay executions
|
|
17
|
+
* - generate receipts
|
|
18
|
+
* - validate policies
|
|
19
|
+
*/
|
|
20
|
+
export class ExecutionApi {
|
|
21
|
+
transport;
|
|
22
|
+
constructor(transport) {
|
|
23
|
+
this.transport = transport;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns the Runtime health status.
|
|
27
|
+
*/
|
|
28
|
+
async health() {
|
|
29
|
+
const response = await this.transport.send({
|
|
30
|
+
method: "GET",
|
|
31
|
+
path: "/health",
|
|
32
|
+
});
|
|
33
|
+
return response.body;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns the Runtime name, version, and API version. Requires caller
|
|
37
|
+
* authentication, unlike GET /health.
|
|
38
|
+
*/
|
|
39
|
+
async version() {
|
|
40
|
+
const response = await this.transport.send({
|
|
41
|
+
method: "GET",
|
|
42
|
+
path: "/version",
|
|
43
|
+
});
|
|
44
|
+
return response.body;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Execute a Business Transaction.
|
|
48
|
+
*/
|
|
49
|
+
async execute(transaction) {
|
|
50
|
+
const response = await this.transport.send({
|
|
51
|
+
method: "POST",
|
|
52
|
+
path: "/execute",
|
|
53
|
+
body: transaction,
|
|
54
|
+
});
|
|
55
|
+
return response.body;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=ExecutionApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionApi.js","sourceRoot":"","sources":["../../src/client/ExecutionApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IAEJ;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAClB,WAAgC;QAEhC,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAuB;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana SDK
|
|
3
|
+
*
|
|
4
|
+
* Health API.
|
|
5
|
+
*
|
|
6
|
+
* Performs Runtime health checks.
|
|
7
|
+
*/
|
|
8
|
+
import type { Transport } from "../config/Transport.js";
|
|
9
|
+
export interface HealthStatus {
|
|
10
|
+
readonly status: string;
|
|
11
|
+
readonly version?: string;
|
|
12
|
+
readonly timestamp?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class HealthApi {
|
|
15
|
+
private readonly transport;
|
|
16
|
+
constructor(transport: Transport);
|
|
17
|
+
/**
|
|
18
|
+
* Returns Runtime health.
|
|
19
|
+
*/
|
|
20
|
+
health(): Promise<HealthStatus>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=HealthApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthApi.d.ts","sourceRoot":"","sources":["../../src/client/HealthApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAS7C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana SDK
|
|
3
|
+
*
|
|
4
|
+
* Health API.
|
|
5
|
+
*
|
|
6
|
+
* Performs Runtime health checks.
|
|
7
|
+
*/
|
|
8
|
+
export class HealthApi {
|
|
9
|
+
transport;
|
|
10
|
+
constructor(transport) {
|
|
11
|
+
this.transport = transport;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns Runtime health.
|
|
15
|
+
*/
|
|
16
|
+
async health() {
|
|
17
|
+
const response = await this.transport.send({
|
|
18
|
+
path: "/health",
|
|
19
|
+
method: "GET",
|
|
20
|
+
});
|
|
21
|
+
return response.body;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=HealthApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthApi.js","sourceRoot":"","sources":["../../src/client/HealthApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,OAAO,SAAS;IAED;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAe;YACtC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parmana SDK
|
|
3
|
+
*
|
|
4
|
+
* Canonical SDK client.
|
|
5
|
+
*
|
|
6
|
+
* ParmanaClient is the primary entry point for interacting
|
|
7
|
+
* with the Parmana Runtime.
|
|
8
|
+
*
|
|
9
|
+
* Responsibilities:
|
|
10
|
+
* - Hold immutable SDK configuration.
|
|
11
|
+
* - Compose SDK APIs.
|
|
12
|
+
* - Delegate SDK operations.
|
|
13
|
+
*
|
|
14
|
+
* ParmanaClient does NOT:
|
|
15
|
+
* - evaluate policy
|
|
16
|
+
* - authorize execution
|
|
17
|
+
* - execute business logic
|
|
18
|
+
* - verify trust records
|
|
19
|
+
* - replay executions
|
|
20
|
+
* - communicate directly with the Runtime
|
|
21
|
+
*/
|
|
22
|
+
import type { AuditEvent, BusinessTransaction, ExecutionTrustRecord, Receipt, RefusalRecord, Signature, Verification } from "../models/index.js";
|
|
23
|
+
import type { ReplayResult } from "../models/replay-result.js";
|
|
24
|
+
import type { Configuration } from "../config/Configuration.js";
|
|
25
|
+
import type { Policy } from "@parmana/policy";
|
|
26
|
+
import { type HealthStatus } from "./HealthApi.js";
|
|
27
|
+
import { type PolicyValidationResult } from "./PolicyApi.js";
|
|
28
|
+
/**
|
|
29
|
+
* Canonical Parmana SDK client.
|
|
30
|
+
*/
|
|
31
|
+
export declare class ParmanaClient {
|
|
32
|
+
/**
|
|
33
|
+
* Immutable SDK configuration.
|
|
34
|
+
*/
|
|
35
|
+
readonly configuration: Configuration;
|
|
36
|
+
/**
|
|
37
|
+
* Configured transport.
|
|
38
|
+
*/
|
|
39
|
+
private readonly transport;
|
|
40
|
+
/**
|
|
41
|
+
* Runtime Health API.
|
|
42
|
+
*/
|
|
43
|
+
private readonly healthApi;
|
|
44
|
+
/**
|
|
45
|
+
* Runtime Execution API.
|
|
46
|
+
*/
|
|
47
|
+
private readonly executionApi;
|
|
48
|
+
/**
|
|
49
|
+
* Runtime Verification API.
|
|
50
|
+
*/
|
|
51
|
+
private readonly verificationApi;
|
|
52
|
+
/**
|
|
53
|
+
* Runtime Replay API.
|
|
54
|
+
*/
|
|
55
|
+
private readonly replayApi;
|
|
56
|
+
/**
|
|
57
|
+
* Runtime Receipt API.
|
|
58
|
+
*/
|
|
59
|
+
private readonly receiptApi;
|
|
60
|
+
/**
|
|
61
|
+
* Runtime Transaction API.
|
|
62
|
+
*/
|
|
63
|
+
private readonly transactionApi;
|
|
64
|
+
/**
|
|
65
|
+
* Runtime Trust Record API.
|
|
66
|
+
*/
|
|
67
|
+
private readonly trustRecordApi;
|
|
68
|
+
/**
|
|
69
|
+
* Runtime Policy API.
|
|
70
|
+
*/
|
|
71
|
+
private readonly policyApi;
|
|
72
|
+
/**
|
|
73
|
+
* Runtime Refusal Record API.
|
|
74
|
+
*/
|
|
75
|
+
private readonly refusalApi;
|
|
76
|
+
/**
|
|
77
|
+
* Runtime Audit Event API.
|
|
78
|
+
*/
|
|
79
|
+
private readonly auditApi;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a Parmana SDK client.
|
|
82
|
+
*/
|
|
83
|
+
constructor(configuration: Configuration);
|
|
84
|
+
/**
|
|
85
|
+
* Returns the configured Runtime endpoint.
|
|
86
|
+
*/
|
|
87
|
+
endpoint(): string;
|
|
88
|
+
/**
|
|
89
|
+
* Performs a Runtime health check.
|
|
90
|
+
*/
|
|
91
|
+
health(): Promise<HealthStatus>;
|
|
92
|
+
/**
|
|
93
|
+
* Returns the Runtime name, version, and API version.
|
|
94
|
+
*/
|
|
95
|
+
version(): Promise<unknown>;
|
|
96
|
+
/**
|
|
97
|
+
* Executes a Business Transaction.
|
|
98
|
+
*/
|
|
99
|
+
execute(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
|
|
100
|
+
/**
|
|
101
|
+
* Runs a fresh verification of an Execution Trust Record, appending a
|
|
102
|
+
* new Verification to its history. Distinct from
|
|
103
|
+
* getLatestVerification(), which reads the most recent one without
|
|
104
|
+
* re-verifying.
|
|
105
|
+
*/
|
|
106
|
+
verify(businessTransactionId: string): Promise<Verification>;
|
|
107
|
+
/**
|
|
108
|
+
* Returns the latest Verification.
|
|
109
|
+
*/
|
|
110
|
+
getLatestVerification(businessTransactionId: string): Promise<Verification>;
|
|
111
|
+
/**
|
|
112
|
+
* Performs deterministic replay.
|
|
113
|
+
*/
|
|
114
|
+
replay(businessTransactionId: string): Promise<ReplayResult>;
|
|
115
|
+
/**
|
|
116
|
+
* Generates an execution receipt.
|
|
117
|
+
*/
|
|
118
|
+
receipt(businessTransactionId: string): Promise<Receipt>;
|
|
119
|
+
/**
|
|
120
|
+
* Creates (executes) a Business Transaction via POST /transactions,
|
|
121
|
+
* a second, independent entry point into the identical execution
|
|
122
|
+
* pipeline as execute() (POST /execute). See TransactionApi.create.
|
|
123
|
+
*/
|
|
124
|
+
createTransaction(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
|
|
125
|
+
/**
|
|
126
|
+
* Retrieves a Business Transaction.
|
|
127
|
+
*/
|
|
128
|
+
transaction(businessTransactionId: string): Promise<BusinessTransaction>;
|
|
129
|
+
/**
|
|
130
|
+
* Lists Business Transactions.
|
|
131
|
+
*/
|
|
132
|
+
transactions(page?: number, pageSize?: number): Promise<BusinessTransaction[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Retrieves an Execution Trust Record.
|
|
135
|
+
*/
|
|
136
|
+
trustRecord(businessTransactionId: string): Promise<ExecutionTrustRecord>;
|
|
137
|
+
/**
|
|
138
|
+
* Validates a policy definition.
|
|
139
|
+
*/
|
|
140
|
+
validatePolicy(policy: Policy): Promise<PolicyValidationResult>;
|
|
141
|
+
/**
|
|
142
|
+
* Retrieves a Refusal Record by Business Transaction ID.
|
|
143
|
+
*/
|
|
144
|
+
refusalRecord(businessTransactionId: string): Promise<RefusalRecord>;
|
|
145
|
+
/**
|
|
146
|
+
* Verifies a Refusal Record's signature.
|
|
147
|
+
*/
|
|
148
|
+
verifyRefusalRecord(record: RefusalRecord): Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* Verifies a signed caller-authentication audit event's signature.
|
|
151
|
+
*/
|
|
152
|
+
verifyAuditEvent(event: AuditEvent, signature: Signature): Promise<boolean>;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=ParmanaClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParmanaClient.d.ts","sourceRoot":"","sources":["../../src/client/ParmanaClient.ts"],"names":[],"mappings":"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"}
|