UNPKG

atp-sdk

Version:

Official TypeScript SDK for Agent Trust Protocolâ„¢ - Build secure, verifiable, and trustworthy applications with decentralized identity, verifiable credentials, and robust access control

132 lines • 3.59 kB
import { BaseClient } from './base.js'; export class PermissionsClient extends BaseClient { constructor(config) { super(config, 'permissions'); } /** * Grant permission to a subject */ async grantPermission(request) { return this.post('/permissions/grant', request); } /** * Check if a subject has permission for a specific action */ async checkAccess(request) { return this.post('/permissions/check', request); } /** * Revoke a permission grant */ async revokePermission(grantId, reason) { return this.delete(`/permissions/grant/${encodeURIComponent(grantId)}`, { data: { reason } }); } /** * Get permission grant by ID */ async getPermission(grantId) { return this.get(`/permissions/grant/${encodeURIComponent(grantId)}`); } /** * Query permission grants with filters */ async queryPermissions(query) { return this.get('/permissions/grants', { params: query }); } /** * Get all permissions for a subject */ async getPermissionsForSubject(subject, params) { return this.get(`/permissions/subject/${encodeURIComponent(subject)}`, { params }); } /** * Get all permissions for a resource */ async getPermissionsForResource(resource, params) { return this.get(`/permissions/resource/${encodeURIComponent(resource)}`, { params }); } // Policy Management /** * Create a policy rule */ async createPolicy(policy) { return this.post('/policies', policy); } /** * Get policy by ID */ async getPolicy(policyId) { return this.get(`/policies/${encodeURIComponent(policyId)}`); } /** * Update a policy rule */ async updatePolicy(policyId, policy) { return this.put(`/policies/${encodeURIComponent(policyId)}`, policy); } /** * Delete a policy rule */ async deletePolicy(policyId) { return this.delete(`/policies/${encodeURIComponent(policyId)}`); } /** * List all policies */ async listPolicies(params) { return this.get('/policies', { params }); } /** * Evaluate policies for a specific request */ async evaluatePolicies(request) { return this.post('/policies/evaluate', request); } // Capability Tokens /** * Issue a capability token */ async issueCapabilityToken(request) { return this.post('/capabilities/issue', request); } /** * Verify a capability token */ async verifyCapabilityToken(token) { return this.post('/capabilities/verify', { token }); } /** * Revoke a capability token */ async revokeCapabilityToken(tokenId) { return this.delete(`/capabilities/${encodeURIComponent(tokenId)}`); } /** * List capability tokens for a subject */ async getCapabilityTokens(subject) { return this.get(`/capabilities/subject/${encodeURIComponent(subject)}`); } // Permission Analytics /** * Get permission usage statistics */ async getPermissionStats(params) { return this.get('/permissions/stats', { params }); } /** * Get access audit trail */ async getAccessAuditTrail(params) { return this.get('/permissions/audit', { params }); } /** * Check service health */ async getHealth() { return this.get('/health'); } } //# sourceMappingURL=permissions.js.map