Customer accounts
Give every customer an isolated workspace while keeping integration code compact.
Use your immutable external ID
Use a non-personal identifier from your own database. Never use a mutable slug, email address, display name, printer ID, or value accepted directly from browser input.
typescript
const customer = await piqae.accounts.getOrCreate(customer.id, {
name: customer.displayName,
metadata: {
billing_tier: customer.plan,
home_region: customer.region
}
});Test and Live are isolated
typescript
// Live is the default.
await customer.printers.list();
// Test has separate nodes, printers, jobs and webhooks.
await customer.test.printers.list();Manage the lifecycle
typescript
const accounts = await piqae.accounts.list();
const sameCustomer = await piqae.accounts.retrieve(customer.externalId);
await piqae.accounts.archive(customer.externalId);Archive blocks new platform access and revokes both environment grants. Already accepted jobs retain their durable lifecycle. Archive is not immediate data deletion.
Dashboard and API
Platform operators can view customer accounts and environment health in the hosted dashboard. Application code should use the SDK or API. The browser dashboard uses the signed-in human session; it never receives the platform key.