@devkong/cli 0.0.65 → 0.0.67-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devkong/cli",
3
- "version": "0.0.65",
3
+ "version": "0.0.67-1",
4
4
  "type": "commonjs",
5
5
  "main": "./index.js",
6
6
  "typings": "./index.d.ts",
@@ -10,4 +10,4 @@
10
10
  "dependencies": {
11
11
  "@napi-rs/keyring": "1.1.6"
12
12
  }
13
- }
13
+ }
@@ -1,4 +1,6 @@
1
1
  export declare class ConfigureCommand {
2
+ private readonly verbose;
3
+ constructor(verbose?: boolean);
2
4
  execute(): Promise<void>;
3
5
  private selectProfile;
4
6
  private configureProfile;
@@ -2,6 +2,8 @@ import { UrlText } from "@kong/ts";
2
2
  export interface Profile {
3
3
  kongBaseUrl: UrlText;
4
4
  userName: string;
5
+ authType?: "local" | "domain";
6
+ idpHint?: string;
5
7
  }
6
8
  export type ProfileName = "default" | string;
7
9
  export type ProfileMap = Record<ProfileName, Profile>;
@@ -0,0 +1,8 @@
1
+ export interface DomainLoginTokens {
2
+ accessToken: string;
3
+ refreshToken: string;
4
+ expiresIn: number;
5
+ preferredUsername?: string;
6
+ email?: string;
7
+ }
8
+ export declare function loginWithBrowser(kongBaseUrl: string, verbose?: boolean): Promise<DomainLoginTokens>;
@@ -1,7 +1,7 @@
1
1
  export { makeServerlessJavaAppProps, serverlessFlowBuilder, stringifyServerlessFlow, } from "./lib/kongServerless";
2
2
  export type { FloweyServerlessBuilder } from "./lib/kongServerless";
3
3
  export type { KongSpecJobSession } from "./lib/kongSession";
4
- export type { KongSpecAction, KongSpecActionCallFunction, KongSpecActionCallProcess, KongSpecActionDelay, KongSpecActionInject, KongSpecActionSendEvent, KongSpecAnnotation, KongSpecBranch, KongSpecCache, KongSpecCallModel, KongSpecCircuitBreaker, KongSpecCondition, KongSpecEffect, KongSpecEffectStatus, KongSpecError, KongSpecEventBroker, KongSpecEventConnection, KongSpecFeatureCompensation, KongSpecFlow, KongSpecFunctionRef, KongSpecHowToInvoke, KongSpecHowToOutput, KongSpecHowToStore, KongSpecOutputAppend, KongSpecProcessRef, KongSpecRecord, KongSpecRecordHeader, KongSpecRetry, KongSpecRule, KongSpecSecretRef, KongSpecState, KongSpecStateCallFunction, KongSpecStateCallProcess, KongSpecStateCompensate, KongSpecStateDelay, KongSpecStateExit, KongSpecStateFail, KongSpecStateForeach, KongSpecStateInject, KongSpecStateParallel, KongSpecStateRule, KongSpecStateSendEvent, KongSpecStateStart, KongSpecStateSucceed, KongSpecStateSwitch, KongSpecStateWaitEvent, KongSpecStoreRetryControl, KongSpecSupportsActions, KongSpecSupportsErrors, KongSpecSupportsOutputSample, KongSpecSupportsTransition, } from "./lib/kongSpec";
4
+ export type { KongSpecAction, KongSpecActionCallFunction, KongSpecActionCallProcess, KongSpecActionDelay, KongSpecActionInject, KongSpecActionSendEvent, KongSpecAnnotation, KongSpecBranch, KongSpecCache, KongSpecCallModel, KongSpecCircuitBreaker, KongSpecCondition, KongSpecEffect, KongSpecEffectStatus, KongSpecError, KongSpecEventBroker, KongSpecEventConnection, KongSpecFeatureCompensation, KongSpecFlow, KongSpecFunctionRef, KongSpecHowToInvoke, KongSpecHowToOutput, KongSpecHowToStore, KongSpecOutputAppend, KongSpecProcessRef, KongSpecRecord, KongSpecRecordHeader, KongSpecRetry, KongSpecRule, KongSpecSecretRef, KongSpecState, KongSpecStateCallFunction, KongSpecStateCallProcess, KongSpecStateCompensate, KongSpecStateDelay, KongSpecStateExit, KongSpecStateFail, KongSpecStateForeach, KongSpecStateInject, KongSpecStateParallel, KongSpecStateResult, KongSpecStateRule, KongSpecStateSendEvent, KongSpecStateStart, KongSpecStateSucceed, KongSpecStateSwitch, KongSpecStateWaitEvent, KongSpecStoreRetryControl, KongSpecSupportsActions, KongSpecSupportsErrors, KongSpecSupportsOutputSample, KongSpecSupportsTransition, } from "./lib/kongSpec";
5
5
  export { KongSpecBuild } from "./lib/kongSpecBuild";
6
6
  export { KongSpecDoc } from "./lib/kongSpecDoc";
7
7
  export { KongSpecEnv } from "./lib/kongSpecEnv";
@@ -13,6 +13,6 @@ export { normalizeName } from "./lib/kongSpecNormalize";
13
13
  export { KongSpecRef } from "./lib/kongSpecRef";
14
14
  export type { KongSpecActionPath, KongSpecStatePath } from "./lib/kongSpecRef";
15
15
  export { convertSpecToServerless } from "./lib/kongSpecToServerless";
16
- export { findSourceState, getActions, getDependencies, outputAggregator, outputAggregatorUnsafe, parallelStateOutputAggregator, traverseFlowUp, } from "./lib/kongSpecUtils";
16
+ export { findSourceState, getActions, getConnectedExitStates, getDependencies, outputAggregator, outputAggregatorUnsafe, parallelStateOutputAggregator, parallelStateOutputAggregatorUnsafe, traverseFlowUp, } from "./lib/kongSpecUtils";
17
17
  export { validate } from "./lib/kongSpecValidate";
18
18
  export type { KongSpecValidationIssue, KongSpecValidators } from "./lib/kongSpecValidate";
@@ -13,7 +13,7 @@ export interface KongSpecProcessRef {
13
13
  interface KongSpecStateBase {
14
14
  id: Distinct<string, "KongSpecStateId">;
15
15
  name: string;
16
- type: "start" | "succeed" | "fail" | "inject" | "compensate" | "foreach" | "callFunction" | "delay" | "parallel" | "rule" | "switch" | "sendEvent" | "waitEvent" | "callProcess";
16
+ type: "start" | "succeed" | "fail" | "result" | "inject" | "compensate" | "foreach" | "callFunction" | "delay" | "parallel" | "rule" | "switch" | "sendEvent" | "waitEvent" | "callProcess";
17
17
  }
18
18
  export interface KongSpecSupportsTransition {
19
19
  next: KongSpecStateBase["id"] | null;
@@ -136,6 +136,10 @@ export interface KongSpecStateSucceed extends KongSpecStateBase, KongSpecSupport
136
136
  export interface KongSpecStateFail extends KongSpecStateBase, KongSpecSupportsOutputFilter {
137
137
  type: "fail";
138
138
  }
139
+ export interface KongSpecStateResult extends KongSpecStateBase, KongSpecSupportsOutputFilter {
140
+ type: "result";
141
+ status: string;
142
+ }
139
143
  export interface KongSpecStateInject extends KongSpecStateBase, KongSpecSupportsOutputFilter, KongSpecSupportsOutputAppend, KongSpecSupportsTransition {
140
144
  type: "inject";
141
145
  }
@@ -251,8 +255,8 @@ export interface KongSpecStateParallel extends KongSpecStateBase, KongSpecSuppor
251
255
  branches: KongSpecBranch[];
252
256
  completionType: "allOf" | "atLeast";
253
257
  }
254
- export type KongSpecState = KongSpecStateCallFunction | KongSpecStateCallProcess | KongSpecStateCompensate | KongSpecStateDelay | KongSpecStateFail | KongSpecStateForeach | KongSpecStateInject | KongSpecStateParallel | KongSpecStateRule | KongSpecStateSendEvent | KongSpecStateStart | KongSpecStateSucceed | KongSpecStateSwitch | KongSpecStateWaitEvent;
255
- export type KongSpecStateExit = KongSpecStateFail | KongSpecStateSucceed;
258
+ export type KongSpecState = KongSpecStateCallFunction | KongSpecStateCallProcess | KongSpecStateCompensate | KongSpecStateDelay | KongSpecStateFail | KongSpecStateForeach | KongSpecStateInject | KongSpecStateParallel | KongSpecStateRule | KongSpecStateSendEvent | KongSpecStateStart | KongSpecStateResult | KongSpecStateSucceed | KongSpecStateSwitch | KongSpecStateWaitEvent;
259
+ export type KongSpecStateExit = KongSpecStateFail | KongSpecStateSucceed | KongSpecStateResult;
256
260
  interface KongSpecAnnotationBase {
257
261
  id: Distinct<string, "KongSpecAnnotationId">;
258
262
  }
@@ -1,5 +1,5 @@
1
1
  import { JqObject, Optional } from "@kong/ts";
2
- import { KongSpecActionCallFunction, KongSpecActionCallProcess, KongSpecActionDelay, KongSpecActionInject, KongSpecActionSendEvent, KongSpecAnnotation, KongSpecBranch, KongSpecCallModel, KongSpecCondition, KongSpecError, KongSpecEventBroker, KongSpecFlow, KongSpecFunctionRef, KongSpecHowToInvoke, KongSpecHowToOutput, KongSpecHowToStore, KongSpecProcessRef, KongSpecRecordHeader, KongSpecRule, KongSpecState, KongSpecStateCallFunction, KongSpecStateCallProcess, KongSpecStateCompensate, KongSpecStateDelay, KongSpecStateFail, KongSpecStateForeach, KongSpecStateInject, KongSpecStateParallel, KongSpecStateRule, KongSpecStateSendEvent, KongSpecStateStart, KongSpecStateSucceed, KongSpecStateSwitch, KongSpecStateWaitEvent } from "./kongSpec";
2
+ import { KongSpecActionCallFunction, KongSpecActionCallProcess, KongSpecActionDelay, KongSpecActionInject, KongSpecActionSendEvent, KongSpecAnnotation, KongSpecBranch, KongSpecCallModel, KongSpecCondition, KongSpecError, KongSpecEventBroker, KongSpecFlow, KongSpecFunctionRef, KongSpecHowToInvoke, KongSpecHowToOutput, KongSpecHowToStore, KongSpecProcessRef, KongSpecRecordHeader, KongSpecRule, KongSpecState, KongSpecStateCallFunction, KongSpecStateCallProcess, KongSpecStateCompensate, KongSpecStateDelay, KongSpecStateFail, KongSpecStateForeach, KongSpecStateInject, KongSpecStateParallel, KongSpecStateResult, KongSpecStateRule, KongSpecStateSendEvent, KongSpecStateStart, KongSpecStateSucceed, KongSpecStateSwitch, KongSpecStateWaitEvent } from "./kongSpec";
3
3
  export declare class KongSpecBuild {
4
4
  flow(id: KongSpecFlow["id"]): KongSpecFlow;
5
5
  startState(overrides?: Partial<KongSpecStateStart>): KongSpecStateStart;
@@ -16,6 +16,7 @@ export declare class KongSpecBuild {
16
16
  injectAction(overrides?: Partial<KongSpecActionInject>): KongSpecActionInject;
17
17
  delayAction(overrides?: Partial<KongSpecActionDelay>): KongSpecActionDelay;
18
18
  succeedState(afterState: Optional<KongSpecState["name"]>, overrides?: Partial<KongSpecStateSucceed>): KongSpecStateSucceed;
19
+ resultState(afterState: Optional<KongSpecState["name"]>, overrides?: Partial<KongSpecStateResult>): KongSpecStateResult;
19
20
  sendEventState(overrides?: Partial<KongSpecStateSendEvent>): KongSpecStateSendEvent;
20
21
  sendEventAction(overrides?: Partial<KongSpecActionSendEvent>): KongSpecActionSendEvent;
21
22
  waitEventState(overrides?: Partial<KongSpecStateWaitEvent>): KongSpecStateWaitEvent;
@@ -1,5 +1,5 @@
1
1
  import { JqFilter, JsonObject, JsonText, SessionTenant } from "@kong/ts";
2
- import { KongSpecAction, KongSpecFlow, KongSpecFunctionRef, KongSpecProcessRef, KongSpecState, KongSpecStateParallel, KongSpecSupportsTransition } from "./kongSpec";
2
+ import { KongSpecAction, KongSpecFlow, KongSpecFunctionRef, KongSpecProcessRef, KongSpecState, KongSpecStateExit, KongSpecStateParallel, KongSpecSupportsTransition } from "./kongSpec";
3
3
  import { KongSpecActionPath, KongSpecStatePath } from "./kongSpecRef";
4
4
  interface TestItem {
5
5
  id: KongSpecState["id"] | KongSpecAction["id"];
@@ -13,11 +13,13 @@ interface Dependency {
13
13
  usage: Array<KongSpecAction["name"] | KongSpecState["name"]>;
14
14
  }
15
15
  export declare function traverseFlowUp(id: KongSpecState["id"] | KongSpecAction["id"], states: KongSpecFlow["states"], test: (current: TestItem) => boolean): boolean;
16
+ export declare function getConnectedExitStates(states: KongSpecFlow["states"], stateRef: KongSpecState["id"]): KongSpecStateExit[];
17
+ export declare function outputAggregatorUnsafe(jq: (sample: string, filter: JqFilter) => Promise<string>, getParallelOutput: (state: KongSpecStateParallel, flow: KongSpecFlow) => Promise<JsonObject>): (flow: KongSpecFlow, path: KongSpecStatePath | KongSpecActionPath, includeTarget?: boolean) => Promise<JsonObject>;
16
18
  export declare function outputAggregator(jq: (sample: string, filter: JqFilter) => Promise<string>): (flow: KongSpecFlow, path: KongSpecStatePath | KongSpecActionPath, includeTarget?: boolean) => Promise<JsonText>;
17
- export declare function outputAggregatorUnsafe(jq: (sample: string, filter: JqFilter) => Promise<string>): (flow: KongSpecFlow, path: KongSpecStatePath | KongSpecActionPath, includeTarget?: boolean) => Promise<JsonObject>;
18
19
  export declare function getActions(state: KongSpecState): KongSpecAction[];
19
20
  export declare function findSourceState(states: KongSpecState[], targetRef: KongSpecState["id"]): import("@kong/ts").Distinct<string, "KongSpecStateId">;
20
21
  export declare function convertActionToState(action: KongSpecAction): KongSpecState & KongSpecSupportsTransition;
21
- export declare function parallelStateOutputAggregator(jq: (sample: string, filter: JqFilter) => Promise<string>): (state: KongSpecStateParallel, flow: KongSpecFlow) => Promise<JsonText>;
22
+ export declare function parallelStateOutputAggregatorUnsafe(jq: (sample: string, filter: JqFilter) => Promise<string>): (state: KongSpecStateParallel, flow: KongSpecFlow) => Promise<JsonObject>;
23
+ export declare function parallelStateOutputAggregator(jq: (sample: string, filter: JqFilter) => Promise<string>): (state: KongSpecStateParallel, flow: KongSpecFlow) => Promise<JsonObject>;
22
24
  export declare function getDependencies(flow: KongSpecFlow): Dependency[];
23
25
  export {};
@@ -1,7 +1,9 @@
1
- import { KongSpecAction, KongSpecFlow, KongSpecState } from "./kongSpec";
1
+ import { JqArray, JqFilter, JqObject, JsonObject } from "@kong/ts";
2
+ import { KongSpecAction, KongSpecFlow, KongSpecState, KongSpecStateParallel } from "./kongSpec";
2
3
  import { KongSpecActionPath, KongSpecStatePath } from "./kongSpecRef";
3
4
  export interface KongSpecValidationIssue {
4
5
  path: KongSpecStatePath | KongSpecActionPath;
6
+ isKick: boolean;
5
7
  severity: "error" | "warning";
6
8
  message: string;
7
9
  fix: string;
@@ -10,4 +12,4 @@ export interface KongSpecValidators {
10
12
  state: Array<(target: KongSpecState, path: KongSpecStatePath) => Promise<KongSpecValidationIssue[]>>;
11
13
  action: Array<(target: KongSpecAction, path: KongSpecActionPath) => Promise<KongSpecValidationIssue[]>>;
12
14
  }
13
- export declare function validate(flow: KongSpecFlow, validators: KongSpecValidators): Promise<KongSpecValidationIssue[]>;
15
+ export declare function validate(flow: KongSpecFlow, validators: KongSpecValidators, getStateInputUnsafe: (flow: KongSpecFlow, path: KongSpecStatePath | KongSpecActionPath) => Promise<JsonObject>, getParallelStateOutputUnsafe: (state: KongSpecStateParallel, flow: KongSpecFlow) => Promise<JsonObject>, jqUnsafe: (sample: string, expression: JqFilter | JqObject | JqArray) => Promise<string>): Promise<KongSpecValidationIssue[]>;
@@ -2,7 +2,7 @@ export { compileGet, compileSet } from "./lib/accessor";
2
2
  export { generateBusinessKey } from "./lib/businessKey";
3
3
  export type { BusinessKey } from "./lib/businessKey";
4
4
  export { CloudEvent } from "./lib/cloudEvent";
5
- export { textToColor, textToMonoGradient } from "./lib/color";
5
+ export { textToBackground, textToColor, textToMonoGradient } from "./lib/color";
6
6
  export { deepEquals, prepareTextForComparison, sameText, shadowEquals } from "./lib/compare";
7
7
  export { cronToText, isCron } from "./lib/cron";
8
8
  export type { Cron } from "./lib/cron";
@@ -18,9 +18,9 @@ export type { CompactUUID16, CompactUUID32, GUID, ShortUUID } from "./lib/id";
18
18
  export { intervalToString, millisToShortString } from "./lib/interval";
19
19
  export { applyJqFilterReplacements, applyJqObjectReplacements, applyJqTextReplacements, convertToJqFilter, extractJqTextContent, jqFilter, JqObjectSerializer, jqText, sanitizeJqFilter, wrapWithJqTextMarkers, } from "./lib/jq";
20
20
  export type { JqArray, JqFilter, JqObject, JqSerializer, JqText, RefactorReplacement, } from "./lib/jq";
21
- export { generateFakeJsonObject, jsonToHumanReadable, prettyJson, safeJsonParse } from "./lib/json";
21
+ export { generateFakeJsonObject, jsonToHumanReadable, prettyJsonObject, prettyJsonText, safeJsonParse, } from "./lib/json";
22
22
  export type { JsonArray, JsonObject, JsonSchemaUrl, JsonText } from "./lib/json";
23
- export { buildExampleObject, createEmptyJsonSchema } from "./lib/jsonSchema";
23
+ export { buildExampleObject, buildJSONSchemaType, createEmptyJsonSchema, hasJSONSchemaType, } from "./lib/jsonSchema";
24
24
  export { KeyGenerator } from "./lib/keyGenerator";
25
25
  export { findLastIndex, insertItem, moveItem, unique } from "./lib/list";
26
26
  export { deepMerge, deepMergeAll } from "./lib/merge";
@@ -1,2 +1,3 @@
1
1
  export declare function textToColor(text: string): string;
2
2
  export declare function textToMonoGradient(text: string): string;
3
+ export declare function textToBackground(text: string): string;
@@ -1,3 +1,4 @@
1
1
  import { Distinct } from "./types";
2
2
  export type Duration8601 = Distinct<string, "Duration8601">;
3
+ export type DynamicDuration = Duration8601 | string;
3
4
  export declare function isDuration(value: string): value is Duration8601;
@@ -1,3 +1,4 @@
1
+ import { JSONSchema7 } from "json-schema";
1
2
  import { Distinct, Optional, Result } from "./types";
2
3
  export type JsonObject = Record<string, any>;
3
4
  export type JsonArray = Array<unknown>;
@@ -6,6 +7,7 @@ export type JsonSchemaUrl = Distinct<string, "JsonSchemaUrl">;
6
7
  export declare function safeJsonParse<T = any>(text: string): Result<{
7
8
  result: T;
8
9
  }>;
9
- export declare function generateFakeJsonObject(schemaObject: JsonObject): Optional<JsonObject>;
10
- export declare function prettyJson(value: Optional<JsonObject | JsonArray>): JsonText;
10
+ export declare function generateFakeJsonObject(schemaObject: JSONSchema7): Optional<JsonObject>;
11
+ export declare function prettyJsonObject(value: Optional<JsonObject | JsonArray>): JsonText;
11
12
  export declare function jsonToHumanReadable(value: Optional<JsonObject | JsonArray>): string;
13
+ export declare function prettyJsonText(text: JsonText): Promise<JsonText>;
@@ -1,4 +1,6 @@
1
- import { JSONSchema7 } from "json-schema";
1
+ import { JSONSchema7, JSONSchema7TypeName } from "json-schema";
2
2
  import { JsonObject, Optional } from "./types";
3
+ export declare function hasJSONSchemaType(type: JSONSchema7["type"], name: JSONSchema7TypeName): boolean;
4
+ export declare function buildJSONSchemaType(type: JSONSchema7["type"], nullable: boolean): JSONSchema7["type"];
3
5
  export declare function buildExampleObject(schema: JSONSchema7): Optional<JsonObject>;
4
6
  export declare function createEmptyJsonSchema(): JSONSchema7;
@@ -2,6 +2,8 @@ export type { AppAlias } from "./lib/appAlias";
2
2
  export type { AppAliasDetails } from "./lib/appAliasDetails";
3
3
  export type { AppAliasUse } from "./lib/appAliasUse";
4
4
  export type { AppAliasUseDetails } from "./lib/appAliasUseDetails";
5
+ export { AuditObjectType } from "./lib/appAuditLog";
6
+ export type { AppAuditLog } from "./lib/appAuditLog";
5
7
  export type { AppBroadcastData } from "./lib/appBroadcastData";
6
8
  export type { AppCheckpoint } from "./lib/appCheckpoint";
7
9
  export type { AppComponentStartRequest } from "./lib/appComponentStartRequest";
@@ -15,6 +17,7 @@ export type { AppPresignedUrl } from "./lib/appPresignedUrl";
15
17
  export type { AppProcessAlias } from "./lib/appProcessAlias";
16
18
  export type { AppProcessData } from "./lib/appProcessData";
17
19
  export type { AppProcessInstanceId } from "./lib/appProcessInstanceId";
20
+ export type { AppProcessStats } from "./lib/appProcessStats";
18
21
  export type { AppProject } from "./lib/appProject";
19
22
  export type { AppSnapshot } from "./lib/appSnapshot";
20
23
  export type { AppSnapshotDetails } from "./lib/appSnapshotDetails";
@@ -0,0 +1,18 @@
1
+ import { JsonObject, User, UtcDateTime } from "@kong/ts";
2
+ export declare enum AuditObjectType {
3
+ DOCUMENT = "document",
4
+ PROCESS_ALIAS = "process_alias",
5
+ EXTENSION_ALIAS = "extension_alias",
6
+ EXTENSION_SNAPSHOT = "extension_snapshot",
7
+ DOCUMENT_SNAPSHOT = "document_snapshot",
8
+ EXTENSION = "extension"
9
+ }
10
+ export interface AppAuditLog {
11
+ objectType: AuditObjectType;
12
+ objectId: string;
13
+ created: UtcDateTime;
14
+ createdBy: User["name"];
15
+ action: string;
16
+ eventType: string;
17
+ eventData: JsonObject;
18
+ }
@@ -1,5 +1,7 @@
1
+ import { KongSpecJobSession } from "@kong/spec";
1
2
  import { BusinessKey, Entity, JsonText, Optional, SessionTenant, UtcDateTime } from "@kong/ts";
2
3
  export interface AppProcessData extends Entity {
4
+ sessionRootId: KongSpecJobSession["id"];
3
5
  tenant: SessionTenant;
4
6
  processId: string;
5
7
  processVersion: string;
@@ -0,0 +1,9 @@
1
+ export interface AppProcessStats {
2
+ processVersion: string;
3
+ source: string;
4
+ total: number;
5
+ statusCounts: Record<string, number>;
6
+ avgDurationUs: number | null;
7
+ minDurationUs: number | null;
8
+ maxDurationUs: number | null;
9
+ }
@@ -1,7 +1,9 @@
1
1
  import { Entity, User, UtcDateTime } from "@kong/ts";
2
+ import { AppCheckpoint } from "./appCheckpoint";
2
3
  export interface AppSnapshot extends Entity {
3
4
  version: number;
4
5
  notes: string;
6
+ checkpoint: AppCheckpoint["id"];
5
7
  created: UtcDateTime;
6
8
  createdBy: User["name"];
7
9
  }