Skip to main content

OperationDefinition

@webda/core


Interface: OperationDefinition

Defined in: packages/core/src/core/icore.ts:112

Define an operation within webda app

Extended by​

Properties​

context?​

optional context?: any

Defined in: packages/core/src/core/icore.ts:158

Context to use for the operation

Useful to define a specific context for the operation


deprecated?​

optional deprecated?: boolean

Defined in: packages/core/src/core/icore.ts:174

Mark the operation as deprecated


description?​

optional description?: string

Defined in: packages/core/src/core/icore.ts:166

Full description of the operation


dryRun?​

optional dryRun?: "execute" | "delegate" | "skip"

Defined in: packages/core/src/core/icore.ts:249

How the operation behaves when the call runs in dry mode

  • "execute": it has no side effects, so it runs normally (default for read-only operations)
  • "delegate": the method is called and handles dry mode itself through useDryRun() ("dryable")
  • "skip": the method is NOT called; the call is validated, logged and reported (default for everything else)

extensions?​

optional extensions?: Record<string, unknown>

Defined in: packages/core/src/core/icore.ts:232

Additional transport hints for future extensibility


featureFlag?​

optional featureFlag?: string | true

Defined in: packages/core/src/core/icore.ts:238

Feature flag gating the operation. When the flag is off for the caller the operation answers NotFound and is left out of listings. true uses the operation id as flag name.


featureFlags?​

optional featureFlags?: string[]

Defined in: packages/core/src/core/icore.ts:242

Feature flags gating the operation (from definition + pattern mappings)


generator?​

optional generator?: boolean

Defined in: packages/core/src/core/icore.ts:220

The method is an async generator (set by the

Operation​

decorator)


graphql?​

optional graphql?: false | { mutation?: string; query?: string; subscription?: string; }

Defined in: packages/core/src/core/icore.ts:204

GraphQL transport hints

Set to false to explicitly exclude from GraphQL transport. Provide an object to specify query, mutation, or subscription mappings.


grpc?​

optional grpc?: false | { streaming?: OperationStreaming; }

Defined in: packages/core/src/core/icore.ts:197

gRPC transport hints

Set to false to explicitly exclude from gRPC transport. Provide an object to specify streaming mode.


hidden?​

optional hidden?: boolean

Defined in: packages/core/src/core/icore.ts:178

Hide the operation from transport exposure


id​

id: string

Defined in: packages/core/src/core/icore.ts:116

Id of the operation


input​

input: string

Defined in: packages/core/src/core/icore.ts:120

Schema name for operation input. Use "void" for no input.


maxMfaAge?​

optional maxMfaAge?: string | number

Defined in: packages/core/src/core/icore.ts:136

Require the second factor to be verified within this duration (Duration syntax: 600, "10m")

Implies a logged session with a verified second factor: refused with MFA_REQUIRED (403) when the user has no second factor, MFA_STEP_UP_REQUIRED (401, details.maxAge in seconds) when it was verified too long ago


mcp?​

optional mcp?: false | { destructive?: boolean; readOnly?: boolean; title?: string; }

Defined in: packages/core/src/core/icore.ts:211

MCP transport hints

Set to false to explicitly exclude from the MCP transport. Provide an object to set the tool title or override the read-only/destructive hints.

Union Members​

false


Type Literal​

{ destructive?: boolean; readOnly?: boolean; title?: string; }

destructive?​

optional destructive?: boolean

Override the derived destructiveHint

readOnly?​

optional readOnly?: boolean

Override the derived readOnlyHint

title?​

optional title?: string

Human-friendly tool title


method​

method: string

Defined in: packages/core/src/core/icore.ts:152

Method implementing the operation


model?​

optional model?: string

Defined in: packages/core/src/core/icore.ts:148

Model implementing the operation

Either service or model should be defined


output​

output: string

Defined in: packages/core/src/core/icore.ts:124

Schema name for operation output. Use "void" for no output.


permission?​

optional permission?: WebdaQLString<unknown>

Defined in: packages/core/src/core/icore.ts:129

WebdaQL to execute on session to know if operation is available to user


rest?​

optional rest?: false | { body?: string; method: "get" | "post" | "put" | "delete" | "patch"; path: string; responses?: {[statusCode: string]: object; }; }

Defined in: packages/core/src/core/icore.ts:190

REST transport hints

Set to false to explicitly exclude from REST transport. Provide an object to specify REST method, path, and response definitions.

Union Members​

false


Type Literal​

{ body?: string; method: "get" | "post" | "put" | "delete" | "patch"; path: string; responses?: {[statusCode: string]: object; }; }

body?​

optional body?: string

Method parameter receiving the whole JSON body.

method​

method: "get" | "post" | "put" | "delete" | "patch"

path​

path: string

responses?​

optional responses?: object

Index Signature​

[statusCode: string]: object


service?​

optional service?: string

Defined in: packages/core/src/core/icore.ts:142

Service implementing the operation

Either service or model should be defined


static?​

optional static?: boolean

Defined in: packages/core/src/core/icore.ts:183

Whether this is a static (class-level) or instance method Used by callOperation to determine if model instance needs to be loaded


streaming?​

optional streaming?: OperationStreaming

Defined in: packages/core/src/core/icore.ts:216

Streaming mode, set by registerOperation from the schemas (x-webda-stream), the generator flag or grpc.streaming


summary?​

optional summary?: string

Defined in: packages/core/src/core/icore.ts:162

Short summary of the operation


tags?​

optional tags?: string[]

Defined in: packages/core/src/core/icore.ts:170

Categorization tags for the operation


transaction?​

optional transaction?: boolean

Defined in: packages/core/src/core/icore.ts:228

Run the operation in a transaction of the registered participants (e.g. a SQL store with transaction: "operation")

false opts the operation out, e.g. a long streaming read that should not hold a connection; undefined lets the participants decide. A nested operation always joins the transaction of the outermost one.