@ontrails/permits 1.0.0-beta.13 → 1.0.0-beta.15
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/.turbo/turbo-lint.log +1 -1
- package/CHANGELOG.md +18 -0
- package/README.md +175 -0
- package/dist/auth-layer.d.ts +3 -3
- package/dist/auth-layer.js +3 -3
- package/dist/auth-resource.d.ts +11 -0
- package/dist/auth-resource.d.ts.map +1 -0
- package/dist/auth-resource.js +22 -0
- package/dist/auth-resource.js.map +1 -0
- package/dist/{adapter.d.ts → connectors/connector.d.ts} +8 -8
- package/dist/connectors/connector.d.ts.map +1 -0
- package/dist/connectors/connector.js +2 -0
- package/dist/connectors/connector.js.map +1 -0
- package/dist/{adapters → connectors}/jwt.d.ts +5 -5
- package/dist/connectors/jwt.d.ts.map +1 -0
- package/dist/{adapters → connectors}/jwt.js +2 -2
- package/dist/connectors/jwt.js.map +1 -0
- package/dist/extraction.d.ts +6 -6
- package/dist/extraction.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/rules.d.ts +2 -2
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js.map +1 -1
- package/dist/testing.d.ts +4 -4
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +5 -5
- package/dist/testing.js.map +1 -1
- package/dist/trails/auth-verify.d.ts +4 -4
- package/dist/trails/auth-verify.d.ts.map +1 -1
- package/dist/trails/auth-verify.js +31 -31
- package/dist/trails/auth-verify.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/{auth-gate.test.ts → auth-layer.test.ts} +11 -11
- package/src/__tests__/{auth-provision.test.ts → auth-resource.test.ts} +9 -9
- package/src/__tests__/auth-verify.test.ts +7 -7
- package/src/__tests__/permit.test.ts +1 -1
- package/src/__tests__/testing.test.ts +13 -13
- package/src/{auth-gate.ts → auth-layer.ts} +9 -9
- package/src/{auth-provision.ts → auth-resource.ts} +4 -4
- package/src/index.ts +3 -3
- package/src/permit.ts +2 -2
- package/src/rules.ts +2 -2
- package/src/testing.ts +5 -5
- package/src/trails/auth-verify.ts +4 -4
- package/tsconfig.tests.json +10 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/adapter.d.ts.map +0 -1
- package/dist/adapter.js +0 -2
- package/dist/adapter.js.map +0 -1
- package/dist/adapters/jwt.d.ts.map +0 -1
- package/dist/adapters/jwt.js.map +0 -1
- package/dist/auth-service.d.ts +0 -10
- package/dist/auth-service.d.ts.map +0 -1
- package/dist/auth-service.js +0 -21
- package/dist/auth-service.js.map +0 -1
package/.turbo/turbo-lint.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @ontrails/permits
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.15
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [4ad6b25]
|
|
8
|
+
- @ontrails/core@1.0.0-beta.15
|
|
9
|
+
|
|
10
|
+
## 1.0.0-beta.14
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- 69057e9: Add hierarchical CLI command trees and structured input, enforce established-only topo exports across trailheads, move developer topo and tracker state onto shared `trails.db` with pins and maintenance flows, and ship schema-derived stores through `@ontrails/store` and its Drizzle runtime.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [69057e9]
|
|
19
|
+
- @ontrails/core@1.0.0-beta.14
|
|
20
|
+
|
|
3
21
|
## 1.0.0-beta.13
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# @ontrails/permits
|
|
2
|
+
|
|
3
|
+
Scope-based authorization for Trails.
|
|
4
|
+
|
|
5
|
+
The permits package owns the connector-agnostic `authResource` and `authLayer`. Connector packages bind those declarations to concrete auth logic, just like a surface connector binds a topo to CLI, MCP, or HTTP.
|
|
6
|
+
|
|
7
|
+
## The core pattern
|
|
8
|
+
|
|
9
|
+
### 1. Declare permit requirements on trails
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
export const create = trail('gist.create', {
|
|
13
|
+
permit: { scopes: ['gist:write'] },
|
|
14
|
+
blaze: async (input, ctx) => {
|
|
15
|
+
// authLayer enforces scopes before blaze runs
|
|
16
|
+
return Result.ok(newGist);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export const search = trail('gist.search', {
|
|
21
|
+
permit: 'public',
|
|
22
|
+
blaze: async (input, ctx) => {
|
|
23
|
+
// No authentication required
|
|
24
|
+
return Result.ok(results);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2. Register the auth layer
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { authLayer } from '@ontrails/permits';
|
|
33
|
+
|
|
34
|
+
export const graph = topo('my-app', gistModule);
|
|
35
|
+
// Register authLayer with your surface
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The layer reads each trail's `permit` field:
|
|
39
|
+
|
|
40
|
+
- `'public'` or `undefined` — layer passes through
|
|
41
|
+
- `{ scopes: [...] }` — layer checks that `ctx.permit` contains all required scopes
|
|
42
|
+
|
|
43
|
+
### 3. Bind a connector at bootstrap
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import { createJwtConnector } from '@ontrails/permits/jwt';
|
|
47
|
+
|
|
48
|
+
const connector = createJwtConnector({
|
|
49
|
+
secret: process.env.JWT_SECRET,
|
|
50
|
+
issuer: 'https://auth.example.com',
|
|
51
|
+
audience: 'api.example.com',
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Auth connectors
|
|
56
|
+
|
|
57
|
+
An auth connector authenticates requests and produces permits.
|
|
58
|
+
|
|
59
|
+
### Built-in: JWT connector
|
|
60
|
+
|
|
61
|
+
Verifies HS256-signed JWTs and extracts claims into permits:
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
import { createJwtConnector } from '@ontrails/permits/jwt';
|
|
65
|
+
|
|
66
|
+
const connector = createJwtConnector({
|
|
67
|
+
secret: 'your-hmac-secret',
|
|
68
|
+
issuer: 'https://auth.example.com',
|
|
69
|
+
audience: 'api.example.com',
|
|
70
|
+
scopesClaim: 'scope',
|
|
71
|
+
rolesClaim: 'roles',
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Custom connectors
|
|
76
|
+
|
|
77
|
+
Implement the `AuthConnector` interface:
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
import type { AuthConnector, PermitExtractionInput, Permit } from '@ontrails/permits';
|
|
81
|
+
|
|
82
|
+
const myConnector: AuthConnector = {
|
|
83
|
+
authenticate: async (input: PermitExtractionInput) => {
|
|
84
|
+
if (!input.bearerToken) return Result.ok(null);
|
|
85
|
+
const permit: Permit = {
|
|
86
|
+
id: 'user-42',
|
|
87
|
+
scopes: ['user:read', 'user:write'],
|
|
88
|
+
roles: ['admin'],
|
|
89
|
+
};
|
|
90
|
+
return Result.ok(permit);
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Permits and scopes
|
|
96
|
+
|
|
97
|
+
A `Permit` is the resolved identity and scopes from successful authentication:
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
interface Permit {
|
|
101
|
+
readonly id: string;
|
|
102
|
+
readonly scopes: readonly string[];
|
|
103
|
+
readonly roles?: readonly string[];
|
|
104
|
+
readonly tenantId?: string;
|
|
105
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Access the permit in your blaze:
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
import { getPermit } from '@ontrails/permits';
|
|
113
|
+
|
|
114
|
+
const myTrail = trail('do.something', {
|
|
115
|
+
blaze: async (_input, ctx) => {
|
|
116
|
+
const permit = getPermit(ctx);
|
|
117
|
+
if (!permit) return Result.err(new Error('Not authenticated'));
|
|
118
|
+
return Result.ok({ userId: permit.id });
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Scopes follow the `entity:action` convention: `user:read`, `gist:write`, etc.
|
|
124
|
+
|
|
125
|
+
## The auth.verify trail
|
|
126
|
+
|
|
127
|
+
An infrastructure trail that verifies bearer tokens and returns permits:
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { authVerify } from '@ontrails/permits';
|
|
131
|
+
|
|
132
|
+
// Returns { valid: true, permit: { id, scopes, roles } }
|
|
133
|
+
// or { valid: false, error: 'Token has expired', errorCode: 'expired_token' }
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Testing with mock permits
|
|
137
|
+
|
|
138
|
+
Use `createTestPermit()` and `createPermitForTrail()` in tests:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { createTestPermit, createPermitForTrail } from '@ontrails/permits';
|
|
142
|
+
|
|
143
|
+
const permit = createTestPermit({
|
|
144
|
+
id: 'user-123',
|
|
145
|
+
scopes: ['gist:read', 'gist:write'],
|
|
146
|
+
roles: ['editor'],
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Create a permit matching a trail's requirements
|
|
150
|
+
const trailPermit = createPermitForTrail(myTrail);
|
|
151
|
+
// { id: 'test-...', scopes: ['gist:write'] }
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Permit governance
|
|
155
|
+
|
|
156
|
+
Use `validatePermits()` to check trails against governance rules:
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
import { validatePermits } from '@ontrails/permits';
|
|
160
|
+
|
|
161
|
+
const diagnostics = validatePermits(app.list());
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Built-in rules:
|
|
165
|
+
|
|
166
|
+
- `destroyWithoutPermit` — error if a destroy trail has no permit
|
|
167
|
+
- `writeWithoutPermit` — warning if a write trail has no permit
|
|
168
|
+
- `scopeNamingConsistency` — warning if a scope doesn't follow `entity:action`
|
|
169
|
+
- `orphanScopeDetection` — warning if a scope appears in only one trail
|
|
170
|
+
|
|
171
|
+
## Installation
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
bun add @ontrails/permits @ontrails/core zod
|
|
175
|
+
```
|
package/dist/auth-layer.d.ts
CHANGED
|
@@ -9,9 +9,9 @@ import type { Layer } from '@ontrails/core';
|
|
|
9
9
|
* all required scopes. A superset is fine; missing scopes produce a
|
|
10
10
|
* `PermitError`.
|
|
11
11
|
*
|
|
12
|
-
* Because `ctx.
|
|
13
|
-
* this layer automatically re-checks on every invocation in a
|
|
14
|
-
* No special
|
|
12
|
+
* Because `ctx.cross()` re-enters `executeTrail` (which applies layers),
|
|
13
|
+
* this layer automatically re-checks on every invocation in a crossing chain.
|
|
14
|
+
* No special crossing-chain handling is needed — it is built into the
|
|
15
15
|
* architecture.
|
|
16
16
|
*/
|
|
17
17
|
export declare const authLayer: Layer;
|
package/dist/auth-layer.js
CHANGED
|
@@ -25,9 +25,9 @@ const findMissing = (required, held) => required.filter((s) => !held.includes(s)
|
|
|
25
25
|
* all required scopes. A superset is fine; missing scopes produce a
|
|
26
26
|
* `PermitError`.
|
|
27
27
|
*
|
|
28
|
-
* Because `ctx.
|
|
29
|
-
* this layer automatically re-checks on every invocation in a
|
|
30
|
-
* No special
|
|
28
|
+
* Because `ctx.cross()` re-enters `executeTrail` (which applies layers),
|
|
29
|
+
* this layer automatically re-checks on every invocation in a crossing chain.
|
|
30
|
+
* No special crossing-chain handling is needed — it is built into the
|
|
31
31
|
* architecture.
|
|
32
32
|
*/
|
|
33
33
|
export const authLayer = {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AuthConnector } from './connectors/connector.js';
|
|
2
|
+
/**
|
|
3
|
+
* Auth resource — manages the auth connector lifecycle.
|
|
4
|
+
*
|
|
5
|
+
* The v1 factory returns a no-op connector that always succeeds (null permit).
|
|
6
|
+
* Real connector configuration will come through `ResourceSpec.config`
|
|
7
|
+
* (TRL-91). The mock factory provides a synthetic connector that always
|
|
8
|
+
* succeeds.
|
|
9
|
+
*/
|
|
10
|
+
export declare const authResource: import("@ontrails/core").Resource<AuthConnector>;
|
|
11
|
+
//# sourceMappingURL=auth-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-resource.d.ts","sourceRoot":"","sources":["../src/auth-resource.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,kDAavB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Result, resource } from '@ontrails/core';
|
|
2
|
+
/**
|
|
3
|
+
* Auth resource — manages the auth connector lifecycle.
|
|
4
|
+
*
|
|
5
|
+
* The v1 factory returns a no-op connector that always succeeds (null permit).
|
|
6
|
+
* Real connector configuration will come through `ResourceSpec.config`
|
|
7
|
+
* (TRL-91). The mock factory provides a synthetic connector that always
|
|
8
|
+
* succeeds.
|
|
9
|
+
*/
|
|
10
|
+
export const authResource = resource('auth', {
|
|
11
|
+
create: (_svc) => Result.ok({
|
|
12
|
+
// oxlint-disable-next-line require-await -- stub connector satisfies async interface
|
|
13
|
+
authenticate: async () => Result.ok(null),
|
|
14
|
+
}),
|
|
15
|
+
description: 'Authentication connector',
|
|
16
|
+
meta: { category: 'infrastructure' },
|
|
17
|
+
mock: () => ({
|
|
18
|
+
// oxlint-disable-next-line require-await -- mock connector satisfies async interface
|
|
19
|
+
authenticate: async () => Result.ok(null),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=auth-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-resource.js","sourceRoot":"","sources":["../src/auth-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIlD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAgB,MAAM,EAAE;IAC1D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,MAAM,CAAC,EAAE,CAAC;QACR,qFAAqF;QACrF,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;KAClB,CAAC;IAC5B,WAAW,EAAE,0BAA0B;IACvC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACpC,IAAI,EAAE,GAAG,EAAE,CACT,CAAC;QACC,qFAAqF;QACrF,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;KAC1C,CAAyB;CAC7B,CAAC,CAAC"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import type { Result } from '@ontrails/core';
|
|
2
|
-
import type { PermitExtractionInput } from '
|
|
3
|
-
import type { Permit } from '
|
|
2
|
+
import type { PermitExtractionInput } from '../extraction.js';
|
|
3
|
+
import type { Permit } from '../permit.js';
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated Use {@link PermitExtractionInput} instead. Kept as an alias
|
|
6
6
|
* for backward compatibility during migration.
|
|
7
7
|
*/
|
|
8
8
|
export type AuthCredentials = PermitExtractionInput;
|
|
9
|
-
/** Errors from auth
|
|
9
|
+
/** Errors from auth connectors. */
|
|
10
10
|
export interface AuthError {
|
|
11
11
|
readonly code: 'expired_token' | 'insufficient_scope' | 'invalid_token' | 'missing_credentials';
|
|
12
12
|
readonly message: string;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Auth
|
|
15
|
+
* Auth connector port. Given extraction input, produce a permit or an error.
|
|
16
16
|
*
|
|
17
|
-
* The
|
|
17
|
+
* The connector receives the full {@link PermitExtractionInput} — trailhead,
|
|
18
18
|
* headers, requestId, and credential fields — so it can make richer
|
|
19
|
-
* decisions (e.g., rate-limit by
|
|
19
|
+
* decisions (e.g., rate-limit by trailhead or correlate via requestId).
|
|
20
20
|
*
|
|
21
21
|
* Deliberately narrow — no session management, no token refresh.
|
|
22
22
|
*/
|
|
23
|
-
export interface
|
|
23
|
+
export interface AuthConnector {
|
|
24
24
|
readonly authenticate: (input: PermitExtractionInput) => Promise<Result<Permit | null, AuthError>>;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connectors/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAEpD,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EACT,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,qBAAqB,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,qBAAqB,KACzB,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/connectors/connector.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
/** Configuration for the JWT auth
|
|
3
|
-
export interface
|
|
1
|
+
import type { AuthConnector } from './connector.js';
|
|
2
|
+
/** Configuration for the JWT auth connector. */
|
|
3
|
+
export interface JwtConnectorOptions {
|
|
4
4
|
/** HMAC secret for HS256 verification. */
|
|
5
5
|
readonly secret?: string;
|
|
6
6
|
/** JWKS endpoint for RS256/ES256 (not yet implemented). */
|
|
@@ -15,11 +15,11 @@ export interface JwtAdapterOptions {
|
|
|
15
15
|
readonly rolesClaim?: string;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Create a JWT auth
|
|
18
|
+
* Create a JWT auth connector using Bun's native crypto.
|
|
19
19
|
*
|
|
20
20
|
* Verifies HS256-signed JWTs, extracts claims into a Permit, and checks
|
|
21
21
|
* issuer/audience when configured. Returns `Result.ok(null)` when no
|
|
22
22
|
* credentials are provided.
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const createJwtConnector: (options: JwtConnectorOptions) => AuthConnector;
|
|
25
25
|
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/connectors/jwt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,gBAAgB,CAAC;AAI/D,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA2LD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,mBAAmB,KAC3B,aAeF,CAAC"}
|
|
@@ -126,13 +126,13 @@ const payloadToPermit = (payload, options) => {
|
|
|
126
126
|
// Factory
|
|
127
127
|
// ---------------------------------------------------------------------------
|
|
128
128
|
/**
|
|
129
|
-
* Create a JWT auth
|
|
129
|
+
* Create a JWT auth connector using Bun's native crypto.
|
|
130
130
|
*
|
|
131
131
|
* Verifies HS256-signed JWTs, extracts claims into a Permit, and checks
|
|
132
132
|
* issuer/audience when configured. Returns `Result.ok(null)` when no
|
|
133
133
|
* credentials are provided.
|
|
134
134
|
*/
|
|
135
|
-
export const
|
|
135
|
+
export const createJwtConnector = (options) => {
|
|
136
136
|
const authenticate = async (input) => {
|
|
137
137
|
if (!input.bearerToken) {
|
|
138
138
|
return Result.ok(null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/connectors/jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/extraction.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Normalized input for auth
|
|
2
|
+
* Normalized input for auth connectors.
|
|
3
3
|
*
|
|
4
|
-
* Each
|
|
5
|
-
* them into this shape. No
|
|
4
|
+
* Each trailhead extracts raw credentials from its transport and normalizes
|
|
5
|
+
* them into this shape. No trailhead types (Request, McpSession, etc.) cross
|
|
6
6
|
* into core — only this interface.
|
|
7
7
|
*/
|
|
8
8
|
export interface PermitExtractionInput {
|
|
9
|
-
/** Which
|
|
10
|
-
readonly
|
|
9
|
+
/** Which trailhead produced this extraction */
|
|
10
|
+
readonly trailhead: 'http' | 'mcp' | 'cli';
|
|
11
11
|
/** Bearer token from Authorization header or equivalent */
|
|
12
12
|
readonly bearerToken?: string;
|
|
13
13
|
/** Session identifier from transport handshake */
|
|
14
14
|
readonly sessionId?: string;
|
|
15
|
-
/** Raw headers (HTTP
|
|
15
|
+
/** Raw headers (HTTP trailhead only, typically) */
|
|
16
16
|
readonly headers?: Headers;
|
|
17
17
|
/** Correlation ID for tracing */
|
|
18
18
|
readonly requestId: string;
|
package/dist/extraction.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../src/extraction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC
|
|
1
|
+
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../src/extraction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3C,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { type
|
|
2
|
-
export {
|
|
1
|
+
export { type AuthConnector, type AuthCredentials, type AuthError, } from './connectors/connector.js';
|
|
2
|
+
export { createJwtConnector, type JwtConnectorOptions, } from './connectors/jwt.js';
|
|
3
3
|
export { authLayer } from './auth-layer.js';
|
|
4
|
-
export {
|
|
4
|
+
export { authResource } from './auth-resource.js';
|
|
5
5
|
export { authVerify } from './trails/auth-verify.js';
|
|
6
6
|
export { PermitError } from './errors.js';
|
|
7
7
|
export { type PermitExtractionInput } from './extraction.js';
|
|
8
8
|
export { type Permit, getPermit } from './permit.js';
|
|
9
9
|
export { validatePermits, type PermitDiagnostic } from './rules.js';
|
|
10
|
-
export {
|
|
10
|
+
export { createTestPermit, createPermitForTrail } from './testing.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,SAAS,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export {} from './
|
|
2
|
-
export {
|
|
1
|
+
export {} from './connectors/connector.js';
|
|
2
|
+
export { createJwtConnector, } from './connectors/jwt.js';
|
|
3
3
|
export { authLayer } from './auth-layer.js';
|
|
4
|
-
export {
|
|
4
|
+
export { authResource } from './auth-resource.js';
|
|
5
5
|
export { authVerify } from './trails/auth-verify.js';
|
|
6
6
|
export { PermitError } from './errors.js';
|
|
7
7
|
export {} from './extraction.js';
|
|
8
8
|
export { getPermit } from './permit.js';
|
|
9
9
|
export { validatePermits } from './rules.js';
|
|
10
|
-
export {
|
|
10
|
+
export { createTestPermit, createPermitForTrail } from './testing.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAA8B,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/rules.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface PermitDiagnostic {
|
|
|
6
6
|
readonly severity: 'error' | 'warning';
|
|
7
7
|
readonly message: string;
|
|
8
8
|
}
|
|
9
|
-
type AnyTrail = Trail<unknown, unknown>;
|
|
9
|
+
type AnyTrail = Trail<unknown, unknown, unknown>;
|
|
10
10
|
type Rule = (trails: readonly AnyTrail[]) => readonly PermitDiagnostic[];
|
|
11
11
|
/**
|
|
12
12
|
* Destructive trails without a real permit declaration are a governance failure.
|
|
@@ -42,6 +42,6 @@ export declare const orphanScopeDetection: Rule;
|
|
|
42
42
|
* Returns a flat array of diagnostics from every rule. An empty array
|
|
43
43
|
* means the topo passes all permit governance checks.
|
|
44
44
|
*/
|
|
45
|
-
export declare const validatePermits: (trails: readonly Trail<unknown, unknown>[]) => readonly PermitDiagnostic[];
|
|
45
|
+
export declare const validatePermits: (trails: readonly Trail<unknown, unknown, unknown>[]) => readonly PermitDiagnostic[];
|
|
46
46
|
export {};
|
|
47
47
|
//# sourceMappingURL=rules.d.ts.map
|
package/dist/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,KAAK,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,KAAK,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,KAAK,SAAS,gBAAgB,EAAE,CAAC;AAiBzE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAU5B,CAAC;AAMR;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,IAU1B,CAAC;AAgBR;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,IAUlC,CAAC;AA2CJ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAMlC,CAAC;AAaF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,SAAS,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,KAClD,SAAS,gBAAgB,EAA8C,CAAC"}
|
package/dist/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { PermitRequirement } from '@ontrails/core';
|
|
2
2
|
import type { Permit } from './permit.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Create a synthetic test permit with exactly the declared scopes.
|
|
5
5
|
* No admin permit, no wildcard — tests get only what the trail declares.
|
|
6
6
|
*/
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const createTestPermit: (options?: {
|
|
8
8
|
readonly id?: string;
|
|
9
9
|
readonly scopes?: readonly string[];
|
|
10
10
|
readonly roles?: readonly string[];
|
|
@@ -12,9 +12,9 @@ export declare const mintTestPermit: (options?: {
|
|
|
12
12
|
}) => Permit;
|
|
13
13
|
/**
|
|
14
14
|
* Create a test permit matching a trail's permit requirement.
|
|
15
|
-
* Extracts scopes from the requirement and
|
|
15
|
+
* Extracts scopes from the requirement and creates a permit with exactly those scopes.
|
|
16
16
|
*/
|
|
17
|
-
export declare const
|
|
17
|
+
export declare const createPermitForTrail: (trail: {
|
|
18
18
|
readonly permit?: PermitRequirement | undefined;
|
|
19
19
|
}) => Permit | undefined;
|
|
20
20
|
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU;IACzC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,KAAG,MAOF,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACjD,KAAG,MAAM,GAAG,SAKZ,CAAC"}
|
package/dist/testing.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Create a synthetic test permit with exactly the declared scopes.
|
|
3
3
|
* No admin permit, no wildcard — tests get only what the trail declares.
|
|
4
4
|
*/
|
|
5
|
-
export const
|
|
5
|
+
export const createTestPermit = (options) => ({
|
|
6
6
|
id: options?.id ??
|
|
7
7
|
`test-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
|
|
8
8
|
scopes: [...(options?.scopes ?? [])],
|
|
@@ -11,12 +11,12 @@ export const mintTestPermit = (options) => ({
|
|
|
11
11
|
});
|
|
12
12
|
/**
|
|
13
13
|
* Create a test permit matching a trail's permit requirement.
|
|
14
|
-
* Extracts scopes from the requirement and
|
|
14
|
+
* Extracts scopes from the requirement and creates a permit with exactly those scopes.
|
|
15
15
|
*/
|
|
16
|
-
export const
|
|
16
|
+
export const createPermitForTrail = (trail) => {
|
|
17
17
|
if (!trail.permit || trail.permit === 'public') {
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
20
|
-
return
|
|
20
|
+
return createTestPermit({ scopes: trail.permit.scopes });
|
|
21
21
|
};
|
|
22
22
|
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAKhC,EAAU,EAAE,CAAC,CAAC;IACb,EAAE,EACA,OAAO,EAAE,EAAE;QACX,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACpC,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACtE,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;CAC3E,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAEpC,EAAsB,EAAE;IACvB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Infrastructure trail that verifies a bearer token and returns the resolved permit.
|
|
3
3
|
*
|
|
4
|
-
* Reads the auth
|
|
5
|
-
* bootstrap (e.g. JWT with HMAC secret). The mock
|
|
6
|
-
* a null permit, so `testAll(app)` works without configuration.
|
|
4
|
+
* Reads the auth connector from `authResource` — the connector is configured
|
|
5
|
+
* at bootstrap (e.g. JWT with HMAC secret). The mock connector always
|
|
6
|
+
* succeeds with a null permit, so `testAll(app)` works without configuration.
|
|
7
7
|
*/
|
|
8
8
|
export declare const authVerify: import("@ontrails/core").Trail<{
|
|
9
9
|
token: string;
|
|
@@ -18,5 +18,5 @@ export declare const authVerify: import("@ontrails/core").Trail<{
|
|
|
18
18
|
roles?: string[] | undefined;
|
|
19
19
|
tenantId?: string | undefined;
|
|
20
20
|
} | undefined;
|
|
21
|
-
}>;
|
|
21
|
+
}, never>;
|
|
22
22
|
//# sourceMappingURL=auth-verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-verify.d.ts","sourceRoot":"","sources":["../../src/trails/auth-verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-verify.d.ts","sourceRoot":"","sources":["../../src/trails/auth-verify.ts"],"names":[],"mappings":"AA4CA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;SAiDrB,CAAC"}
|