1.0.11 • Published 4 months ago
aztp-client v1.0.11
AZTP Client TypeScript
A TypeScript client library for the AZTP Identity Service, providing secure identity management and verification capabilities.
Installation
npm install aztp-client
Trusted Domains
The AZTP client maintains a whitelist of trusted domains for use with the trustDomain
parameter. When you specify a domain that isn't in this whitelist, the client will display a warning and suggest valid alternatives from the approved list. If no trust domain is specified, the system defaults to aztp.network
.
import aztp, {whiteListTrustDomains} from 'aztp-client';
# Check available trusted domains
console.log("Available trusted domains:", whiteListTrustDomains);
# Create a secure connection with a trusted domain
const securedAgentWithTrustDomain = await aztpClient.secureConnect(childAgent, "my-agent", {
trustDomain: whiteListTrustDomains["gptarticles.xyz"],
isGlobalIdentity: false
});
console.log("Child AZTP ID with trust domain and parent identity:", securedAgentWithTrustDomain);
Current Trusted Domains
gptarticles.xyz
gptapps.ai
vcagents.ai
Quick Start
import aztp, {whiteListTrustDomains} from 'aztp-client';
async function main() {
// Initialize the client with API key from environment
const API_KEY = process.env.AZTP_API_KEY;
if (!API_KEY) {
throw new Error("AZTP_API_KEY is not set");
}
const client = aztp.initialize({
apiKey: API_KEY
});
// Create base agents
const crewAgent = {};
const childAgentA = {};
const childAgentB = {};
const agentName = 'MyAgent-001';
const childAgentNameA = 'MyAgent-001-child-A';
const childAgentNameB = 'MyAgent-001-child-B';
try {
// Example 1: Issue identity with global identity
const securedAgent = await client.secureConnect(crewAgent, agentName, {
isGlobalIdentity: true
});
console.log('AZTP ID:', securedAgent);
const parentIdentity = securedAgent.identity.aztpId;
// Example 2: Issue identity with parent identity
const childSecuredAgent = await client.secureConnect(childAgentA, childAgentNameA, {
parentIdentity: parentIdentity,
isGlobalIdentity: false
});
console.log('Child AZTP ID:', childSecuredAgent);
// Example 3: Issue identity with trust domain and parent identity
const childSecuredAgentWithTrustDomain = await client.secureConnect(childAgentB, childAgentNameB, {
trustDomain: whiteListTrustDomains["gptarticles.xyz"],
parentIdentity: parentIdentity,
isGlobalIdentity: false
});
console.log('Child AZTP ID with trust domain:', childSecuredAgentWithTrustDomain);
// Verify identity
console.log("\nVerify identity with self validating for", "AgentName:", agentName);
const isValid = await aztpClient.verifyIdentity(securedAgent);
console.log("Identity Valid:", isValid);
// Verify identity
console.log("\nVerify identity with non self validating for", "AgentName:", agentName);
const isValidSelfValidating = await aztpClient.verifyIdentity(securedAgent, false, childSecuredAgentWithTrustDomain.identity.aztpId);
console.log("Identity Valid:", isValidSelfValidating);
// Get full identity details
const identity = await client.getIdentity(securedAgent);
console.log('Agent Name:', agentName, 'Identity Details:', identity);
} catch (error) {
console.error('Error:', error);
}
}
Client Options
The client can be initialized with several options:
const client = aztp.initialize({
apiKey: 'your_api_key_here',
// Additional options will be added in future versions
});
API Reference
Initialize Client
const client = aztp.initialize({
apiKey: string
});
Secure Connect
const securedAgent = await client.secureConnect(baseAgent, {
name: string
});
Verify Identity
const isValid = await client.verifyIdentity(securedAgent);
Verify Identity Using Agent Name
const isValid = await client.verifyIdentityUsingAgentName(agentName);
Verify Identity Using Full AZTP ID
const isValid = await client.verifyIdentityUsingAgentName(fullAztpId);
Verify Identity Using Explicit Parameters
const isValid = await client.verifyIdentityUsingAgentName(
agentName,
trustDomain,
workload,
environment,
method
);
Get Identity
const identity = await client.getIdentity(securedAgent);
Requirements
- Node.js >= 14.0.0
- TypeScript >= 4.9.0
License
MIT
Support
For support, please contact dev@astha.ai