@openleash/core 0.10.0 → 0.12.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/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +2 -1
- package/dist/audit.js.map +1 -1
- package/dist/events.d.ts +19 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/file-store.d.ts +4 -2
- package/dist/file-store.d.ts.map +1 -1
- package/dist/file-store.js +73 -12
- package/dist/file-store.js.map +1 -1
- package/dist/identity.d.ts +14 -7
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +48 -43
- package/dist/identity.js.map +1 -1
- package/dist/server-plugin.d.ts +19 -3
- package/dist/server-plugin.d.ts.map +1 -1
- package/dist/state.d.ts +10 -21
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +71 -65
- package/dist/state.js.map +1 -1
- package/dist/store.d.ts +19 -6
- package/dist/store.d.ts.map +1 -1
- package/dist/tokens.d.ts +10 -6
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +9 -6
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +158 -59
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +42 -31
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/state.d.ts
CHANGED
|
@@ -1,40 +1,29 @@
|
|
|
1
|
-
import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter,
|
|
1
|
+
import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter, UserFrontmatter, OrganizationFrontmatter, OrgMembership, PolicyDraftFrontmatter, SetupInvite, StateApprovalRequestEntry, StateData } from './types.js';
|
|
2
2
|
/** @deprecated Use `store.state.getState()` instead. */
|
|
3
3
|
export declare function readState(dataDir: string): StateData;
|
|
4
4
|
/** @deprecated Use `store.state.updateState()` instead. */
|
|
5
5
|
export declare function writeState(dataDir: string, state: StateData): void;
|
|
6
6
|
export declare function parseStateMd(content: string): StateData;
|
|
7
|
-
|
|
8
|
-
export declare function
|
|
9
|
-
|
|
10
|
-
export declare function
|
|
11
|
-
|
|
7
|
+
export declare function writeUserFile(dataDir: string, user: UserFrontmatter, body?: string): void;
|
|
8
|
+
export declare function readUserFile(dataDir: string, userPrincipalId: string): UserFrontmatter;
|
|
9
|
+
export declare function writeOrgFile(dataDir: string, org: OrganizationFrontmatter, body?: string): void;
|
|
10
|
+
export declare function readOrgFile(dataDir: string, orgId: string): OrganizationFrontmatter;
|
|
11
|
+
export declare function writeMembershipFile(dataDir: string, membership: OrgMembership): void;
|
|
12
|
+
export declare function readMembershipFile(dataDir: string, membershipId: string): OrgMembership;
|
|
13
|
+
export declare function deleteMembershipFile(dataDir: string, membershipId: string): void;
|
|
12
14
|
export declare function writeAgentFile(dataDir: string, agent: AgentFrontmatter, body?: string): void;
|
|
13
|
-
/** @deprecated Use `store.agents.read()` instead. */
|
|
14
15
|
export declare function readAgentFile(dataDir: string, agentPrincipalId: string): AgentFrontmatter;
|
|
15
|
-
/** @deprecated Use `store.policies.write()` instead. */
|
|
16
16
|
export declare function writePolicyFile(dataDir: string, policyId: string, yamlContent: string): void;
|
|
17
|
-
/** @deprecated Use `store.policies.read()` instead. */
|
|
18
17
|
export declare function readPolicyFile(dataDir: string, policyId: string): string;
|
|
19
|
-
/** @deprecated Use `store.policies.delete()` instead. */
|
|
20
18
|
export declare function deletePolicyFile(dataDir: string, policyId: string): void;
|
|
21
|
-
/** @deprecated Use `store.approvalRequests.write()` instead. */
|
|
22
19
|
export declare function writeApprovalRequestFile(dataDir: string, req: ApprovalRequestFrontmatter): void;
|
|
23
|
-
/** @deprecated Use `store.approvalRequests.read()` instead. */
|
|
24
20
|
export declare function readApprovalRequestFile(dataDir: string, approvalRequestId: string): ApprovalRequestFrontmatter;
|
|
25
|
-
/** @deprecated Use `store.policyDrafts.write()` instead. */
|
|
26
21
|
export declare function writePolicyDraftFile(dataDir: string, draft: PolicyDraftFrontmatter): void;
|
|
27
|
-
/** @deprecated Use `store.policyDrafts.read()` instead. */
|
|
28
22
|
export declare function readPolicyDraftFile(dataDir: string, policyDraftId: string): PolicyDraftFrontmatter;
|
|
29
|
-
/** @deprecated Use `store.setupInvites.write()` instead. */
|
|
30
23
|
export declare function writeSetupInviteFile(dataDir: string, invite: SetupInvite): void;
|
|
31
|
-
/** @deprecated Use `store.setupInvites.read()` instead. */
|
|
32
24
|
export declare function readSetupInviteFile(dataDir: string, inviteId: string): SetupInvite;
|
|
33
|
-
/** @deprecated Use `store.setupInvites.delete()` instead. */
|
|
34
25
|
export declare function deleteSetupInviteFile(dataDir: string, inviteId: string): void;
|
|
35
|
-
/** @deprecated Use `store.agentInvites.write()` instead. */
|
|
36
26
|
export declare function writeAgentInviteFile(dataDir: string, invite: AgentInvite): void;
|
|
37
|
-
/** @deprecated Use `store.agentInvites.read()` instead. */
|
|
38
27
|
export declare function readAgentInviteFile(dataDir: string, inviteId: string): AgentInvite;
|
|
39
28
|
export declare class StateIndex {
|
|
40
29
|
private readonly dataDir;
|
|
@@ -42,13 +31,13 @@ export declare class StateIndex {
|
|
|
42
31
|
private cachedState;
|
|
43
32
|
private cachedMtimeMs;
|
|
44
33
|
private cachedSize;
|
|
45
|
-
/**
|
|
34
|
+
/** ownerType:ownerId → resolved entries (non-PENDING) */
|
|
46
35
|
private resolvedByOwner;
|
|
47
36
|
constructor(dataDir: string);
|
|
48
37
|
/** Return the cached (and possibly refreshed) state. */
|
|
49
38
|
getState(): StateData;
|
|
50
39
|
/** Paginated resolved approval entries for a given owner. */
|
|
51
|
-
getResolvedApprovals(ownerId: string, limit: number, offset: number): {
|
|
40
|
+
getResolvedApprovals(ownerType: string, ownerId: string, limit: number, offset: number): {
|
|
52
41
|
items: StateApprovalRequestEntry[];
|
|
53
42
|
total: number;
|
|
54
43
|
};
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/state.js
CHANGED
|
@@ -37,8 +37,13 @@ exports.StateIndex = void 0;
|
|
|
37
37
|
exports.readState = readState;
|
|
38
38
|
exports.writeState = writeState;
|
|
39
39
|
exports.parseStateMd = parseStateMd;
|
|
40
|
-
exports.
|
|
41
|
-
exports.
|
|
40
|
+
exports.writeUserFile = writeUserFile;
|
|
41
|
+
exports.readUserFile = readUserFile;
|
|
42
|
+
exports.writeOrgFile = writeOrgFile;
|
|
43
|
+
exports.readOrgFile = readOrgFile;
|
|
44
|
+
exports.writeMembershipFile = writeMembershipFile;
|
|
45
|
+
exports.readMembershipFile = readMembershipFile;
|
|
46
|
+
exports.deleteMembershipFile = deleteMembershipFile;
|
|
42
47
|
exports.writeAgentFile = writeAgentFile;
|
|
43
48
|
exports.readAgentFile = readAgentFile;
|
|
44
49
|
exports.writePolicyFile = writePolicyFile;
|
|
@@ -78,56 +83,76 @@ function parseStateMd(content) {
|
|
|
78
83
|
}
|
|
79
84
|
return (0, yaml_1.parse)(yamlMatch[1]);
|
|
80
85
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
function parseFrontmatter(content) {
|
|
87
|
+
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
88
|
+
if (!match) {
|
|
89
|
+
throw new Error('No frontmatter found');
|
|
90
|
+
}
|
|
91
|
+
return (0, yaml_1.parse)(match[1]);
|
|
92
|
+
}
|
|
93
|
+
function writeFrontmatterFile(filePath, data, body) {
|
|
94
|
+
const dir = path.dirname(filePath);
|
|
95
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
96
|
+
const frontmatter = (0, yaml_1.stringify)(data, { lineWidth: 0 }).trim();
|
|
97
|
+
const content = `---\n${frontmatter}\n---\n\n${body}\n`;
|
|
88
98
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
89
99
|
}
|
|
90
|
-
|
|
91
|
-
function readOwnerFile(dataDir, ownerPrincipalId) {
|
|
92
|
-
const filePath = path.join(dataDir, 'owners', `${ownerPrincipalId}.md`);
|
|
100
|
+
function readFrontmatterFile(filePath) {
|
|
93
101
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
94
102
|
return parseFrontmatter(content);
|
|
95
103
|
}
|
|
96
|
-
|
|
104
|
+
// ─── User files ─────────────────────────────────────────────────────
|
|
105
|
+
function writeUserFile(dataDir, user, body) {
|
|
106
|
+
const filePath = path.join(dataDir, 'users', `${user.user_principal_id}.md`);
|
|
107
|
+
writeFrontmatterFile(filePath, user, body ?? `User: ${user.display_name}`);
|
|
108
|
+
}
|
|
109
|
+
function readUserFile(dataDir, userPrincipalId) {
|
|
110
|
+
return readFrontmatterFile(path.join(dataDir, 'users', `${userPrincipalId}.md`));
|
|
111
|
+
}
|
|
112
|
+
// ─── Organization files ─────────────────────────────────────────────
|
|
113
|
+
function writeOrgFile(dataDir, org, body) {
|
|
114
|
+
const filePath = path.join(dataDir, 'organizations', `${org.org_id}.md`);
|
|
115
|
+
writeFrontmatterFile(filePath, org, body ?? `Organization: ${org.display_name}`);
|
|
116
|
+
}
|
|
117
|
+
function readOrgFile(dataDir, orgId) {
|
|
118
|
+
return readFrontmatterFile(path.join(dataDir, 'organizations', `${orgId}.md`));
|
|
119
|
+
}
|
|
120
|
+
// ─── Membership files ───────────────────────────────────────────────
|
|
121
|
+
function writeMembershipFile(dataDir, membership) {
|
|
122
|
+
const dir = path.join(dataDir, 'memberships');
|
|
123
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
124
|
+
const filePath = path.join(dir, `${membership.membership_id}.json`);
|
|
125
|
+
fs.writeFileSync(filePath, JSON.stringify(membership, null, 2), 'utf-8');
|
|
126
|
+
}
|
|
127
|
+
function readMembershipFile(dataDir, membershipId) {
|
|
128
|
+
const filePath = path.join(dataDir, 'memberships', `${membershipId}.json`);
|
|
129
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
130
|
+
}
|
|
131
|
+
function deleteMembershipFile(dataDir, membershipId) {
|
|
132
|
+
const filePath = path.join(dataDir, 'memberships', `${membershipId}.json`);
|
|
133
|
+
if (fs.existsSync(filePath)) {
|
|
134
|
+
fs.unlinkSync(filePath);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// ─── Agent files ────────────────────────────────────────────────────
|
|
97
138
|
function writeAgentFile(dataDir, agent, body) {
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
const filePath = path.join(agentsDir, `${agent.agent_principal_id}.md`);
|
|
101
|
-
const frontmatter = (0, yaml_1.stringify)(agent, { lineWidth: 0 }).trim();
|
|
102
|
-
const content = `---\n${frontmatter}\n---\n\n${body ?? `Agent: ${agent.agent_id}`}\n`;
|
|
103
|
-
fs.writeFileSync(filePath, content, 'utf-8');
|
|
139
|
+
const filePath = path.join(dataDir, 'agents', `${agent.agent_principal_id}.md`);
|
|
140
|
+
writeFrontmatterFile(filePath, agent, body ?? `Agent: ${agent.agent_id}`);
|
|
104
141
|
}
|
|
105
|
-
/** @deprecated Use `store.agents.read()` instead. */
|
|
106
142
|
function readAgentFile(dataDir, agentPrincipalId) {
|
|
107
|
-
|
|
108
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
109
|
-
return parseFrontmatter(content);
|
|
143
|
+
return readFrontmatterFile(path.join(dataDir, 'agents', `${agentPrincipalId}.md`));
|
|
110
144
|
}
|
|
111
|
-
|
|
145
|
+
// ─── Policy files ───────────────────────────────────────────────────
|
|
112
146
|
function writePolicyFile(dataDir, policyId, yamlContent) {
|
|
113
147
|
const policiesDir = path.join(dataDir, 'policies');
|
|
114
148
|
fs.mkdirSync(policiesDir, { recursive: true });
|
|
115
149
|
const filePath = path.join(policiesDir, `${policyId}.yaml`);
|
|
116
150
|
fs.writeFileSync(filePath, yamlContent, 'utf-8');
|
|
117
151
|
}
|
|
118
|
-
/** @deprecated Use `store.policies.read()` instead. */
|
|
119
152
|
function readPolicyFile(dataDir, policyId) {
|
|
120
153
|
const filePath = path.join(dataDir, 'policies', `${policyId}.yaml`);
|
|
121
154
|
return fs.readFileSync(filePath, 'utf-8');
|
|
122
155
|
}
|
|
123
|
-
function parseFrontmatter(content) {
|
|
124
|
-
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
125
|
-
if (!match) {
|
|
126
|
-
throw new Error('No frontmatter found');
|
|
127
|
-
}
|
|
128
|
-
return (0, yaml_1.parse)(match[1]);
|
|
129
|
-
}
|
|
130
|
-
/** @deprecated Use `store.policies.delete()` instead. */
|
|
131
156
|
function deletePolicyFile(dataDir, policyId) {
|
|
132
157
|
const filePath = path.join(dataDir, "policies", `${policyId}.yaml`);
|
|
133
158
|
if (fs.existsSync(filePath)) {
|
|
@@ -135,51 +160,32 @@ function deletePolicyFile(dataDir, policyId) {
|
|
|
135
160
|
}
|
|
136
161
|
}
|
|
137
162
|
// ─── Approval request files ─────────────────────────────────────────
|
|
138
|
-
/** @deprecated Use `store.approvalRequests.write()` instead. */
|
|
139
163
|
function writeApprovalRequestFile(dataDir, req) {
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
const filePath = path.join(dir, `${req.approval_request_id}.md`);
|
|
143
|
-
const frontmatter = (0, yaml_1.stringify)(req, { lineWidth: 0 }).trim();
|
|
144
|
-
const content = `---\n${frontmatter}\n---\n\nApproval request for action: ${req.action_type}\n`;
|
|
145
|
-
fs.writeFileSync(filePath, content, 'utf-8');
|
|
164
|
+
const filePath = path.join(dataDir, 'approval-requests', `${req.approval_request_id}.md`);
|
|
165
|
+
writeFrontmatterFile(filePath, req, `Approval request for action: ${req.action_type}`);
|
|
146
166
|
}
|
|
147
|
-
/** @deprecated Use `store.approvalRequests.read()` instead. */
|
|
148
167
|
function readApprovalRequestFile(dataDir, approvalRequestId) {
|
|
149
|
-
|
|
150
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
151
|
-
return parseFrontmatter(content);
|
|
168
|
+
return readFrontmatterFile(path.join(dataDir, 'approval-requests', `${approvalRequestId}.md`));
|
|
152
169
|
}
|
|
153
170
|
// ─── Policy draft files ─────────────────────────────────────────────
|
|
154
|
-
/** @deprecated Use `store.policyDrafts.write()` instead. */
|
|
155
171
|
function writePolicyDraftFile(dataDir, draft) {
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
const filePath = path.join(dir, `${draft.policy_draft_id}.md`);
|
|
159
|
-
const frontmatter = (0, yaml_1.stringify)(draft, { lineWidth: 0 }).trim();
|
|
160
|
-
const content = `---\n${frontmatter}\n---\n\nPolicy draft from agent: ${draft.agent_id}\n`;
|
|
161
|
-
fs.writeFileSync(filePath, content, 'utf-8');
|
|
172
|
+
const filePath = path.join(dataDir, 'policy-drafts', `${draft.policy_draft_id}.md`);
|
|
173
|
+
writeFrontmatterFile(filePath, draft, `Policy draft from agent: ${draft.agent_id}`);
|
|
162
174
|
}
|
|
163
|
-
/** @deprecated Use `store.policyDrafts.read()` instead. */
|
|
164
175
|
function readPolicyDraftFile(dataDir, policyDraftId) {
|
|
165
|
-
|
|
166
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
167
|
-
return parseFrontmatter(content);
|
|
176
|
+
return readFrontmatterFile(path.join(dataDir, 'policy-drafts', `${policyDraftId}.md`));
|
|
168
177
|
}
|
|
169
178
|
// ─── Setup invite files ─────────────────────────────────────────────
|
|
170
|
-
/** @deprecated Use `store.setupInvites.write()` instead. */
|
|
171
179
|
function writeSetupInviteFile(dataDir, invite) {
|
|
172
180
|
const dir = path.join(dataDir, 'invites');
|
|
173
181
|
fs.mkdirSync(dir, { recursive: true });
|
|
174
182
|
const filePath = path.join(dir, `${invite.invite_id}.json`);
|
|
175
183
|
fs.writeFileSync(filePath, JSON.stringify(invite, null, 2), 'utf-8');
|
|
176
184
|
}
|
|
177
|
-
/** @deprecated Use `store.setupInvites.read()` instead. */
|
|
178
185
|
function readSetupInviteFile(dataDir, inviteId) {
|
|
179
186
|
const filePath = path.join(dataDir, 'invites', `${inviteId}.json`);
|
|
180
187
|
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
181
188
|
}
|
|
182
|
-
/** @deprecated Use `store.setupInvites.delete()` instead. */
|
|
183
189
|
function deleteSetupInviteFile(dataDir, inviteId) {
|
|
184
190
|
const filePath = path.join(dataDir, 'invites', `${inviteId}.json`);
|
|
185
191
|
if (fs.existsSync(filePath)) {
|
|
@@ -187,14 +193,12 @@ function deleteSetupInviteFile(dataDir, inviteId) {
|
|
|
187
193
|
}
|
|
188
194
|
}
|
|
189
195
|
// ─── Agent invite files ────────────────────────────────────────────
|
|
190
|
-
/** @deprecated Use `store.agentInvites.write()` instead. */
|
|
191
196
|
function writeAgentInviteFile(dataDir, invite) {
|
|
192
197
|
const dir = path.join(dataDir, 'agent-invites');
|
|
193
198
|
fs.mkdirSync(dir, { recursive: true });
|
|
194
199
|
const filePath = path.join(dir, `${invite.invite_id}.json`);
|
|
195
200
|
fs.writeFileSync(filePath, JSON.stringify(invite, null, 2), 'utf-8');
|
|
196
201
|
}
|
|
197
|
-
/** @deprecated Use `store.agentInvites.read()` instead. */
|
|
198
202
|
function readAgentInviteFile(dataDir, inviteId) {
|
|
199
203
|
const filePath = path.join(dataDir, 'agent-invites', `${inviteId}.json`);
|
|
200
204
|
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
@@ -206,7 +210,7 @@ class StateIndex {
|
|
|
206
210
|
cachedState = null;
|
|
207
211
|
cachedMtimeMs = 0;
|
|
208
212
|
cachedSize = 0;
|
|
209
|
-
/**
|
|
213
|
+
/** ownerType:ownerId → resolved entries (non-PENDING) */
|
|
210
214
|
resolvedByOwner = new Map();
|
|
211
215
|
constructor(dataDir) {
|
|
212
216
|
this.dataDir = dataDir;
|
|
@@ -218,9 +222,10 @@ class StateIndex {
|
|
|
218
222
|
return this.cachedState;
|
|
219
223
|
}
|
|
220
224
|
/** Paginated resolved approval entries for a given owner. */
|
|
221
|
-
getResolvedApprovals(ownerId, limit, offset) {
|
|
225
|
+
getResolvedApprovals(ownerType, ownerId, limit, offset) {
|
|
222
226
|
this.ensureFresh();
|
|
223
|
-
const
|
|
227
|
+
const key = `${ownerType}:${ownerId}`;
|
|
228
|
+
const entries = this.resolvedByOwner.get(key) ?? [];
|
|
224
229
|
const total = entries.length;
|
|
225
230
|
const start = Math.max(total - offset - limit, 0);
|
|
226
231
|
const end = total - offset;
|
|
@@ -250,10 +255,11 @@ class StateIndex {
|
|
|
250
255
|
for (const entry of entries) {
|
|
251
256
|
if (entry.status === 'PENDING')
|
|
252
257
|
continue;
|
|
253
|
-
|
|
258
|
+
const key = `${entry.owner_type}:${entry.owner_id}`;
|
|
259
|
+
let list = this.resolvedByOwner.get(key);
|
|
254
260
|
if (!list) {
|
|
255
261
|
list = [];
|
|
256
|
-
this.resolvedByOwner.set(
|
|
262
|
+
this.resolvedByOwner.set(key, list);
|
|
257
263
|
}
|
|
258
264
|
list.push(entry);
|
|
259
265
|
}
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter,
|
|
1
|
+
import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter, UserFrontmatter, OrganizationFrontmatter, OrgMembership, PolicyDraftFrontmatter, ServerKeyFile, SetupInvite, StateApprovalRequestEntry, StateData } from './types.js';
|
|
2
2
|
import type { AuditStore } from './audit.js';
|
|
3
|
-
export interface
|
|
4
|
-
read(
|
|
5
|
-
write(
|
|
3
|
+
export interface UserRepository {
|
|
4
|
+
read(userPrincipalId: string): UserFrontmatter;
|
|
5
|
+
write(user: UserFrontmatter, body?: string): void;
|
|
6
|
+
}
|
|
7
|
+
export interface OrganizationRepository {
|
|
8
|
+
read(orgId: string): OrganizationFrontmatter;
|
|
9
|
+
write(org: OrganizationFrontmatter, body?: string): void;
|
|
10
|
+
}
|
|
11
|
+
export interface OrgMembershipRepository {
|
|
12
|
+
read(membershipId: string): OrgMembership;
|
|
13
|
+
write(membership: OrgMembership): void;
|
|
14
|
+
delete(membershipId: string): void;
|
|
15
|
+
listByOrg(orgId: string): OrgMembership[];
|
|
16
|
+
listByUser(userPrincipalId: string): OrgMembership[];
|
|
6
17
|
}
|
|
7
18
|
export interface AgentRepository {
|
|
8
19
|
read(agentPrincipalId: string): AgentFrontmatter;
|
|
@@ -38,13 +49,15 @@ export interface KeyRepository {
|
|
|
38
49
|
export interface StateRepository {
|
|
39
50
|
getState(): StateData;
|
|
40
51
|
updateState(mutator: (state: StateData) => void): void;
|
|
41
|
-
getResolvedApprovals(ownerId: string, limit: number, offset: number): {
|
|
52
|
+
getResolvedApprovals(ownerType: string, ownerId: string, limit: number, offset: number): {
|
|
42
53
|
items: StateApprovalRequestEntry[];
|
|
43
54
|
total: number;
|
|
44
55
|
};
|
|
45
56
|
}
|
|
46
57
|
export interface DataStore {
|
|
47
|
-
|
|
58
|
+
users: UserRepository;
|
|
59
|
+
organizations: OrganizationRepository;
|
|
60
|
+
memberships: OrgMembershipRepository;
|
|
48
61
|
agents: AgentRepository;
|
|
49
62
|
policies: PolicyRepository;
|
|
50
63
|
approvalRequests: ApprovalRequestRepository;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { ServerKeyFile, SessionClaims, ApprovalTokenClaims } from './types.js';
|
|
1
|
+
import type { ServerKeyFile, SessionClaims, ApprovalTokenClaims, OrgMembershipClaim, OwnerType } from './types.js';
|
|
2
2
|
export interface ProofClaims {
|
|
3
3
|
iss: string;
|
|
4
4
|
kid: string;
|
|
5
5
|
iat: string;
|
|
6
6
|
exp: string;
|
|
7
7
|
decision_id: string;
|
|
8
|
-
|
|
8
|
+
owner_type: OwnerType;
|
|
9
|
+
owner_id: string;
|
|
9
10
|
agent_id: string;
|
|
10
11
|
action_type: string;
|
|
11
12
|
action_hash: string;
|
|
@@ -16,7 +17,8 @@ export interface ProofClaims {
|
|
|
16
17
|
export interface IssueProofParams {
|
|
17
18
|
key: ServerKeyFile;
|
|
18
19
|
decisionId: string;
|
|
19
|
-
|
|
20
|
+
ownerType: OwnerType;
|
|
21
|
+
ownerId: string;
|
|
20
22
|
agentId: string;
|
|
21
23
|
actionType: string;
|
|
22
24
|
actionHash: string;
|
|
@@ -37,9 +39,10 @@ export declare function verifyProofToken(token: string, keys: ServerKeyFile[]):
|
|
|
37
39
|
}>;
|
|
38
40
|
export interface IssueSessionParams {
|
|
39
41
|
key: ServerKeyFile;
|
|
40
|
-
|
|
42
|
+
userPrincipalId: string;
|
|
41
43
|
ttlSeconds: number;
|
|
42
|
-
|
|
44
|
+
systemRoles?: string[];
|
|
45
|
+
orgMemberships?: OrgMembershipClaim[];
|
|
43
46
|
}
|
|
44
47
|
export declare function issueSessionToken(params: IssueSessionParams): Promise<{
|
|
45
48
|
token: string;
|
|
@@ -54,7 +57,8 @@ export declare function verifySessionToken(token: string, keys: ServerKeyFile[])
|
|
|
54
57
|
export interface IssueApprovalTokenParams {
|
|
55
58
|
key: ServerKeyFile;
|
|
56
59
|
approvalRequestId: string;
|
|
57
|
-
|
|
60
|
+
ownerType: OwnerType;
|
|
61
|
+
ownerId: string;
|
|
58
62
|
agentId: string;
|
|
59
63
|
actionType: string;
|
|
60
64
|
actionHash: string;
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.js
CHANGED
|
@@ -17,7 +17,8 @@ async function issueProofToken(params) {
|
|
|
17
17
|
iat: now.toISOString(),
|
|
18
18
|
exp: exp.toISOString(),
|
|
19
19
|
decision_id: params.decisionId,
|
|
20
|
-
|
|
20
|
+
owner_type: params.ownerType,
|
|
21
|
+
owner_id: params.ownerId,
|
|
21
22
|
agent_id: params.agentId,
|
|
22
23
|
action_type: params.actionType,
|
|
23
24
|
action_hash: params.actionHash,
|
|
@@ -63,11 +64,12 @@ async function issueSessionToken(params) {
|
|
|
63
64
|
const claims = {
|
|
64
65
|
iss: 'openleash',
|
|
65
66
|
kid: params.key.kid,
|
|
66
|
-
sub: params.
|
|
67
|
+
sub: params.userPrincipalId,
|
|
67
68
|
iat: now.toISOString(),
|
|
68
69
|
exp: exp.toISOString(),
|
|
69
|
-
purpose: '
|
|
70
|
-
|
|
70
|
+
purpose: 'user_session',
|
|
71
|
+
system_roles: params.systemRoles,
|
|
72
|
+
org_memberships: params.orgMemberships,
|
|
71
73
|
};
|
|
72
74
|
const privateKey = (0, keys_js_1.getPrivateKeyObject)(params.key);
|
|
73
75
|
const token = await paseto_1.V4.sign({ ...claims }, privateKey, { expiresIn: `${params.ttlSeconds} seconds` });
|
|
@@ -78,7 +80,7 @@ async function verifySessionToken(token, keys) {
|
|
|
78
80
|
try {
|
|
79
81
|
const publicKey = (0, keys_js_1.getPublicKeyObject)(key);
|
|
80
82
|
const payload = await paseto_1.V4.verify(token, publicKey);
|
|
81
|
-
if (payload.purpose !== '
|
|
83
|
+
if (payload.purpose !== 'user_session') {
|
|
82
84
|
return { valid: false, reason: 'Invalid token purpose' };
|
|
83
85
|
}
|
|
84
86
|
if (payload.exp) {
|
|
@@ -104,7 +106,8 @@ async function issueApprovalToken(params) {
|
|
|
104
106
|
iat: now.toISOString(),
|
|
105
107
|
exp: exp.toISOString(),
|
|
106
108
|
approval_request_id: params.approvalRequestId,
|
|
107
|
-
|
|
109
|
+
owner_type: params.ownerType,
|
|
110
|
+
owner_id: params.ownerId,
|
|
108
111
|
agent_id: params.agentId,
|
|
109
112
|
action_type: params.actionType,
|
|
110
113
|
action_hash: params.actionHash,
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|