@truefoundry/tfy-auth-handler-lib 0.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.
@@ -0,0 +1,267 @@
1
+ export interface AuthGrant {
2
+ subjectType: string;
3
+ subjectIdentifier: string;
4
+ subjectId: string;
5
+ resourceType: string;
6
+ resourceFqn: string;
7
+ resourceId: string;
8
+ roleId: string;
9
+ permissions: string[];
10
+ }
11
+ export interface CachedUser {
12
+ id: string;
13
+ email: string;
14
+ displayName?: string;
15
+ imageURL?: string;
16
+ }
17
+ export interface CachedTeam {
18
+ id: string;
19
+ name: string;
20
+ members: string[];
21
+ }
22
+ /** Subset of service-account NATS rows for virtual accounts (auth cache). */
23
+ export interface CachedVirtualAccount {
24
+ id: string;
25
+ name: string;
26
+ tags?: Record<string, string>;
27
+ ownedBy?: string;
28
+ jwtIds: string[];
29
+ }
30
+ /** Subset of service-account NATS rows for PATs (auth cache). */
31
+ export interface CachedPAT {
32
+ id: string;
33
+ name: string;
34
+ ownedBy?: string;
35
+ jwtIds: string[];
36
+ }
37
+ /** Mirrors `toNatsFormatExternalIdentity` (llmgateway/utils) — NATS KV external-identity row shape. */
38
+ export interface CachedExternalIdentity {
39
+ id: string;
40
+ name: string;
41
+ manifest: object;
42
+ tenantName: string;
43
+ }
44
+ /** Nested `providerAccount` in `toNatsFormatIntegration` (llmgateway/utils). */
45
+ export interface CachedIntegrationProviderAccount {
46
+ id: string;
47
+ fqn: string;
48
+ name: string;
49
+ provider: string;
50
+ tenantName: string;
51
+ }
52
+ /** Return shape of `toNatsFormatIntegration` — MCP server and guardrail rows under KV `data` (llmgateway/utils). */
53
+ export interface CachedProviderIntegrationRow {
54
+ id: string;
55
+ name: string;
56
+ fqn: string;
57
+ providerAccount: CachedIntegrationProviderAccount;
58
+ manifest: object;
59
+ createdBy: string;
60
+ }
61
+ /** @see CachedProviderIntegrationRow */
62
+ export type CachedMcpServer = CachedProviderIntegrationRow;
63
+ /** @see CachedProviderIntegrationRow */
64
+ export type CachedGuardrail = CachedProviderIntegrationRow;
65
+ /** Mirrors `toNatsFormatRole` (llmgateway/utils) — NATS KV role row shape. */
66
+ export interface CachedRole {
67
+ id: string;
68
+ name: string;
69
+ tenantName: string;
70
+ accountId: string;
71
+ resourceType: string;
72
+ manifest: object;
73
+ }
74
+ /**
75
+ * `toNatsFormatProviderAccount` plus `integrations` from `addModelsV2InNats` (llmgateway/natsUtilsV2).
76
+ * Each integration is `toNatsFormatIntegration` output.
77
+ */
78
+ export interface CachedProviderAccountRow {
79
+ id: string;
80
+ fqn: string;
81
+ name: string;
82
+ provider: string;
83
+ tenantName: string;
84
+ manifest: object;
85
+ createdBy: string;
86
+ type: string;
87
+ integrations: CachedProviderIntegrationRow[];
88
+ }
89
+ export type CachedModel = CachedProviderAccountRow;
90
+ /** Alias: nested integration under a cached provider account row. */
91
+ export type CachedModelIntegration = CachedProviderIntegrationRow;
92
+ /**
93
+ * Value shape in `addAgentsV2InNats` (llmgateway/natsUtilsV2). The map key is `agent.name`; the value has no top-level `name`.
94
+ */
95
+ export interface CachedAgent {
96
+ manifest: object;
97
+ latestVersion: number;
98
+ metadata: object | null;
99
+ fqn: string;
100
+ id: string;
101
+ }
102
+ /**
103
+ * KV value is `config.manifest` from `GatewayConfiguration` (`addGatewayConfigsV2InNats`, llmgateway/entities/GatewayConfig `Config`).
104
+ */
105
+ export interface CachedGatewayConfig {
106
+ name?: string;
107
+ type: string;
108
+ rules?: object;
109
+ otel_traces_exporter_config?: object;
110
+ }
111
+ /** Mirrors `toNatsFormatServiceAccount` (llmgateway/utils). */
112
+ export interface CachedServiceAccount {
113
+ id: string;
114
+ name: string;
115
+ tenantName: string;
116
+ type: string;
117
+ shadowUserEmail: string;
118
+ authorizedModels: string[];
119
+ authorizedMCPServers: string[];
120
+ authorizedModelProviderAccounts: string[];
121
+ authorizedGuardrailGroupProviderAccounts: string[];
122
+ authorizedMCPGroups: string[];
123
+ authorizedAgents: string[];
124
+ ownedBy: object | undefined;
125
+ jwtIds: string[];
126
+ roleIds?: string[];
127
+ rolesWithResource?: object[];
128
+ metadata?: object;
129
+ tags?: object | undefined;
130
+ }
131
+ /** Row object in `addExternalIdentityProvidersV2InNats` (llmgateway/natsUtilsV2). Dates are JSON-serialized. */
132
+ export interface CachedExternalIdentityProvider {
133
+ id: string;
134
+ tenantName: string;
135
+ manifest: object;
136
+ createdAt: string;
137
+ updatedAt: string;
138
+ }
139
+ export declare enum AuthCacheEntity {
140
+ AUTHORIZATION = "authorization",
141
+ USERS = "users",
142
+ TEAMS = "teams",
143
+ MCP_SERVER = "mcp-server",
144
+ AGENT = "agent",
145
+ EXTERNAL_IDENTITY = "external-identity",
146
+ ROLE = "role",
147
+ EXTERNAL_JWKS = "external-jwks",
148
+ PRIMARY_JWKS = "primary-jwks",
149
+ MODEL = "model",
150
+ GUARDRAIL = "guardrail",
151
+ GATEWAY_CONFIG = "gateway-config",
152
+ SERVICE_ACCOUNT = "serviceaccount",
153
+ VIRTUAL_ACCOUNT = "virtualaccount",
154
+ PAT = "pat",
155
+ EXTERNAL_IDENTITY_PROVIDER = "external-identity-provider"
156
+ }
157
+ export interface AuthCacheLogger {
158
+ log(message: string, ...args: unknown[]): void;
159
+ error(message: string, ...args: unknown[]): void;
160
+ warn(message: string, ...args: unknown[]): void;
161
+ debug(message: string, ...args: unknown[]): void;
162
+ }
163
+ export interface AuthCacheConfig {
164
+ /** Object Store bucket name. Defaults to 'auth-data'. */
165
+ bucketName?: string;
166
+ /** Retry interval when opening the bucket (ms). Defaults to 5000. */
167
+ openRetryIntervalMs?: number;
168
+ /** Max retries when opening the bucket. Defaults to 60. */
169
+ openRetryMaxAttempts?: number;
170
+ /** Logger instance. Defaults to console with prefixed messages. */
171
+ logger?: AuthCacheLogger;
172
+ }
173
+ export interface TenantCheckAccessByResourceIdOptions {
174
+ subjectIdentifier: string;
175
+ subjectType: 'user' | 'virtualaccount' | 'serviceaccount';
176
+ resourceId: string;
177
+ requiredPermission: string;
178
+ }
179
+ export interface CheckAccessByResourceIdOptions extends TenantCheckAccessByResourceIdOptions {
180
+ tenantName: string;
181
+ }
182
+ export interface ITenantCache {
183
+ /** Checks whether a subject has the required permission on a resource identified by ID. */
184
+ checkAccessForResourceId(opts: TenantCheckAccessByResourceIdOptions): boolean;
185
+ /** Returns the team names the user belongs to (from the in-memory reverse index). */
186
+ getUserTeams(userEmail: string): string[];
187
+ /** Substring search over cached users (email or displayName). */
188
+ searchUsers(substring: string, limit?: number): CachedUser[];
189
+ /** Substring search over cached teams (team name). */
190
+ searchTeams(substring: string, limit?: number): CachedTeam[];
191
+ /** Returns all cached grants for the tenant. */
192
+ getGrants(): AuthGrant[];
193
+ /** Returns all cached users for the tenant. */
194
+ getUsers(): CachedUser[];
195
+ /** Returns all cached teams for the tenant. */
196
+ getTeams(): CachedTeam[];
197
+ /** Returns cached MCP servers, parsed from the NATS KVStoreV2Data blob at write time. */
198
+ getMcpServers(): CachedMcpServer[];
199
+ /** Returns cached roles, parsed from the NATS KVStoreV2Data blob at write time. */
200
+ getRoles(): CachedRole[];
201
+ /** Returns raw NATS KVStoreV2Data for external JWKS public keys (wire format). */
202
+ getExternalJwks(): object | null;
203
+ /** Returns raw NATS KVStoreV2Data for primary JWKS public keys (wire format). */
204
+ getPrimaryJwks(): object | null;
205
+ /** Returns cached agents, parsed from the NATS KVStoreV2Data blob at write time. */
206
+ getAgents(): CachedAgent[];
207
+ /** Returns cached external identities, parsed from the NATS KVStoreV2Data blob at write time. */
208
+ getExternalIdentities(): CachedExternalIdentity[];
209
+ /** Returns cached models (provider accounts with nested integrations), parsed from the NATS KVStoreV2Data blob at write time. */
210
+ getModels(): CachedModel[];
211
+ /** Returns cached guardrails, parsed from the NATS KVStoreV2Data blob at write time. */
212
+ getGuardrails(): CachedGuardrail[];
213
+ /** Returns cached gateway configs, parsed from the NATS KVStoreV2Data blob at write time. */
214
+ getGatewayConfigs(): CachedGatewayConfig[];
215
+ /** Returns cached service accounts, parsed from the NATS KVStoreV2Data blob at write time. */
216
+ getServiceAccounts(): CachedServiceAccount[];
217
+ /** Virtual accounts, built from DB snapshot (id, name, tags, ownedBy, jwtIds). */
218
+ getVirtualAccounts(): CachedVirtualAccount[];
219
+ /** PATs, built from DB snapshot (id, name, ownedBy, jwtIds). */
220
+ getPats(): CachedPAT[];
221
+ /** Returns cached external identity providers, parsed from the NATS KVStoreV2Data blob at write time. */
222
+ getExternalIdentityProviders(): CachedExternalIdentityProvider[];
223
+ }
224
+ export interface IAuthCache {
225
+ /** Opens the Object Store bucket and starts the watch loop. Blocks until the bucket is available. */
226
+ start(): Promise<void>;
227
+ /** Stops the watch loop and releases resources. */
228
+ stop(): Promise<void>;
229
+ /**
230
+ * Returns true once the initial snapshot from the Object Store has been fully
231
+ * loaded into memory. Pods should gate readiness on this.
232
+ */
233
+ isReady(): boolean;
234
+ /** Returns the TenantCache for a given tenant, or undefined if no data has been loaded for it. */
235
+ getTenantCache(tenantName: string): ITenantCache | undefined;
236
+ /** Checks whether a subject has the required permission on a resource identified by ID. */
237
+ checkAccessForResourceId(opts: CheckAccessByResourceIdOptions): boolean;
238
+ /** Returns the team names the user belongs to (from the in-memory reverse index). */
239
+ getUserTeams(tenantName: string, userEmail: string): string[];
240
+ /** Substring search over cached users (email or displayName). */
241
+ searchUsers(tenantName: string, substring: string, limit?: number): CachedUser[];
242
+ /** Substring search over cached teams (team name). */
243
+ searchTeams(tenantName: string, substring: string, limit?: number): CachedTeam[];
244
+ /** Returns all cached users for a tenant. */
245
+ getUsers(tenantName: string): CachedUser[];
246
+ /** Returns all cached teams for a tenant. */
247
+ getTeams(tenantName: string): CachedTeam[];
248
+ getMcpServers(tenantName: string): CachedMcpServer[];
249
+ getRoles(tenantName: string): CachedRole[];
250
+ /** Returns raw NATS KVStoreV2Data for external JWKS public keys (wire format). */
251
+ getExternalJwks(tenantName: string): object | null;
252
+ /** Returns raw NATS KVStoreV2Data for primary JWKS public keys (wire format). */
253
+ getPrimaryJwks(tenantName: string): object | null;
254
+ getAgents(tenantName: string): CachedAgent[];
255
+ /** Returns cached external identities, parsed from the NATS KVStoreV2Data blob at write time. */
256
+ getExternalIdentities(tenantName: string): CachedExternalIdentity[];
257
+ getModels(tenantName: string): CachedModel[];
258
+ getGuardrails(tenantName: string): CachedGuardrail[];
259
+ getGatewayConfigs(tenantName: string): CachedGatewayConfig[];
260
+ getServiceAccounts(tenantName: string): CachedServiceAccount[];
261
+ getVirtualAccounts(tenantName: string): CachedVirtualAccount[];
262
+ getPats(tenantName: string): CachedPAT[];
263
+ getExternalIdentityProviders(tenantName: string): CachedExternalIdentityProvider[];
264
+ /** Returns the list of tenant names that have data in the cache. */
265
+ getTenantNames(): string[];
266
+ }
267
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthCacheEntity = void 0;
4
+ var AuthCacheEntity;
5
+ (function (AuthCacheEntity) {
6
+ AuthCacheEntity["AUTHORIZATION"] = "authorization";
7
+ AuthCacheEntity["USERS"] = "users";
8
+ AuthCacheEntity["TEAMS"] = "teams";
9
+ AuthCacheEntity["MCP_SERVER"] = "mcp-server";
10
+ AuthCacheEntity["AGENT"] = "agent";
11
+ AuthCacheEntity["EXTERNAL_IDENTITY"] = "external-identity";
12
+ AuthCacheEntity["ROLE"] = "role";
13
+ AuthCacheEntity["EXTERNAL_JWKS"] = "external-jwks";
14
+ AuthCacheEntity["PRIMARY_JWKS"] = "primary-jwks";
15
+ AuthCacheEntity["MODEL"] = "model";
16
+ AuthCacheEntity["GUARDRAIL"] = "guardrail";
17
+ AuthCacheEntity["GATEWAY_CONFIG"] = "gateway-config";
18
+ AuthCacheEntity["SERVICE_ACCOUNT"] = "serviceaccount";
19
+ AuthCacheEntity["VIRTUAL_ACCOUNT"] = "virtualaccount";
20
+ AuthCacheEntity["PAT"] = "pat";
21
+ AuthCacheEntity["EXTERNAL_IDENTITY_PROVIDER"] = "external-identity-provider";
22
+ })(AuthCacheEntity || (exports.AuthCacheEntity = AuthCacheEntity = {}));
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4JA,IAAY,eAiBX;AAjBD,WAAY,eAAe;IACzB,kDAA+B,CAAA;IAC/B,kCAAe,CAAA;IACf,kCAAe,CAAA;IACf,4CAAyB,CAAA;IACzB,kCAAe,CAAA;IACf,0DAAuC,CAAA;IACvC,gCAAa,CAAA;IACb,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,kCAAe,CAAA;IACf,0CAAuB,CAAA;IACvB,oDAAiC,CAAA;IACjC,qDAAkC,CAAA;IAClC,qDAAkC,CAAA;IAClC,8BAAW,CAAA;IACX,4EAAyD,CAAA;AAC3D,CAAC,EAjBW,eAAe,+BAAf,eAAe,QAiB1B"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@truefoundry/tfy-auth-handler-lib",
3
+ "version": "0.1.0",
4
+ "description": "In-memory authorization cache backed by NATS Object Store for TrueFoundry services",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "clean": "rm -rf dist"
10
+ },
11
+ "peerDependencies": {
12
+ "@nats-io/nats-core": "^3.0.0",
13
+ "@nats-io/jetstream": "^3.0.0",
14
+ "@nats-io/obj": "^3.0.0",
15
+ "@sentry/node": "^9.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "@nats-io/nats-core": "^3.0.0",
19
+ "@nats-io/jetstream": "^3.0.0",
20
+ "@nats-io/obj": "^3.0.0",
21
+ "@nats-io/transport-node": "^3.0.2",
22
+ "nats-jwt": "^0.0.9",
23
+ "nkeys.js": "^1.0.3",
24
+ "dotenv": "^16.4.5",
25
+ "typescript": "^5.4.5"
26
+ },
27
+ "files": [
28
+ "dist/**/*"
29
+ ],
30
+ "author": "Truefoundry",
31
+ "license": "UNLICENSED"
32
+ }