Skip to main content

Built-in Resources

VEF registers several RPC resources for you when the corresponding modules are enabled in the default boot chain.

Unless noted otherwise:

  • resources in this page are RPC resources mounted under /api
  • operations use the standard RPC request envelope: resource, action, version, params, and meta
  • non-public operations inherit the API engine's default Bearer authentication
  • operations without a custom rate limit inherit the API engine default rate limit The stock engine default is 100 requests per 5 minutes, but applications may override it

Resource Overview

ResourceModuleDefault access modelNotes
security/authsecurityMixed: some actions are public, some require Bearer authLogin flow, token refresh, logout, challenge resolution, current-user info
sys/storagestorageBearer auth by defaultFile upload, presigned URL generation, temporary object cleanup, object metadata, object listing
sys/schemaschemaBearer auth by defaultDatabase schema inspection
sys/monitormonitorBearer auth by defaultRuntime and host monitoring data

security/auth

Authentication resource provided by the security module.

Operations

ActionAccessRate limitPurposeParams
loginPublicmax = vef.security.login_rate_limit (module default 6)Authenticates a user or external app and returns either tokens or the first pending login challengeLoginParams
refreshPublicmax = vef.security.refresh_rate_limit (module default 1)Exchanges a valid refresh token for a fresh token pairRefreshParams
logoutBearer auth requiredAPI engine defaultReturns success immediately; token invalidation is expected to happen on the client sideNone
resolve_challengePublicmax = vef.security.login_rate_limit (module default 6)Resolves the current login challenge and returns either the next challenge or final tokensResolveChallengeParams
get_user_infoBearer auth requiredAPI engine defaultLoads current-user profile, menus, permission tokens, and other session data through security.UserInfoLoaderRaw params map, application-defined

login parameters

ParameterTypeRequiredDescription
typestringYesLogin type. The built-in login flow currently supports password only
principalstringYesLogin identifier, typically the username
credentialsstringYesLogin credential. For type = "password", this is the plaintext password

Minimal request example:

{
"resource": "security/auth",
"action": "login",
"version": "v1",
"params": {
"type": "password",
"principal": "alice",
"credentials": "secret"
}
}

refresh parameters

ParameterTypeRequiredDescription
refreshTokenstringYesRefresh token that will be validated and exchanged for a new token pair

resolve_challenge parameters

ParameterTypeRequiredDescription
challengeTokenstringYesChallenge-state token returned by a previous login or resolve_challenge call
typestringYesChallenge type currently being resolved, such as totp or another provider-specific challenge identifier
responseanyYesChallenge response payload consumed by the matching security.ChallengeProvider

get_user_info parameters

This action does not define a typed params struct. Any params object is forwarded to security.UserInfoLoader.LoadUserInfo(...).

ParameterTypeRequiredDescription
Framework-defined parametersNoneNoThe framework does not reserve fixed keys here
Application-defined parametersobjectNoOptional extension data interpreted by your own security.UserInfoLoader implementation

Notes:

  • if no security.UserInfoLoader is registered, this action returns not implemented
  • response shape is defined by security.UserInfo

sys/storage

Storage resource provided by the storage module.

Operations

ActionAccessRate limitPurposeParams
uploadBearer auth requiredAPI engine defaultUploads one file into storage and returns object metadataUploadParams via multipart form
get_presigned_urlBearer auth requiredAPI engine defaultGenerates a temporary presigned URL for object accessGetPresignedURLParams
delete_tempBearer auth requiredAPI engine defaultDeletes an object only when its key is under the temp/ prefixDeleteTempParams
statBearer auth requiredAPI engine defaultReturns metadata for one objectStatParams
listBearer auth requiredAPI engine defaultLists objects under a prefixListParams

Only the actions above are registered as built-in RPC operations. The underlying service supports more capabilities such as copy and move, but they are not exposed here by default.

Related HTTP route:

  • /storage/files/<key> is an app-level download proxy route, not an RPC action
  • it does not automatically inherit RPC Bearer authentication

upload parameters

This action expects multipart/form-data, not a JSON RPC body. Multipart fields are decoded into params.

ParameterTypeRequiredDescription
filefileYesUploaded file content. This is required and maps to *multipart.FileHeader
contentTypestringNoExplicit content type override. If omitted, the server uses the uploaded file header content type
metadataobject<string, string>NoOptional storage metadata map passed to the storage service

Notes:

  • object keys are generated server-side under a date-based temp/YYYY/MM/DD/... path
  • the original filename is automatically stored in metadata
  • JSON requests are rejected for this action

get_presigned_url parameters

ParameterTypeRequiredDescription
keystringYesObject key to access
expiresintNoExpiration time in seconds. Defaults to 3600
methodstringNoHTTP method used when signing the URL. Defaults to GET

delete_temp parameters

ParameterTypeRequiredDescription
keystringYesObject key to delete. Must start with temp/

stat parameters

ParameterTypeRequiredDescription
keystringYesObject key whose metadata should be returned

list parameters

ParameterTypeRequiredDescription
prefixstringNoPrefix filter used for object listing
recursiveboolNoWhether to list recursively instead of only the current prefix level
maxKeysintNoMaximum number of objects to return

Minimal request example:

{
"resource": "sys/storage",
"action": "list",
"version": "v1",
"params": {
"prefix": "temp/",
"recursive": false
}
}

sys/schema

Schema inspection resource provided by the schema module.

Operations

ActionAccessRate limitPurposeParams
list_tablesBearer auth requiredCustom operation max 60Returns all tables in the current database or schemaNone
get_table_schemaBearer auth requiredCustom operation max 60Returns detailed schema information for one tableGetTableSchemaParams
list_viewsBearer auth requiredCustom operation max 60Returns all views in the current database or schemaNone
list_triggersBearer auth requiredCustom operation max 60Returns all triggers in the current database or schemaNone

get_table_schema parameters

ParameterTypeRequiredDescription
namestringYesTable name to inspect

sys/monitor

Monitoring resource provided by the monitor module.

Operations

ActionAccessRate limitPurposeParams
get_overviewBearer auth requiredCustom operation max 60Returns a combined system overview snapshotNone
get_cpuBearer auth requiredCustom operation max 60Returns CPU information and usage dataNone
get_memoryBearer auth requiredCustom operation max 60Returns memory usage informationNone
get_diskBearer auth requiredCustom operation max 60Returns disk and partition informationNone
get_networkBearer auth requiredCustom operation max 60Returns network interface and I/O statisticsNone
get_hostBearer auth requiredCustom operation max 60Returns static host informationNone
get_processBearer auth requiredCustom operation max 60Returns information about the current application processNone
get_loadBearer auth requiredCustom operation max 60Returns system load averagesNone
get_build_infoBearer auth requiredCustom operation max 60Returns application build metadataNone

Notes:

  • these actions do not accept framework-defined input parameters
  • some actions may return a monitor-not-ready error when the underlying data source is unavailable

Minimal request example:

{
"resource": "sys/monitor",
"action": "get_overview",
"version": "v1"
}

Approval resources

If you explicitly include the approval module, the framework also registers additional approval/* resources.

Those resources are intentionally not expanded in this page because they are domain-level workflow resources, not the framework's core general-purpose built-ins.

See also