sdk.admin (AdminApiClient) is the node’s /admin-api REST surface — 106
methods across applications, contexts, namespaces, groups, blobs, aliases,
capabilities, metadata, upgrades, and TEE. Each wraps the shared
HttpClient ; most reads unwrap the node’s { data }
envelope for you.
List methods (getContexts, listApplications, listBlobs,
listGroupMembers, …) return the node’s full result set — the admin API does
not paginate, so there are no limit/offset/cursor parameters.
Method
Endpoint
healthCheck(): Promise<HealthStatus>
GET /health
isAuthed(): Promise<AdminAuthStatus>
GET /is-authed
Method
Endpoint
installApplication(request): Promise<InstallApplicationResponseData>
POST /install-application
installDevApplication(request): Promise<InstallApplicationResponseData>
POST /install-dev-application
installFromRegistry(registryUrl, packageName, version): Promise<InstallApplicationResponseData>
resolves the registry manifest, then installs
getRegistryVersions(registryUrl, packageName): Promise<string[]>
registry bundles (newest first)
uninstallApplication(appId): Promise<UninstallApplicationResponseData>
DELETE /applications/{appId}
listApplications(): Promise<ListApplicationsResponseData>
GET /applications
getApplication(appId): Promise<GetApplicationResponseData>
GET /applications/{appId}
listApplicationVersions(applicationId): Promise<ApplicationVersionEntry[]>
GET /applications/{applicationId}/versions
A standalone helper compareSemver(a, b): number sorts version strings ascending.
Method
Endpoint
listPackages(): Promise<ListPackagesResponseData>
GET /packages
listPackageVersions(packageName): Promise<ListVersionsResponseData>
GET /packages/{package}/versions
getLatestPackageVersion(packageName): Promise<GetLatestVersionResponseData>
GET /packages/{package}/latest
Method
Endpoint
createContext(request): Promise<CreateContextResponseData>
POST /contexts
deleteContext(contextId, request?): Promise<DeleteContextResponseData>
DELETE /contexts/{contextId}
getContexts(): Promise<GetContextsResponseData>
GET /contexts
getContext(contextId): Promise<Context>
GET /contexts/{contextId}
getContextsForApplication(applicationId): Promise<GetContextsResponseData>
GET /contexts/for-application/{applicationId}
getContextGroup(contextId): Promise<ContextGroupResponseData>
GET /contexts/{contextId}/group
getContextStorage(contextId): Promise<ContextStorageResponseData>
GET /contexts/{contextId}/storage
getContextsWithExecutorsForApplication(applicationId): Promise<ContextsWithExecutorsResponseData>
GET /contexts/with-executors/for-application/{applicationId}
joinContext(contextId): Promise<JoinContextResponseData>
POST /contexts/{contextId}/join
leaveContext(contextId, request?): Promise<void>
POST /contexts/{contextId}/leave
updateContextApplication(contextId, request): Promise<void>
POST /contexts/{contextId}/application
syncContext(contextId?): Promise<void>
POST /contexts/sync/{contextId?}
resyncContext(contextId, request?): Promise<ResyncContextResponseData>
POST /contexts/{contextId}/resync
inviteSpecializedNode(request): Promise<InviteSpecializedNodeResponseData>
POST /contexts/invite-specialized-node
Method
Endpoint
generateContextIdentity(): Promise<GenerateContextIdentityResponseData>
POST /identity/context
getContextIdentities(contextId): Promise<GetContextIdentitiesResponseData>
GET /contexts/{contextId}/identities
getContextIdentitiesOwned(contextId): Promise<GetContextIdentitiesResponseData>
GET /contexts/{contextId}/identities-owned
Method
Endpoint
uploadBlob(request): Promise<UploadBlobResponseData>
PUT /blobs?hash=&context_id= (octet-stream)
listBlobs(): Promise<ListBlobsResponseData>
GET /blobs
getBlob(blobId): Promise<ArrayBuffer>
GET /blobs/{blobId} (raw bytes)
getBlobInfo(blobId): Promise<GetBlobInfoResponseData>
HEAD /blobs/{blobId}
deleteBlob(blobId): Promise<DeleteBlobResponseData>
DELETE /blobs/{blobId}
Method
Endpoint
createContextAlias(request): Promise<CreateAliasResponseData>
POST /alias/create/context
createApplicationAlias(request): Promise<CreateAliasResponseData>
POST /alias/create/application
lookupContextAlias(name): Promise<LookupAliasResponseData>
POST /alias/lookup/context/{name}
lookupApplicationAlias(name): Promise<LookupAliasResponseData>
POST /alias/lookup/application/{name}
deleteContextAlias(name): Promise<DeleteAliasResponseData>
POST /alias/delete/context/{name}
deleteApplicationAlias(name): Promise<DeleteAliasResponseData>
POST /alias/delete/application/{name}
listContextAliases(): Promise<ListAliasesResponseData>
GET /alias/list/context
listApplicationAliases(): Promise<ListAliasesResponseData>
GET /alias/list/application
listContextIdentityAliases(contextId): Promise<ListContextIdentityAliasesResponseData>
GET /alias/list/identity/{contextId}
createContextIdentityAlias(contextId, request): Promise<CreateContextIdentityAliasResponseData>
POST /alias/create/identity/{contextId}
lookupContextIdentityAlias(contextId, name): Promise<LookupContextIdentityAliasResponseData>
POST /alias/lookup/identity/{contextId}/{name}
deleteContextIdentityAlias(contextId, name): Promise<DeleteContextIdentityAliasResponseData>
POST /alias/delete/identity/{contextId}/{name}
Method
Endpoint
listNamespaces(): Promise<ListNamespacesResponseData>
GET /namespaces
getNamespace(namespaceId): Promise<Namespace>
GET /namespaces/{namespaceId}
getNamespaceIdentity(namespaceId): Promise<NamespaceIdentity>
GET /namespaces/{namespaceId}/identity
listNamespacesForApplication(applicationId): Promise<ListNamespacesResponseData>
GET /namespaces/for-application/{applicationId}
createNamespace(request): Promise<CreateNamespaceResponseData>
POST /namespaces
deleteNamespace(namespaceId, request?): Promise<DeleteNamespaceResponseData>
DELETE /namespaces/{namespaceId}
createNamespaceInvitation(namespaceId, request?): Promise<…InvitationResponseData>
POST /namespaces/{namespaceId}/invite
joinNamespace(namespaceId, request): Promise<JoinNamespaceResponseData>
POST /namespaces/{namespaceId}/join
leaveNamespace(namespaceId, request?): Promise<void>
POST /namespaces/{namespaceId}/leave
createGroupInNamespace(namespaceId, request?): Promise<CreateGroupInNamespaceResponseData>
POST /namespaces/{namespaceId}/groups
listNamespaceGroups(namespaceId): Promise<SubgroupEntry[]>
GET /namespaces/{namespaceId}/groups
Method
Endpoint
createGroup(request): Promise<{ groupId: string }>
POST /groups
getGroupInfo(groupId): Promise<GroupInfoResponseData>
GET /groups/{groupId}
deleteGroup(groupId, request?): Promise<DeleteGroupResponseData>
DELETE /groups/{groupId}
updateGroupSettings(groupId, request): Promise<void>
PATCH /groups/{groupId}
listGroupMembers(groupId): Promise<ListGroupMembersResponseData>
GET /groups/{groupId}/members
listGroupContexts(groupId): Promise<ListGroupContextsResponseData>
GET /groups/{groupId}/contexts
addGroupMembers(groupId, request): Promise<void>
POST /groups/{groupId}/members
removeGroupMembers(groupId, request): Promise<void>
POST /groups/{groupId}/members/remove
updateMemberRole(groupId, identity, request): Promise<void>
PUT /groups/{groupId}/members/{identity}/role
setMemberAutoFollow(groupId, identity, request): Promise<void>
PUT /groups/{groupId}/members/{identity}/auto-follow
leaveGroup(groupId, request?): Promise<void>
POST /groups/{groupId}/leave
Method
Endpoint
getMemberCapabilities(groupId, identity): Promise<MemberCapabilities>
GET /groups/{groupId}/members/{identity}/capabilities
setMemberCapabilities(groupId, identity, request): Promise<void>
PUT /groups/{groupId}/members/{identity}/capabilities
getDefaultCapabilities(groupId): Promise<number>
via getGroupInfo
setDefaultCapabilities(groupId, request): Promise<void>
PUT /groups/{groupId}/settings/default-capabilities
getSubgroupVisibility(groupId): Promise<string>
via getGroupInfo
setSubgroupVisibility(groupId, request): Promise<void>
PUT /groups/{groupId}/settings/subgroup-visibility
getTeeAdmissionPolicy(groupId): Promise<GetTeeAdmissionPolicyResponseData>
GET /groups/{groupId}/settings/tee-admission-policy
setTeeAdmissionPolicy(groupId, request): Promise<void>
PUT /groups/{groupId}/settings/tee-admission-policy
Method
Endpoint
setGroupMetadata(groupId, request): Promise<void>
PUT /groups/{groupId}/metadata
getGroupMetadata(groupId): Promise<MetadataRecord | null>
GET /groups/{groupId}/metadata
setMemberMetadata(groupId, identity, request): Promise<void>
PUT /groups/{groupId}/members/{identity}/metadata
getMemberMetadata(groupId, identity): Promise<MetadataRecord | null>
GET /groups/{groupId}/members/{identity}/metadata
setContextMetadata(groupId, contextId, request): Promise<void>
PUT /groups/{groupId}/contexts/{contextId}/metadata
getContextMetadata(groupId, contextId): Promise<MetadataRecord | null>
GET /groups/{groupId}/contexts/{contextId}/metadata
Method
Endpoint
createGroupInvitation(groupId, request?): Promise<…InvitationResponseData>
POST /groups/{groupId}/invite
joinGroup(request): Promise<JoinGroupResponseData>
POST /groups/join
joinSubgroupInheritance(groupId): Promise<JoinSubgroupInheritanceResponseData>
POST /groups/{groupId}/join-via-inheritance
listSubgroups(groupId): Promise<SubgroupEntry[]>
GET /groups/{groupId}/subgroups
reparentGroup(childGroupId, request): Promise<ReparentGroupResponseData>
POST /groups/{childGroupId}/reparent
detachContextFromGroup(groupId, contextId, request?): Promise<void>
POST /groups/{groupId}/contexts/{contextId}/remove
issueOwnershipProof(groupId, request?): Promise<unknown>
POST /groups/{groupId}/issue-ownership-proof
issueNamespaceOwnershipProof(groupId, request?): Promise<unknown>
POST /groups/{groupId}/issue-namespace-ownership-proof
Method
Endpoint
syncGroup(groupId, request?): Promise<SyncGroupResponseData>
POST /groups/{groupId}/sync
registerGroupSigningKey(groupId, request): Promise<RegisterGroupSigningKeyResponseData>
POST /groups/{groupId}/signing-key
upgradeGroup(groupId, request): Promise<UpgradeGroupResponseData>
POST /groups/{groupId}/upgrade
getGroupUpgradeStatus(groupId): Promise<GroupUpgradeStatusResponseData>
GET /groups/{groupId}/upgrade/status
retryGroupUpgrade(groupId, request?): Promise<RetryGroupUpgradeResponseData>
POST /groups/{groupId}/upgrade/retry
getMigrationStatus(namespaceId): Promise<MigrationStatus>
GET /groups/{namespaceId}/migration-status
getCascadeStatus(namespaceId): Promise<CascadeStatusEntry[]>
GET /groups/{namespaceId}/cascade-status
abortMigration(namespaceId, request?): Promise<unknown>
POST /groups/{namespaceId}/migration/abort
Method
Endpoint
getTeeInfo(): Promise<TeeInfoResponseData>
GET /tee/info
teeAttest(request): Promise<TeeAttestResponseData>
POST /tee/attest
teeVerifyQuote(request): Promise<TeeVerifyQuoteResponseData>
POST /tee/verify-quote
Method
Endpoint
getPeersCount(): Promise<{ count: number }>
GET /peers
getNetworkStatus(): Promise<unknown>
GET /network/status
getUsage(): Promise<unknown>
GET /usage
getCertificate(): Promise<string>
GET /certificate
contextStateHash : string ;
applicationVersion ?: string ;
// The element type of getContexts() / getContextsForApplication() results.
interface ContextWithGroup extends Context {
groupId ?: string ; // owning group, when the context belongs to one
targetApplicationId : string ;
upgradePolicy : 'Automatic' | 'LazyOnAccess' ;
interface GroupInfo { // = GroupInfoResponseData
targetApplicationId : string ;
upgradePolicy : 'Automatic' | 'LazyOnAccess' ;
defaultCapabilities : number ; // capability bitmask
subgroupVisibility : string ;
metadata ?: MetadataRecord | null ;
activeUpgrade ?: GroupUpgradeStatus ;
interface MetadataRecord {
data : Record < string , string >;
interface BlobInfo { blobId : string ; size : number }
See admin-types.ts
for the complete set of request and response types.