JavaScript: Organizations, projects and keys
Manage organizations, members, invites, roles, project settings, API keys and project databases with @sovaria/sdk.
These methods manage your Sovaria account itself — organizations, team members, projects, keys and databases. They need a team member's session (console login or CLI token), never an app user's.
await sovaria.graph.createInvite(orgId, { email: 'sam@example.com', role: 'MEMBER' })
const members = await sovaria.graph.listMembers(orgId)Organizations, members and settings
sovaria.graph.createNode
Create node.
sovaria.graph.createNode(
nodeType: string,
name: string,
metadata?: JsonObject = {},
): Promise<JsonObject>Parameters
nodeTypestringrequirednamestringrequiredmetadataJsonObjectoptionaldefault{}
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/org
sovaria.graph.createEdge
Create edge.
sovaria.graph.createEdge(
sourceId: string,
targetId: string,
relationType: string,
role?: string,
): Promise<JsonObject>Parameters
sourceIdstringrequiredtargetIdstringrequiredrelationTypestringrequiredrolestringoptional
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/edge
sovaria.graph.addMember
Add member.
sovaria.graph.addMember(
orgId: string,
userId: string,
role?: string = 'MEMBER',
): Promise<JsonObject>Parameters
orgIdstringrequireduserIdstringrequiredrolestringoptionaldefault'MEMBER'
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/org/{…}/member
sovaria.graph.getContext
Get context.
sovaria.graph.getContext(userId: string, resourceId: string): Promise<JsonObject>Parameters
userIdstringrequiredresourceIdstringrequired
- Returns
Promise<JsonObject>- HTTP
GET /api/v1/context/{…}/{…}
sovaria.graph.listNodes
List nodes.
sovaria.graph.listNodes(nodeType?: string): Promise<JsonValue>Parameters
nodeTypestringoptional
- Returns
Promise<JsonValue>- HTTP
GET /api/v1/org
sovaria.graph.getNode
Get node.
sovaria.graph.getNode(nodeId: string): Promise<JsonObject>Parameters
nodeIdstringrequired
- Returns
Promise<JsonObject>- HTTP
GET /api/v1/org/{…}
sovaria.graph.getChildren
Get children.
sovaria.graph.getChildren(parentId: string, relation?: string = 'OWNS'): Promise<JsonValue>Parameters
parentIdstringrequiredrelationstringoptionaldefault'OWNS'
- Returns
Promise<JsonValue>- HTTP
GET /api/v1/org/{…}/children
sovaria.graph.updateOrg
Update org.
sovaria.graph.updateOrg(orgId: string, body: JsonObject): Promise<JsonObject>Parameters
orgIdstringrequiredbodyJsonObjectrequired
- Returns
Promise<JsonObject>- HTTP
PUT /api/v1/org/{…}
sovaria.graph.deleteOrg
Delete org.
sovaria.graph.deleteOrg(orgId: string): Promise<JsonObject>Parameters
orgIdstringrequired
- Returns
Promise<JsonObject>- HTTP
DELETE /api/v1/org/{…}
sovaria.graph.setOrgPlan
Set org plan.
sovaria.graph.setOrgPlan(orgId: string, body: JsonObject): Promise<JsonObject>Parameters
orgIdstringrequiredbodyJsonObjectrequired
- Returns
Promise<JsonObject>- HTTP
PUT /api/v1/org/{…}/plan
sovaria.graph.listMembers
List members.
sovaria.graph.listMembers(orgId: string): Promise<JsonValue>Parameters
orgIdstringrequired
- Returns
Promise<JsonValue>- HTTP
GET /api/v1/org/{…}/members
sovaria.graph.removeMember
Remove member.
sovaria.graph.removeMember(orgId: string, userId: string): Promise<JsonObject>Parameters
orgIdstringrequireduserIdstringrequired
- Returns
Promise<JsonObject>- HTTP
DELETE /api/v1/org/{…}/member/{…}
sovaria.graph.updateMember
Update member.
sovaria.graph.updateMember(orgId: string, userId: string, body: JsonObject): Promise<JsonObject>Parameters
orgIdstringrequireduserIdstringrequiredbodyJsonObjectrequired
- Returns
Promise<JsonObject>- HTTP
PUT /api/v1/org/{…}/member/{…}
sovaria.graph.createInvite
Create invite.
sovaria.graph.createInvite(orgId: string, body: JsonObject): Promise<JsonObject>Parameters
orgIdstringrequired- Organization id.
bodyJsonObjectrequiredemailandrole(OWNER,ADMIN,MEMBERorVIEWER).
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/org/{…}/invites
sovaria.graph.acceptInvite
Accept invite.
sovaria.graph.acceptInvite(body: JsonObject): Promise<JsonObject>Parameters
bodyJsonObjectrequired
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/org/invites/accept
sovaria.graph.getRoleMatrix
Get role matrix.
sovaria.graph.getRoleMatrix(): Promise<JsonObject>- Returns
Promise<JsonObject>- HTTP
GET /api/v1/roles/matrix
sovaria.graph.setRoleMatrix
Set role matrix.
sovaria.graph.setRoleMatrix(body: JsonObject): Promise<JsonObject>Parameters
bodyJsonObjectrequired
- Returns
Promise<JsonObject>- HTTP
PUT /api/v1/roles/matrix
sovaria.graph.getRoleCatalog
Get role catalog.
sovaria.graph.getRoleCatalog(): Promise<JsonValue>- Returns
Promise<JsonValue>- HTTP
GET /api/v1/roles/catalog
sovaria.graph.getProjectRef
Get project ref.
sovaria.graph.getProjectRef(projectId: string): Promise<JsonObject>Parameters
projectIdstringrequired
- Returns
Promise<JsonObject>- HTTP
GET /api/v1/org/{…}/ref
sovaria.graph.getProjectSettings
Get project settings.
sovaria.graph.getProjectSettings(): Promise<JsonObject>- Returns
Promise<JsonObject>- HTTP
GET /api/v1/project-settings
sovaria.graph.setProjectSettings
Set project settings.
sovaria.graph.setProjectSettings(body: JsonObject): Promise<JsonObject>Parameters
bodyJsonObjectrequired- Settings to change (merged with the current ones), e.g.
allowedOrigins,stagingFirst.
- Returns
Promise<JsonObject>- HTTP
PUT /api/v1/project-settings
API keys
sovaria.keys.list
List.
sovaria.keys.list(): Promise<JsonValue>- Returns
Promise<JsonValue>- HTTP
GET /api/v1/apikeys
sovaria.keys.create
Create.
sovaria.keys.create(payload: JsonObject): Promise<JsonObject>Parameters
payloadJsonObjectrequired- Name, role and optional expiry for a custom key.
- Returns
Promise<JsonObject>- HTTP
POST /api/v1/apikeys
- The key value is shown once in the response. Store it in a secret manager.
sovaria.keys.ensureDefaults
Ensure defaults.
sovaria.keys.ensureDefaults(): Promise<JsonObject>- Returns
Promise<JsonObject>- HTTP
POST /api/v1/apikeys/ensure-defaults
sovaria.keys.revoke
Revoke.
sovaria.keys.revoke(keyId: string): Promise<JsonObject>Parameters
keyIdstringrequired- The key id (not the key value).
- Returns
Promise<JsonObject>- HTTP
DELETE /api/v1/apikeys/{…}
Databases and regions
sovaria.governance.listRegions
List regions.
sovaria.governance.listRegions(): Promise<JsonValue>- Returns
Promise<JsonValue>
sovaria.governance.listAvailableRegions
List available regions.
sovaria.governance.listAvailableRegions(
query?: { size?: string; plan?: string },
): Promise<JsonValue>Parameters
query{ size?: string; plan?: string }optional
- Returns
Promise<JsonValue>
sovaria.governance.getTenant
Get tenant.
sovaria.governance.getTenant(orgId: string): Promise<JsonObject>Parameters
orgIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.listTenantDatabases
List tenant databases.
sovaria.governance.listTenantDatabases(orgId: string): Promise<JsonValue>Parameters
orgIdstringrequired
- Returns
Promise<JsonValue>
sovaria.governance.provisionDatabase
Provision database.
sovaria.governance.provisionDatabase(orgId: string, body: JsonObject): Promise<JsonObject>Parameters
orgIdstringrequiredbodyJsonObjectrequired
- Returns
Promise<JsonObject>
sovaria.governance.getDatabaseConnection
Get database connection.
sovaria.governance.getDatabaseConnection(orgId: string, projectId: string): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.revealDatabaseConnection
Reveal database connection.
sovaria.governance.revealDatabaseConnection(
orgId: string,
projectId: string,
): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.pauseDatabase
Pause database.
sovaria.governance.pauseDatabase(orgId: string, projectId: string): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.resumeDatabase
Resume database.
sovaria.governance.resumeDatabase(orgId: string, projectId: string): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.resizeDatabase
Resize database.
sovaria.governance.resizeDatabase(
orgId: string,
projectId: string,
body: JsonObject,
): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequiredbodyJsonObjectrequired
- Returns
Promise<JsonObject>
sovaria.governance.deleteDatabase
Delete database.
sovaria.governance.deleteDatabase(
orgId: string,
projectId: string,
snapshot?: boolean = true,
): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequiredsnapshotbooleanoptionaldefaulttrue
- Returns
Promise<JsonObject>
sovaria.governance.listDatabaseBackups
List database backups.
sovaria.governance.listDatabaseBackups(
orgId: string,
projectId: string,
limit?: number = 5,
): Promise<JsonValue>Parameters
orgIdstringrequiredprojectIdstringrequiredlimitnumberoptionaldefault5
- Returns
Promise<JsonValue>
sovaria.governance.triggerDatabaseBackup
Trigger database backup.
sovaria.governance.triggerDatabaseBackup(orgId: string, projectId: string): Promise<JsonObject>Parameters
orgIdstringrequiredprojectIdstringrequired
- Returns
Promise<JsonObject>
sovaria.governance.projectMetrics
Project metrics.
sovaria.governance.projectMetrics(
projectId: string,
since?: string = '24',
limit?: number = 500,
): Promise<JsonObject>Parameters
projectIdstringrequiredsincestringoptionaldefault'24'limitnumberoptionaldefault500
- Returns
Promise<JsonObject>