# Create a context pointing at your GraphQL endpoint
csdk context create production --endpoint https://api.example.com/graphql
# Set the active context
csdk context use production
# Authenticate
csdk auth set-token <your-token>| Command | Description |
|---|---|
context |
Manage API contexts (endpoints) |
auth |
Manage authentication tokens |
config |
Manage config key-value store (per-context) |
email |
email CRUD operations |
phone-number |
phoneNumber CRUD operations |
crypto-address |
cryptoAddress CRUD operations |
connected-account |
connectedAccount CRUD operations |
audit-log |
auditLog CRUD operations |
role-type |
roleType CRUD operations |
user |
user CRUD operations |
current-ip-address |
currentIpAddress |
current-user-agent |
currentUserAgent |
current-user-id |
currentUserId |
current-user |
currentUser |
sign-out |
signOut |
send-account-deletion-email |
sendAccountDeletionEmail |
check-password |
checkPassword |
confirm-delete-account |
confirmDeleteAccount |
set-password |
setPassword |
verify-email |
verifyEmail |
reset-password |
resetPassword |
sign-in-one-time-token |
signInOneTimeToken |
sign-in |
signIn |
sign-up |
signUp |
one-time-token |
oneTimeToken |
extend-token-expires |
extendTokenExpires |
forgot-password |
forgotPassword |
send-verification-email |
sendVerificationEmail |
verify-password |
verifyPassword |
verify-totp |
verifyTotp |
Manage named API contexts (kubectl-style).
| Subcommand | Description |
|---|---|
create <name> --endpoint <url> |
Create a new context |
list |
List all contexts |
use <name> |
Set the active context |
current |
Show current context |
delete <name> |
Delete a context |
Configuration is stored at ~/.csdk/config/.
Manage authentication tokens per context.
| Subcommand | Description |
|---|---|
set-token <token> |
Store bearer token for current context |
status |
Show auth status across all contexts |
logout |
Remove credentials for current context |
Manage per-context key-value configuration variables.
| Subcommand | Description |
|---|---|
get <key> |
Get a config value |
set <key> <value> |
Set a config value |
list |
List all config values |
delete <key> |
Delete a config value |
Variables are scoped to the active context and stored at ~/.csdk/config/.
CRUD operations for Email records.
| Subcommand | Description |
|---|---|
list |
List all email records |
find-first |
Find first matching email record |
get |
Get a email by id |
create |
Create a new email |
update |
Update an existing email |
delete |
Delete a email |
Fields:
| Field | Type |
|---|---|
id |
UUID |
ownerId |
UUID |
email |
|
isVerified |
Boolean |
isPrimary |
Boolean |
createdAt |
Datetime |
updatedAt |
Datetime |
Required create fields: email
Optional create fields (backend defaults): ownerId, isVerified, isPrimary
CRUD operations for PhoneNumber records.
| Subcommand | Description |
|---|---|
list |
List all phoneNumber records |
find-first |
Find first matching phoneNumber record |
get |
Get a phoneNumber by id |
create |
Create a new phoneNumber |
update |
Update an existing phoneNumber |
delete |
Delete a phoneNumber |
Fields:
| Field | Type |
|---|---|
id |
UUID |
ownerId |
UUID |
cc |
String |
number |
String |
isVerified |
Boolean |
isPrimary |
Boolean |
createdAt |
Datetime |
updatedAt |
Datetime |
Required create fields: cc, number
Optional create fields (backend defaults): ownerId, isVerified, isPrimary
CRUD operations for CryptoAddress records.
| Subcommand | Description |
|---|---|
list |
List all cryptoAddress records |
find-first |
Find first matching cryptoAddress record |
get |
Get a cryptoAddress by id |
create |
Create a new cryptoAddress |
update |
Update an existing cryptoAddress |
delete |
Delete a cryptoAddress |
Fields:
| Field | Type |
|---|---|
id |
UUID |
ownerId |
UUID |
address |
String |
isVerified |
Boolean |
isPrimary |
Boolean |
createdAt |
Datetime |
updatedAt |
Datetime |
Required create fields: address
Optional create fields (backend defaults): ownerId, isVerified, isPrimary
CRUD operations for ConnectedAccount records.
| Subcommand | Description |
|---|---|
list |
List all connectedAccount records |
find-first |
Find first matching connectedAccount record |
get |
Get a connectedAccount by id |
create |
Create a new connectedAccount |
update |
Update an existing connectedAccount |
delete |
Delete a connectedAccount |
Fields:
| Field | Type |
|---|---|
id |
UUID |
ownerId |
UUID |
service |
String |
identifier |
String |
details |
JSON |
isVerified |
Boolean |
createdAt |
Datetime |
updatedAt |
Datetime |
Required create fields: service, identifier, details
Optional create fields (backend defaults): ownerId, isVerified
CRUD operations for AuditLog records.
| Subcommand | Description |
|---|---|
list |
List all auditLog records |
find-first |
Find first matching auditLog record |
get |
Get a auditLog by id |
create |
Create a new auditLog |
update |
Update an existing auditLog |
delete |
Delete a auditLog |
Fields:
| Field | Type |
|---|---|
id |
UUID |
event |
String |
actorId |
UUID |
origin |
Origin |
userAgent |
String |
ipAddress |
InternetAddress |
success |
Boolean |
createdAt |
Datetime |
Required create fields: event, success
Optional create fields (backend defaults): actorId, origin, userAgent, ipAddress
CRUD operations for RoleType records.
| Subcommand | Description |
|---|---|
list |
List all roleType records |
find-first |
Find first matching roleType record |
get |
Get a roleType by id |
create |
Create a new roleType |
update |
Update an existing roleType |
delete |
Delete a roleType |
Fields:
| Field | Type |
|---|---|
id |
Int |
name |
String |
Required create fields: name
CRUD operations for User records.
| Subcommand | Description |
|---|---|
list |
List all user records |
find-first |
Find first matching user record |
search <query> |
Search user records |
get |
Get a user by id |
create |
Create a new user |
update |
Update an existing user |
delete |
Delete a user |
Fields:
| Field | Type |
|---|---|
id |
UUID |
username |
String |
displayName |
String |
profilePicture |
Image |
searchTsv |
FullText |
type |
Int |
createdAt |
Datetime |
updatedAt |
Datetime |
searchTsvRank |
Float |
displayNameTrgmSimilarity |
Float |
searchScore |
Float |
Optional create fields (backend defaults): username, displayName, profilePicture, type
Unified Search API fields:
searchTsv,displayNameTrgmSimilarity,searchScoreFields provided by the Unified Search plugin. Includes full-text search (tsvector/BM25), trigram similarity scores, and the combined searchScore. Computed fields are read-only and cannot be set in create/update operations.
Search Examples:
Full-text search via tsvector (searchTsv):
csdk user list --where.searchTsv "search query" --select title,tsvRankFuzzy search via trigram similarity (trgmDisplayName):
csdk user list --where.trgmDisplayName.value "approximate query" --where.trgmDisplayName.threshold 0.3 --select title,displayNameTrgmSimilarityComposite search (unifiedSearch dispatches to all text adapters):
csdk user list --where.unifiedSearch "search query" --select title,tsvRank,displayNameTrgmSimilarity,searchScoreSearch with pagination and field projection:
csdk user list --where.unifiedSearch "query" --limit 10 --select id,title,searchScore
csdk user search "query" --limit 10 --select id,title,searchScorecurrentIpAddress
- Type: query
- Arguments: none
currentUserAgent
- Type: query
- Arguments: none
currentUserId
- Type: query
- Arguments: none
currentUser
- Type: query
- Arguments: none
signOut
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString
sendAccountDeletionEmail
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString
checkPassword
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.passwordString
confirmDeleteAccount
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.userIdUUID --input.tokenString
setPassword
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.currentPasswordString --input.newPasswordString
verifyEmail
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailIdUUID --input.tokenString
resetPassword
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.roleIdUUID --input.resetTokenString --input.newPasswordString
signInOneTimeToken
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.tokenString --input.credentialKindString
signIn
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailString --input.passwordString --input.rememberMeBoolean --input.credentialKindString --input.csrfTokenString
signUp
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailString --input.passwordString --input.rememberMeBoolean --input.credentialKindString --input.csrfTokenString
oneTimeToken
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailString --input.passwordString --input.originOrigin --input.rememberMeBoolean
extendTokenExpires
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.amountIntervalInput
forgotPassword
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailEmail
sendVerificationEmail
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.emailEmail
verifyPassword
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.passwordString (required)
verifyTotp
-
Type: mutation
-
Arguments:
Argument Type --input.clientMutationIdString --input.totpValueString (required)
All commands output JSON to stdout. Pipe to jq for formatting:
csdk car list | jq '.[]'
csdk car get --id <uuid> | jq '.'Use --no-tty to skip all interactive prompts (useful for scripts and CI):
csdk --no-tty car create --name "Sedan" --year 2024Built by the Constructive team.
AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.