prefix: compose imports: - github.com/cortezaproject/corteza/server/compose/types params: moduleLookup: &moduleLookup required: true types: - { wf: ID, } - { wf: Handle, } - { wf: ComposeModule, suffix: res } meta: label: Module description: |- Even with unique record ID across all modules, module needs to be known before doing any record operations. Mainly because records of different modules can be located in different stores. namespaceLookup: &namespaceLookup meta: { label: Namespace } required: true types: - { wf: ID, } - { wf: Handle, } - { wf: ComposeNamespace, suffix: res } recordLookup: &recordLookup meta: { label: Record } required: true types: - { wf: ID, } - { wf: ComposeRecord, suffix: res } record: &record meta: { label: Record } required: true types: - { wf: ComposeRecord, } rvRecord: &rvRecord wf: ComposeRecord rvTotal: &rvTotal wf: UnsignedInteger meta: label: Total records found description: |- Total items that satisfy given conditions. Needs to be explicitly requested with incTotal argument rvIndex: &rvIndex wf: UnsignedInteger meta: label: Iteration counter description: |- Zero-based number iteration counter rvPageCursor: &rvPageCursor wf: String rvPageNavigation: &rvPageNavigation wf: Array filterParams: &filterParams namespace: *namespaceLookup module: *moduleLookup query: meta: { label: Query } types: - { wf: String } meta: meta: { label: Meta } types: - { wf: Meta } deleted: meta: { label: Deleted } types: - { wf: UnsignedInteger } sort: meta: { label: Sort } types: - { wf: String } limit: meta: { label: Limit } types: - { wf: UnsignedInteger } incTotal: meta: { label: Include total } types: - { wf: Boolean } incPageNavigation: meta: { label: Include page navigation } types: - { wf: Boolean } pageCursor: meta: { label: Page cursor } types: - { wf: String } edgeParams: &edgeParams namespace: *namespaceLookup module: *moduleLookup labels: &labels record: "step,workflow" compose: "step,workflow" functions: lookup: meta: short: Compose record lookup description: Find specific record by ID labels: <<: *labels params: namespace: *namespaceLookup module: *moduleLookup record: *recordLookup results: record: *rvRecord search: meta: short: Compose records search labels: <<: *labels params: *filterParams results: records: <<: *rvRecord isArray: true total: *rvTotal nextPage: *rvPageCursor prevPage: *rvPageCursor pageNavigation: *rvPageNavigation first: meta: short: Compose record lookup (oldest) labels: <<: *labels params: *edgeParams results: record: *rvRecord last: meta: short: Compose record lookup (newest) labels: <<: *labels params: *edgeParams results: record: *rvRecord each: kind: iterator meta: short: Compose records labels: <<: *labels params: *filterParams results: record: *rvRecord index: *rvIndex total: *rvTotal new: meta: short: Compose record maker description: Creates new compose record instance without saving it labels: <<: *labels params: namespace: *namespaceLookup module: *moduleLookup results: record: *rvRecord validate: meta: short: Compose record validator labels: <<: *labels params: record: *record results: valid: wf: Boolean meta: label: Set to true when record is valid create: meta: short: Compose record create labels: <<: *labels create: "step" params: record: <<: *record meta: { label: Record } required: true results: record: *rvRecord update: meta: short: Compose record update labels: <<: *labels update: "step" params: record: <<: *record meta: { label: Record } required: true results: record: *rvRecord delete: meta: short: Compose record delete labels: <<: *labels delete: "step" params: module: <<: *moduleLookup required: false namespace: <<: *namespaceLookup meta: { label: Namespace } required: false record: *recordLookup # undelete: # meta: # short: Recovers deleted record by ID # params: # record: *recordLookup report: meta: short: Report description: Compose records report labels: <<: *labels params: namespace: *namespaceLookup module: *moduleLookup metrics: required: true types: [ { wf: String } ] meta: label: Metrics for records report description: |- List of comma delimited expressions with aggregation functions (count, sum, min, avg) dimensons: required: true types: [ { wf: String } ] meta: label: Dimensons for records report description: |- List of comma delimited dimension (i.e.: group by) expressions or fields filter: required: true types: [ { wf: String } ] meta: label: Filter for records report description: |- Filter in CortezaQL format results: report: wf: Any meta: label: Complex structure holding complete records report description: |- Example of a result value []map[string]interface{}{ {"count": 3, "dimension_0": 1, "metric_0": 3}, {"count": 2, "dimension_0": 2, "metric_0": 5}, {"count": 1, "dimension_0": nil, "metric_0": nil}, } clone: meta: short: Compose record cloner description: Creates a copy of an existing record labels: <<: *labels params: namespace: *namespaceLookup module: *moduleLookup record: *recordLookup results: record: *rvRecord