Skip to content

Commit fe18401

Browse files
committed
Add tools for tenant provider policy api's
1 parent 2c7bf58 commit fe18401

File tree

3 files changed

+57
-12
lines changed

3 files changed

+57
-12
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"prepare": "husky"
3232
},
3333
"dependencies": {
34-
"@usegrant/sdk": "^1.6.0",
34+
"@usegrant/sdk": "^2.0.0",
3535
"ai": "^4.2.0",
3636
"zod": "^3.24.2"
3737
},

src/index.ts

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export const createTools = (apiKey: string) => {
1717
description: 'List all providers',
1818
parameters: z.object({}),
1919
execute: async (_input, { abortSignal }) => {
20-
return sdk(abortSignal).getProviders();
20+
return sdk(abortSignal).listProviders();
2121
},
2222
}),
2323
createProvider: tool({
@@ -46,7 +46,7 @@ export const createTools = (apiKey: string) => {
4646
description: 'List all clients',
4747
parameters: z.object({ providerId: UgSchema.ProviderIdSchema }),
4848
execute: async ({ providerId }, { abortSignal }) => {
49-
return sdk(abortSignal).getClients(providerId);
49+
return sdk(abortSignal).listClients(providerId);
5050
},
5151
}),
5252
createClient: tool({
@@ -84,7 +84,7 @@ export const createTools = (apiKey: string) => {
8484
description: 'List all domains for a provider',
8585
parameters: z.object({ providerId: UgSchema.ProviderIdSchema }),
8686
execute: async ({ providerId }, { abortSignal }) => {
87-
return sdk(abortSignal).getDomains(providerId);
87+
return sdk(abortSignal).listDomains(providerId);
8888
},
8989
}),
9090
addDomain: tool({
@@ -143,7 +143,7 @@ export const createTools = (apiKey: string) => {
143143
description: 'List all tenants',
144144
parameters: z.object({}),
145145
execute: async (_input, { abortSignal }) => {
146-
return sdk(abortSignal).getTenants();
146+
return sdk(abortSignal).listTenants();
147147
},
148148
}),
149149
createTenant: tool({
@@ -172,7 +172,7 @@ export const createTools = (apiKey: string) => {
172172
description: 'List all providers for a tenant',
173173
parameters: z.object({ tenantId: UgSchema.TenantIdSchema }),
174174
execute: async ({ tenantId }, { abortSignal }) => {
175-
return sdk(abortSignal).getTenantProviders(tenantId);
175+
return sdk(abortSignal).listTenantProviders(tenantId);
176176
},
177177
}),
178178
createTenantProvider: tool({
@@ -206,14 +206,59 @@ export const createTools = (apiKey: string) => {
206206
return `Tenant provider ${providerId} deleted`;
207207
},
208208
}),
209+
listTenantProviderPolicies: tool({
210+
description: 'List all policies for a tenant provider',
211+
parameters: z.object({
212+
tenantId: UgSchema.TenantIdSchema,
213+
providerId: UgSchema.TenantProviderIdSchema,
214+
}),
215+
execute: async ({ tenantId, providerId }, { abortSignal }) => {
216+
return sdk(abortSignal).listTenantProviderPolicies(tenantId, providerId);
217+
},
218+
}),
219+
createTenantProviderPolicy: tool({
220+
description: 'Create a new policy for a tenant provider',
221+
parameters: z.object({
222+
tenantId: UgSchema.TenantIdSchema,
223+
providerId: UgSchema.TenantProviderIdSchema,
224+
...UgSchema.CreateTenantProviderPolicySchema.shape,
225+
}),
226+
execute: async ({ tenantId, providerId, ...payload }, { abortSignal }) => {
227+
return sdk(abortSignal).createTenantProviderPolicy(tenantId, providerId, payload);
228+
},
229+
}),
230+
getTenantProviderPolicy: tool({
231+
description: 'Get a policy for a tenant provider',
232+
parameters: z.object({
233+
tenantId: UgSchema.TenantIdSchema,
234+
providerId: UgSchema.TenantProviderIdSchema,
235+
policyId: UgSchema.TenantProviderPolicyIdSchema,
236+
}),
237+
execute: async ({ tenantId, providerId, policyId }, { abortSignal }) => {
238+
return sdk(abortSignal).getTenantProviderPolicy(tenantId, providerId, policyId);
239+
},
240+
}),
241+
deleteTenantProviderPolicy: tool({
242+
description: 'Delete a policy for a tenant provider',
243+
parameters: z.object({
244+
tenantId: UgSchema.TenantIdSchema,
245+
providerId: UgSchema.TenantProviderIdSchema,
246+
policyId: UgSchema.TenantProviderPolicyIdSchema,
247+
}),
248+
execute: async ({ tenantId, providerId, policyId }, { abortSignal }) => {
249+
await sdk(abortSignal).deleteTenantProviderPolicy(tenantId, providerId, policyId);
250+
return `Tenant provider policy ${policyId} deleted`;
251+
},
252+
}),
209253
validateAccessToken: tool({
210254
description: 'Validate an access token',
211255
parameters: z.object({
212256
tenantId: UgSchema.TenantIdSchema,
257+
policyId: UgSchema.TenantProviderPolicyIdSchema,
213258
accessToken: z.string(),
214259
}),
215-
execute: async ({ tenantId, accessToken }, { abortSignal }) => {
216-
const { exp } = await sdk(abortSignal).validateToken(tenantId, accessToken);
260+
execute: async ({ tenantId, policyId, accessToken }, { abortSignal }) => {
261+
const { exp } = await sdk(abortSignal).validateToken(tenantId, policyId, accessToken);
217262

218263
return {
219264
isValid: true,

0 commit comments

Comments
 (0)