@flowcore/sdk 1.43.0 → 1.44.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +112 -0
  3. package/esm/commands/index.d.ts +2 -0
  4. package/esm/commands/index.d.ts.map +1 -1
  5. package/esm/commands/index.js +3 -0
  6. package/esm/commands/ingestion/ingest.batch.d.ts +43 -0
  7. package/esm/commands/ingestion/ingest.batch.d.ts.map +1 -0
  8. package/esm/commands/ingestion/ingest.batch.js +80 -0
  9. package/esm/commands/ingestion/ingest.event.d.ts +40 -0
  10. package/esm/commands/ingestion/ingest.event.d.ts.map +1 -0
  11. package/esm/commands/ingestion/ingest.event.js +80 -0
  12. package/esm/common/command.d.ts +8 -0
  13. package/esm/common/command.d.ts.map +1 -1
  14. package/esm/common/command.js +9 -0
  15. package/esm/common/flowcore-client.js +1 -1
  16. package/esm/contracts/event.d.ts +25 -0
  17. package/esm/contracts/event.d.ts.map +1 -1
  18. package/esm/contracts/index.d.ts +1 -1
  19. package/esm/contracts/index.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/script/commands/index.d.ts +2 -0
  22. package/script/commands/index.d.ts.map +1 -1
  23. package/script/commands/index.js +3 -0
  24. package/script/commands/ingestion/ingest.batch.d.ts +43 -0
  25. package/script/commands/ingestion/ingest.batch.d.ts.map +1 -0
  26. package/script/commands/ingestion/ingest.batch.js +84 -0
  27. package/script/commands/ingestion/ingest.event.d.ts +40 -0
  28. package/script/commands/ingestion/ingest.event.d.ts.map +1 -0
  29. package/script/commands/ingestion/ingest.event.js +84 -0
  30. package/script/common/command.d.ts +8 -0
  31. package/script/common/command.d.ts.map +1 -1
  32. package/script/common/command.js +9 -0
  33. package/script/common/flowcore-client.js +1 -1
  34. package/script/contracts/event.d.ts +25 -0
  35. package/script/contracts/event.d.ts.map +1 -1
  36. package/script/contracts/index.d.ts +1 -1
  37. package/script/contracts/index.d.ts.map +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.44.1](https://github.com/flowcore-io/flowcore-sdk/compare/v1.44.0...v1.44.1) (2025-05-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **ingestion:** :art: refactor ingest commands for improved readability ([753109f](https://github.com/flowcore-io/flowcore-sdk/commit/753109f88fc3e1d9233669f80e371a5c4a60e445))
9
+ * **ingestion:** :art: update generics to use unknown type for ingest commands ([182b8c7](https://github.com/flowcore-io/flowcore-sdk/commit/182b8c7a6770382a4c3250d5502def151257dcb4))
10
+
11
+ ## [1.44.0](https://github.com/flowcore-io/flowcore-sdk/compare/v1.43.0...v1.44.0) (2025-05-06)
12
+
13
+
14
+ ### Features
15
+
16
+ * **ingestion:** :sparkles: add batch and event ingestion commands ([5252440](https://github.com/flowcore-io/flowcore-sdk/commit/52524404e3a5908d3d0a441ababe93897fac564b))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **ingestion:** :art: add missing comma in authorization header ([1fd0bd7](https://github.com/flowcore-io/flowcore-sdk/commit/1fd0bd7f824005a7d90f70fe96d33542a028a54d))
22
+ * **README:** :memo: add event ingestion operations and examples ([2c740ea](https://github.com/flowcore-io/flowcore-sdk/commit/2c740ea42875d41d51e2ea03d5fed75bfb1a62d6))
23
+
3
24
  ## [1.43.0](https://github.com/flowcore-io/flowcore-sdk/compare/v1.42.1...v1.43.0) (2025-05-05)
4
25
 
5
26
 
package/README.md CHANGED
@@ -655,6 +655,118 @@ const result = await client.execute(command)
655
655
  > **Note**: If `waitForDelete` or `waitForTruncate` is set to `true`, the command will wait up to 25 seconds for the operation to complete.
656
656
  > **Important**: Event Type deletion and truncation operations require bearer token authentication.
657
657
 
658
+ ### Event Ingestion Operations
659
+
660
+ The SDK provides commands for ingesting events into Flowcore event types.
661
+
662
+ > **Important**: Ingestion operations require API key authentication.
663
+
664
+ #### Ingest a Single Event
665
+
666
+ ```typescript
667
+ import { IngestEventCommand, FlowcoreClient } from "@flowcore/sdk"
668
+
669
+ // Define your event data type
670
+ interface MyEventData {
671
+ userId: string;
672
+ action: string;
673
+ timestamp: number;
674
+ // ... any other fields
675
+ }
676
+
677
+ // Create the ingestion command
678
+ const command = new IngestEventCommand<MyEventData>({
679
+ tenantName: "your-tenant-name",
680
+ dataCoreId: "your-data-core-id",
681
+ flowTypeName: "your-flow-type-name",
682
+ eventTypeName: "your-event-type-name",
683
+ eventData: {
684
+ userId: "user-123",
685
+ action: "login",
686
+ timestamp: Date.now()
687
+ },
688
+ // Optional parameters
689
+ metadata: {
690
+ source: "web-app",
691
+ version: "1.0.0"
692
+ },
693
+ eventTime: new Date().toISOString(), // When the event occurred
694
+ validTime: new Date().toISOString(), // When the event becomes valid
695
+ ttl: true, // Set time-to-live flag
696
+ isEphemeral: false // Whether to archive the event
697
+ })
698
+
699
+ const result = await client.execute(command)
700
+ // Returns:
701
+ // {
702
+ // eventId: string; // The ID of the ingested event
703
+ // success: boolean; // Whether ingestion was successful
704
+ // }
705
+ ```
706
+
707
+ #### Ingest Multiple Events (Batch)
708
+
709
+ ```typescript
710
+ import { IngestBatchCommand, FlowcoreClient } from "@flowcore/sdk"
711
+
712
+ // Define your event data type
713
+ interface MyEventData {
714
+ userId: string;
715
+ action: string;
716
+ timestamp: number;
717
+ }
718
+
719
+ // Create the batch ingestion command
720
+ const command = new IngestBatchCommand<MyEventData>({
721
+ tenantName: "your-tenant-name",
722
+ dataCoreId: "your-data-core-id",
723
+ flowTypeName: "your-flow-type-name",
724
+ eventTypeName: "your-event-type-name",
725
+ events: [
726
+ {
727
+ userId: "user-123",
728
+ action: "login",
729
+ timestamp: Date.now()
730
+ },
731
+ {
732
+ userId: "user-456",
733
+ action: "view_profile",
734
+ timestamp: Date.now()
735
+ },
736
+ // Add more events as needed (maximum 25 events per batch)
737
+ ],
738
+ // Optional parameters (applied to all events in the batch)
739
+ metadata: {
740
+ source: "web-app",
741
+ version: "1.0.0"
742
+ },
743
+ eventTime: new Date().toISOString(),
744
+ validTime: new Date().toISOString(),
745
+ ttl: true,
746
+ isEphemeral: false
747
+ })
748
+
749
+ const result = await client.execute(command)
750
+ // Returns:
751
+ // {
752
+ // eventIds: string[]; // Array of IDs for the ingested events
753
+ // success: boolean; // Whether the batch ingestion was successful
754
+ // }
755
+ ```
756
+
757
+ #### Ingestion Options
758
+
759
+ Both single and batch ingestion support these options:
760
+
761
+ - **metadata**: Key-value pairs sent as `x-flowcore-metadata-json` header
762
+ - **eventTime**: When the event occurred (`x-flowcore-event-time` header)
763
+ - **validTime**: When the event becomes valid (`x-flowcore-valid-time` header)
764
+ - **ttl**: Enables time-to-live for events (adds `ttl-on/stored-event: true` to metadata)
765
+ - **isEphemeral**: Prevents archiving (adds `do-not-archive-on/stored-event: true` to metadata)
766
+
767
+ > **Note**: Batch ingestion is more efficient for inserting multiple events at once, as it requires only a single API call.
768
+ > **Important**: Batch ingestion has a maximum limit of 25 events per request. For larger volumes, split your events into multiple batches.
769
+
658
770
  ### AI Agent Coordinator Operations
659
771
 
660
772
  These commands allow interaction with the AI Agent Coordinator service for managing conversational AI agents.
@@ -34,6 +34,8 @@ export * from "./event-type/event-type.remove-sensitive-data.js";
34
34
  export * from "./event-type/event-type.request-delete.js";
35
35
  export * from "./event-type/event-type.request-truncate.js";
36
36
  export * from "./event-type/event-type.update.js";
37
+ export * from "./ingestion/ingest.batch.js";
38
+ export * from "./ingestion/ingest.event.js";
37
39
  export * from "./iam/api-key-role-association.create.js";
38
40
  export * from "./iam/api-key-role-association.delete.js";
39
41
  export * from "./iam/api-key-role-association.list.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,2CAA2C,CAAA;AACzD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yCAAyC,CAAA;AAGvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AAGzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wDAAwD,CAAA;AACtE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,2CAA2C,CAAA;AACzD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,mCAAmC,CAAA;AAGjD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0CAA0C,CAAA;AACxD,cAAc,wCAAwC,CAAA;AACtD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AAGnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAG5C,cAAc,mDAAmD,CAAA;AACjE,cAAc,mDAAmD,CAAA;AACjE,cAAc,kDAAkD,CAAA;AAChE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,mDAAmD,CAAA;AAGjE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,2CAA2C,CAAA;AACzD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yCAAyC,CAAA;AAGvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AAGzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wDAAwD,CAAA;AACtE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,2CAA2C,CAAA;AACzD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,mCAAmC,CAAA;AAGjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,0CAA0C,CAAA;AACxD,cAAc,0CAA0C,CAAA;AACxD,cAAc,wCAAwC,CAAA;AACtD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AAGnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAG5C,cAAc,mDAAmD,CAAA;AACjE,cAAc,mDAAmD,CAAA;AACjE,cAAc,kDAAkD,CAAA;AAChE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,mDAAmD,CAAA;AAGjE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA"}
@@ -41,6 +41,9 @@ export * from "./event-type/event-type.remove-sensitive-data.js";
41
41
  export * from "./event-type/event-type.request-delete.js";
42
42
  export * from "./event-type/event-type.request-truncate.js";
43
43
  export * from "./event-type/event-type.update.js";
44
+ // Ingestion
45
+ export * from "./ingestion/ingest.batch.js";
46
+ export * from "./ingestion/ingest.event.js";
44
47
  // IAM
45
48
  export * from "./iam/api-key-role-association.create.js";
46
49
  export * from "./iam/api-key-role-association.delete.js";
@@ -0,0 +1,43 @@
1
+ import { Command } from "../../common/command.js";
2
+ import type { IngestEventInput } from "../../contracts/event.js";
3
+ export interface IngestBatchInput<T extends unknown> extends Omit<IngestEventInput<T>, "eventData"> {
4
+ events: IngestEventInput<T>["eventData"][];
5
+ }
6
+ /**
7
+ * The output for the batch ingestion command
8
+ */
9
+ export interface IngestBatchOutput {
10
+ /** the events */
11
+ eventIds: string[];
12
+ /** success status */
13
+ success: boolean;
14
+ }
15
+ /**
16
+ * Ingest a batch of events
17
+ */
18
+ export declare class IngestBatchCommand<T extends unknown> extends Command<IngestBatchInput<T>, IngestBatchOutput> {
19
+ /**
20
+ * The dedicated subdomain for the command
21
+ */
22
+ protected dedicatedSubdomain: string;
23
+ protected allowedModes: ("apiKey" | "bearer")[];
24
+ protected getMethod(): string;
25
+ /**
26
+ * Get the base url for the request
27
+ */
28
+ protected getBaseUrl(): string;
29
+ protected getHeaders(): Record<string, string>;
30
+ /**
31
+ * Get the path for the request
32
+ */
33
+ protected getPath(): string;
34
+ /**
35
+ * Parse the response
36
+ */
37
+ protected parseResponse(rawResponse: unknown): IngestBatchOutput;
38
+ /**
39
+ * Get the body for the request
40
+ */
41
+ protected getBody(): unknown[];
42
+ }
43
+ //# sourceMappingURL=ingest.batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.batch.d.ts","sourceRoot":"","sources":["../../../src/commands/ingestion/ingest.batch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACjG,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAUD;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACxG;;OAEG;IACH,UAAmB,kBAAkB,EAAE,MAAM,CAAY;IAEzD,UAAmB,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAa;cAElD,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;cAQpB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBvD;;OAEG;cACgB,OAAO,IAAI,MAAM;IAGpC;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB;IAKzE;;OAEG;cACgB,OAAO,IAAI,OAAO,EAAE;CAGxC"}
@@ -0,0 +1,80 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Command } from "../../common/command.js";
3
+ import { parseResponseHelper } from "../../utils/parse-response-helper.js";
4
+ /**
5
+ * The response schema for the batch ingestion command
6
+ */
7
+ const responseSchema = Type.Object({
8
+ eventIds: Type.Array(Type.String()),
9
+ success: Type.Boolean(),
10
+ });
11
+ /**
12
+ * Ingest a batch of events
13
+ */
14
+ export class IngestBatchCommand extends Command {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * The dedicated subdomain for the command
19
+ */
20
+ Object.defineProperty(this, "dedicatedSubdomain", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: "webhook"
25
+ });
26
+ Object.defineProperty(this, "allowedModes", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: ["apiKey"]
31
+ });
32
+ }
33
+ getMethod() {
34
+ return "POST";
35
+ }
36
+ /**
37
+ * Get the base url for the request
38
+ */
39
+ getBaseUrl() {
40
+ if (this.input.tenantName === "flowcore") {
41
+ return "https://flowcore.webhook.flowcore.io";
42
+ }
43
+ return "https://webhook.api.flowcore.io";
44
+ }
45
+ getHeaders() {
46
+ const metadata = this.input.metadata && Object.keys(this.input.metadata).length > 0 ? this.input.metadata : undefined;
47
+ if (metadata && this.input.ttl) {
48
+ metadata["ttl-on/stored-event"] = "true";
49
+ }
50
+ if (metadata && this.input.isEphemeral) {
51
+ metadata["do-not-archive-on/stored-event"] = "true";
52
+ }
53
+ return {
54
+ "Content-Type": "application/json",
55
+ ...(metadata && { "x-flowcore-metadata-json": JSON.stringify(metadata) }),
56
+ ...(this.input.eventTime && { "x-flowcore-event-time": this.input.eventTime }),
57
+ ...(this.input.validTime && { "x-flowcore-valid-time": this.input.validTime }),
58
+ ...(this.clientAuthOptions.apiKey && { "Authorization": this.clientAuthOptions.apiKey }),
59
+ };
60
+ }
61
+ /**
62
+ * Get the path for the request
63
+ */
64
+ getPath() {
65
+ return `/events/${this.input.tenantName}/${this.input.dataCoreId}/${this.input.flowTypeName}/${this.input.eventTypeName}`;
66
+ }
67
+ /**
68
+ * Parse the response
69
+ */
70
+ parseResponse(rawResponse) {
71
+ const response = parseResponseHelper(responseSchema, rawResponse);
72
+ return response;
73
+ }
74
+ /**
75
+ * Get the body for the request
76
+ */
77
+ getBody() {
78
+ return this.input.events;
79
+ }
80
+ }
@@ -0,0 +1,40 @@
1
+ import { Command } from "../../common/command.js";
2
+ import type { IngestEventInput } from "../../contracts/event.js";
3
+ /**
4
+ * The output for the ingest event command
5
+ */
6
+ export interface IngestEventOutput {
7
+ /** the events */
8
+ eventId: string;
9
+ /** success status */
10
+ success: boolean;
11
+ }
12
+ /**
13
+ * Ingest an event
14
+ */
15
+ export declare class IngestEventCommand<T extends unknown> extends Command<IngestEventInput<T>, IngestEventOutput> {
16
+ /**
17
+ * The dedicated subdomain for the command
18
+ */
19
+ protected dedicatedSubdomain: string;
20
+ protected allowedModes: ("apiKey" | "bearer")[];
21
+ protected getMethod(): string;
22
+ /**
23
+ * Get the base url for the request
24
+ */
25
+ protected getBaseUrl(): string;
26
+ protected getHeaders(): Record<string, string>;
27
+ /**
28
+ * Get the path for the request
29
+ */
30
+ protected getPath(): string;
31
+ /**
32
+ * Parse the response
33
+ */
34
+ protected parseResponse(rawResponse: unknown): IngestEventOutput;
35
+ /**
36
+ * Get the body for the request
37
+ */
38
+ protected getBody(): Record<string, unknown>;
39
+ }
40
+ //# sourceMappingURL=ingest.event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.event.d.ts","sourceRoot":"","sources":["../../../src/commands/ingestion/ingest.event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAUD;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACxG;;OAEG;IACH,UAAmB,kBAAkB,EAAE,MAAM,CAAY;IAEzD,UAAmB,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAa;cAElD,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;cAQpB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBvD;;OAEG;cACgB,OAAO,IAAI,MAAM;IAGpC;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB;IAKzE;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGtD"}
@@ -0,0 +1,80 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Command } from "../../common/command.js";
3
+ import { parseResponseHelper } from "../../utils/parse-response-helper.js";
4
+ /**
5
+ * The response schema for the ingest event command
6
+ */
7
+ const responseSchema = Type.Object({
8
+ eventId: Type.String(),
9
+ success: Type.Boolean(),
10
+ });
11
+ /**
12
+ * Ingest an event
13
+ */
14
+ export class IngestEventCommand extends Command {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * The dedicated subdomain for the command
19
+ */
20
+ Object.defineProperty(this, "dedicatedSubdomain", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: "webhook"
25
+ });
26
+ Object.defineProperty(this, "allowedModes", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: ["apiKey"]
31
+ });
32
+ }
33
+ getMethod() {
34
+ return "POST";
35
+ }
36
+ /**
37
+ * Get the base url for the request
38
+ */
39
+ getBaseUrl() {
40
+ if (this.input.tenantName === "flowcore") {
41
+ return "https://flowcore.webhook.flowcore.io";
42
+ }
43
+ return "https://webhook.api.flowcore.io";
44
+ }
45
+ getHeaders() {
46
+ const metadata = this.input.metadata && Object.keys(this.input.metadata).length > 0 ? this.input.metadata : undefined;
47
+ if (metadata && this.input.ttl) {
48
+ metadata["ttl-on/stored-event"] = "true";
49
+ }
50
+ if (metadata && this.input.isEphemeral) {
51
+ metadata["do-not-archive-on/stored-event"] = "true";
52
+ }
53
+ return {
54
+ "Content-Type": "application/json",
55
+ ...(metadata && { "x-flowcore-metadata-json": JSON.stringify(metadata) }),
56
+ ...(this.input.eventTime && { "x-flowcore-event-time": this.input.eventTime }),
57
+ ...(this.input.validTime && { "x-flowcore-valid-time": this.input.validTime }),
58
+ ...(this.clientAuthOptions.apiKey && { "Authorization": this.clientAuthOptions.apiKey }),
59
+ };
60
+ }
61
+ /**
62
+ * Get the path for the request
63
+ */
64
+ getPath() {
65
+ return `/event/${this.input.tenantName}/${this.input.dataCoreId}/${this.input.flowTypeName}/${this.input.eventTypeName}`;
66
+ }
67
+ /**
68
+ * Parse the response
69
+ */
70
+ parseResponse(rawResponse) {
71
+ const response = parseResponseHelper(responseSchema, rawResponse);
72
+ return response;
73
+ }
74
+ /**
75
+ * Get the body for the request
76
+ */
77
+ getBody() {
78
+ return this.input.eventData;
79
+ }
80
+ }
@@ -20,6 +20,14 @@ export declare abstract class Command<Input, Output> {
20
20
  * The input for the command
21
21
  */
22
22
  protected readonly input: Input;
23
+ /**
24
+ * The client auth options
25
+ */
26
+ protected readonly clientAuthOptions: {
27
+ token?: string;
28
+ apiKeyId?: string;
29
+ apiKey?: string;
30
+ };
23
31
  constructor(input: Input);
24
32
  /**
25
33
  * Get the dedicated base URL
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;GAEG;AACH,8BAAsB,OAAO,CAAC,KAAK,EAAE,MAAM;IACzC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAO;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAuB;IAE/E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;gBAEnB,KAAK,EAAE,KAAK;IAOxB;;OAEG;cACa,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CnF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM;IAEvC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;IAI3B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS;IAOzE;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAE3D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIrD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QACzE,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAA;QACrC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;QACnE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9E,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;QAC/C,cAAc,EAAE,OAAO,CAAA;QACvB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7D,CAAC;IAeF;;OAEG;cAEa,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5F"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;GAEG;AACH,8BAAsB,OAAO,CAAC,KAAK,EAAE,MAAM;IACzC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAO;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAuB;IAE/E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IAE/B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAK;gBAEM,KAAK,EAAE,KAAK;IAOxB;;OAEG;cACa,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CnF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM;IAEvC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;IAI3B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS;IAOzE;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAE3D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIrD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QACzE,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAA;QACrC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;QACnE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9E,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;QAC/C,cAAc,EAAE,OAAO,CAAA;QACvB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7D,CAAC;IAeF;;OAEG;cAEa,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5F"}
@@ -42,6 +42,15 @@ export class Command {
42
42
  writable: true,
43
43
  value: void 0
44
44
  });
45
+ /**
46
+ * The client auth options
47
+ */
48
+ Object.defineProperty(this, "clientAuthOptions", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: {}
53
+ });
45
54
  /**
46
55
  * The input for the command
47
56
  */
@@ -77,8 +77,8 @@ export class FlowcoreClient {
77
77
  });
78
78
  }
79
79
  const headers = {
80
- ...request.headers,
81
80
  ...(authHeader ? { Authorization: authHeader } : {}),
81
+ ...request.headers,
82
82
  };
83
83
  let response;
84
84
  const url = this.baseUrl ? this.baseUrl + request.path : request.baseUrl + request.path;
@@ -17,4 +17,29 @@ export declare const FlowcoreEventSchema: TObject<{
17
17
  * The type for an event
18
18
  */
19
19
  export type FlowcoreEvent = Static<typeof FlowcoreEventSchema>;
20
+ /**
21
+ * The input for the ingest event command
22
+ */
23
+ export interface IngestEventInput<T extends unknown> {
24
+ /** the tenant name */
25
+ tenantName: string;
26
+ /** the data core id */
27
+ dataCoreId: string;
28
+ /** the flow type name */
29
+ flowTypeName: string;
30
+ /** the event type name */
31
+ eventTypeName: string;
32
+ /** the event data */
33
+ eventData: T;
34
+ /** the event id */
35
+ metadata?: Record<string, string>;
36
+ /** ttl (This accepts d, h, m, s. The maximum value is 7 days, this can be increased for higher subscription levels.) */
37
+ ttl?: string;
38
+ /** indicate if this event is emphemral (default false) */
39
+ isEphemeral?: boolean;
40
+ /** valid time of the event */
41
+ validTime?: string;
42
+ /** event time of the event, overrides what time bucket this event is stored in */
43
+ eventTime?: string;
44
+ }
20
45
  //# sourceMappingURL=event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mBAAmB,CAAA;AAE9G;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnC,SAAS,EAAE,OAAO,CAAA;CACnB,CAUC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mBAAmB,CAAA;AAE9G;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnC,SAAS,EAAE,OAAO,CAAA;CACnB,CAUC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO;IACjD,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB;IACrB,SAAS,EAAE,CAAC,CAAA;IACZ,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,wHAAwH;IACxH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -3,7 +3,7 @@ export * from "./ai-agent-coordinator.js";
3
3
  export type { DataCore } from "./data-core.js";
4
4
  export type { EventType, EventTypeSchema, EventTypeSensitiveDataMask, EventTypeSensitiveDataMaskParsed, EventTypeSensitiveDataMaskParsedSchema, EventTypeSensitiveDataMaskSchema, SensitiveDataDefinition, SensitiveDataDefinitionSchema, } from "./event-type.js";
5
5
  export type { FlowType } from "./flow-type.js";
6
- export type { FlowcoreEvent } from "./event.js";
6
+ export type { FlowcoreEvent, IngestEventInput } from "./event.js";
7
7
  export type { Tenant } from "./tenant.js";
8
8
  export type { Permission } from "./permission.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EACV,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EACV,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowcore/sdk",
3
- "version": "1.43.0",
3
+ "version": "1.44.1",
4
4
  "description": "Flowcore SDK",
5
5
  "homepage": "https://github.com/flowcore-io/flowcore-sdk#readme",
6
6
  "repository": {
@@ -34,6 +34,8 @@ export * from "./event-type/event-type.remove-sensitive-data.js";
34
34
  export * from "./event-type/event-type.request-delete.js";
35
35
  export * from "./event-type/event-type.request-truncate.js";
36
36
  export * from "./event-type/event-type.update.js";
37
+ export * from "./ingestion/ingest.batch.js";
38
+ export * from "./ingestion/ingest.event.js";
37
39
  export * from "./iam/api-key-role-association.create.js";
38
40
  export * from "./iam/api-key-role-association.delete.js";
39
41
  export * from "./iam/api-key-role-association.list.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,2CAA2C,CAAA;AACzD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yCAAyC,CAAA;AAGvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AAGzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wDAAwD,CAAA;AACtE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,2CAA2C,CAAA;AACzD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,mCAAmC,CAAA;AAGjD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0CAA0C,CAAA;AACxD,cAAc,wCAAwC,CAAA;AACtD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AAGnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAG5C,cAAc,mDAAmD,CAAA;AACjE,cAAc,mDAAmD,CAAA;AACjE,cAAc,kDAAkD,CAAA;AAChE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,mDAAmD,CAAA;AAGjE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,2CAA2C,CAAA;AACzD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yCAAyC,CAAA;AAGvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AAGzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAG/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wDAAwD,CAAA;AACtE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,2CAA2C,CAAA;AACzD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,mCAAmC,CAAA;AAGjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAG3C,cAAc,0CAA0C,CAAA;AACxD,cAAc,0CAA0C,CAAA;AACxD,cAAc,wCAAwC,CAAA;AACtD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AAGnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAG5C,cAAc,mDAAmD,CAAA;AACjE,cAAc,mDAAmD,CAAA;AACjE,cAAc,kDAAkD,CAAA;AAChE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,mDAAmD,CAAA;AAGjE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA"}
@@ -57,6 +57,9 @@ __exportStar(require("./event-type/event-type.remove-sensitive-data.js"), export
57
57
  __exportStar(require("./event-type/event-type.request-delete.js"), exports);
58
58
  __exportStar(require("./event-type/event-type.request-truncate.js"), exports);
59
59
  __exportStar(require("./event-type/event-type.update.js"), exports);
60
+ // Ingestion
61
+ __exportStar(require("./ingestion/ingest.batch.js"), exports);
62
+ __exportStar(require("./ingestion/ingest.event.js"), exports);
60
63
  // IAM
61
64
  __exportStar(require("./iam/api-key-role-association.create.js"), exports);
62
65
  __exportStar(require("./iam/api-key-role-association.delete.js"), exports);
@@ -0,0 +1,43 @@
1
+ import { Command } from "../../common/command.js";
2
+ import type { IngestEventInput } from "../../contracts/event.js";
3
+ export interface IngestBatchInput<T extends unknown> extends Omit<IngestEventInput<T>, "eventData"> {
4
+ events: IngestEventInput<T>["eventData"][];
5
+ }
6
+ /**
7
+ * The output for the batch ingestion command
8
+ */
9
+ export interface IngestBatchOutput {
10
+ /** the events */
11
+ eventIds: string[];
12
+ /** success status */
13
+ success: boolean;
14
+ }
15
+ /**
16
+ * Ingest a batch of events
17
+ */
18
+ export declare class IngestBatchCommand<T extends unknown> extends Command<IngestBatchInput<T>, IngestBatchOutput> {
19
+ /**
20
+ * The dedicated subdomain for the command
21
+ */
22
+ protected dedicatedSubdomain: string;
23
+ protected allowedModes: ("apiKey" | "bearer")[];
24
+ protected getMethod(): string;
25
+ /**
26
+ * Get the base url for the request
27
+ */
28
+ protected getBaseUrl(): string;
29
+ protected getHeaders(): Record<string, string>;
30
+ /**
31
+ * Get the path for the request
32
+ */
33
+ protected getPath(): string;
34
+ /**
35
+ * Parse the response
36
+ */
37
+ protected parseResponse(rawResponse: unknown): IngestBatchOutput;
38
+ /**
39
+ * Get the body for the request
40
+ */
41
+ protected getBody(): unknown[];
42
+ }
43
+ //# sourceMappingURL=ingest.batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.batch.d.ts","sourceRoot":"","sources":["../../../src/commands/ingestion/ingest.batch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACjG,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAUD;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACxG;;OAEG;IACH,UAAmB,kBAAkB,EAAE,MAAM,CAAY;IAEzD,UAAmB,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAa;cAElD,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;cAQpB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBvD;;OAEG;cACgB,OAAO,IAAI,MAAM;IAGpC;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB;IAKzE;;OAEG;cACgB,OAAO,IAAI,OAAO,EAAE;CAGxC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IngestBatchCommand = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const command_js_1 = require("../../common/command.js");
6
+ const parse_response_helper_js_1 = require("../../utils/parse-response-helper.js");
7
+ /**
8
+ * The response schema for the batch ingestion command
9
+ */
10
+ const responseSchema = typebox_1.Type.Object({
11
+ eventIds: typebox_1.Type.Array(typebox_1.Type.String()),
12
+ success: typebox_1.Type.Boolean(),
13
+ });
14
+ /**
15
+ * Ingest a batch of events
16
+ */
17
+ class IngestBatchCommand extends command_js_1.Command {
18
+ constructor() {
19
+ super(...arguments);
20
+ /**
21
+ * The dedicated subdomain for the command
22
+ */
23
+ Object.defineProperty(this, "dedicatedSubdomain", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: "webhook"
28
+ });
29
+ Object.defineProperty(this, "allowedModes", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: ["apiKey"]
34
+ });
35
+ }
36
+ getMethod() {
37
+ return "POST";
38
+ }
39
+ /**
40
+ * Get the base url for the request
41
+ */
42
+ getBaseUrl() {
43
+ if (this.input.tenantName === "flowcore") {
44
+ return "https://flowcore.webhook.flowcore.io";
45
+ }
46
+ return "https://webhook.api.flowcore.io";
47
+ }
48
+ getHeaders() {
49
+ const metadata = this.input.metadata && Object.keys(this.input.metadata).length > 0 ? this.input.metadata : undefined;
50
+ if (metadata && this.input.ttl) {
51
+ metadata["ttl-on/stored-event"] = "true";
52
+ }
53
+ if (metadata && this.input.isEphemeral) {
54
+ metadata["do-not-archive-on/stored-event"] = "true";
55
+ }
56
+ return {
57
+ "Content-Type": "application/json",
58
+ ...(metadata && { "x-flowcore-metadata-json": JSON.stringify(metadata) }),
59
+ ...(this.input.eventTime && { "x-flowcore-event-time": this.input.eventTime }),
60
+ ...(this.input.validTime && { "x-flowcore-valid-time": this.input.validTime }),
61
+ ...(this.clientAuthOptions.apiKey && { "Authorization": this.clientAuthOptions.apiKey }),
62
+ };
63
+ }
64
+ /**
65
+ * Get the path for the request
66
+ */
67
+ getPath() {
68
+ return `/events/${this.input.tenantName}/${this.input.dataCoreId}/${this.input.flowTypeName}/${this.input.eventTypeName}`;
69
+ }
70
+ /**
71
+ * Parse the response
72
+ */
73
+ parseResponse(rawResponse) {
74
+ const response = (0, parse_response_helper_js_1.parseResponseHelper)(responseSchema, rawResponse);
75
+ return response;
76
+ }
77
+ /**
78
+ * Get the body for the request
79
+ */
80
+ getBody() {
81
+ return this.input.events;
82
+ }
83
+ }
84
+ exports.IngestBatchCommand = IngestBatchCommand;
@@ -0,0 +1,40 @@
1
+ import { Command } from "../../common/command.js";
2
+ import type { IngestEventInput } from "../../contracts/event.js";
3
+ /**
4
+ * The output for the ingest event command
5
+ */
6
+ export interface IngestEventOutput {
7
+ /** the events */
8
+ eventId: string;
9
+ /** success status */
10
+ success: boolean;
11
+ }
12
+ /**
13
+ * Ingest an event
14
+ */
15
+ export declare class IngestEventCommand<T extends unknown> extends Command<IngestEventInput<T>, IngestEventOutput> {
16
+ /**
17
+ * The dedicated subdomain for the command
18
+ */
19
+ protected dedicatedSubdomain: string;
20
+ protected allowedModes: ("apiKey" | "bearer")[];
21
+ protected getMethod(): string;
22
+ /**
23
+ * Get the base url for the request
24
+ */
25
+ protected getBaseUrl(): string;
26
+ protected getHeaders(): Record<string, string>;
27
+ /**
28
+ * Get the path for the request
29
+ */
30
+ protected getPath(): string;
31
+ /**
32
+ * Parse the response
33
+ */
34
+ protected parseResponse(rawResponse: unknown): IngestEventOutput;
35
+ /**
36
+ * Get the body for the request
37
+ */
38
+ protected getBody(): Record<string, unknown>;
39
+ }
40
+ //# sourceMappingURL=ingest.event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.event.d.ts","sourceRoot":"","sources":["../../../src/commands/ingestion/ingest.event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAUD;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACxG;;OAEG;IACH,UAAmB,kBAAkB,EAAE,MAAM,CAAY;IAEzD,UAAmB,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAa;cAElD,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;cAQpB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBvD;;OAEG;cACgB,OAAO,IAAI,MAAM;IAGpC;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB;IAKzE;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGtD"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IngestEventCommand = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const command_js_1 = require("../../common/command.js");
6
+ const parse_response_helper_js_1 = require("../../utils/parse-response-helper.js");
7
+ /**
8
+ * The response schema for the ingest event command
9
+ */
10
+ const responseSchema = typebox_1.Type.Object({
11
+ eventId: typebox_1.Type.String(),
12
+ success: typebox_1.Type.Boolean(),
13
+ });
14
+ /**
15
+ * Ingest an event
16
+ */
17
+ class IngestEventCommand extends command_js_1.Command {
18
+ constructor() {
19
+ super(...arguments);
20
+ /**
21
+ * The dedicated subdomain for the command
22
+ */
23
+ Object.defineProperty(this, "dedicatedSubdomain", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: "webhook"
28
+ });
29
+ Object.defineProperty(this, "allowedModes", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: ["apiKey"]
34
+ });
35
+ }
36
+ getMethod() {
37
+ return "POST";
38
+ }
39
+ /**
40
+ * Get the base url for the request
41
+ */
42
+ getBaseUrl() {
43
+ if (this.input.tenantName === "flowcore") {
44
+ return "https://flowcore.webhook.flowcore.io";
45
+ }
46
+ return "https://webhook.api.flowcore.io";
47
+ }
48
+ getHeaders() {
49
+ const metadata = this.input.metadata && Object.keys(this.input.metadata).length > 0 ? this.input.metadata : undefined;
50
+ if (metadata && this.input.ttl) {
51
+ metadata["ttl-on/stored-event"] = "true";
52
+ }
53
+ if (metadata && this.input.isEphemeral) {
54
+ metadata["do-not-archive-on/stored-event"] = "true";
55
+ }
56
+ return {
57
+ "Content-Type": "application/json",
58
+ ...(metadata && { "x-flowcore-metadata-json": JSON.stringify(metadata) }),
59
+ ...(this.input.eventTime && { "x-flowcore-event-time": this.input.eventTime }),
60
+ ...(this.input.validTime && { "x-flowcore-valid-time": this.input.validTime }),
61
+ ...(this.clientAuthOptions.apiKey && { "Authorization": this.clientAuthOptions.apiKey }),
62
+ };
63
+ }
64
+ /**
65
+ * Get the path for the request
66
+ */
67
+ getPath() {
68
+ return `/event/${this.input.tenantName}/${this.input.dataCoreId}/${this.input.flowTypeName}/${this.input.eventTypeName}`;
69
+ }
70
+ /**
71
+ * Parse the response
72
+ */
73
+ parseResponse(rawResponse) {
74
+ const response = (0, parse_response_helper_js_1.parseResponseHelper)(responseSchema, rawResponse);
75
+ return response;
76
+ }
77
+ /**
78
+ * Get the body for the request
79
+ */
80
+ getBody() {
81
+ return this.input.eventData;
82
+ }
83
+ }
84
+ exports.IngestEventCommand = IngestEventCommand;
@@ -20,6 +20,14 @@ export declare abstract class Command<Input, Output> {
20
20
  * The input for the command
21
21
  */
22
22
  protected readonly input: Input;
23
+ /**
24
+ * The client auth options
25
+ */
26
+ protected readonly clientAuthOptions: {
27
+ token?: string;
28
+ apiKeyId?: string;
29
+ apiKey?: string;
30
+ };
23
31
  constructor(input: Input);
24
32
  /**
25
33
  * Get the dedicated base URL
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;GAEG;AACH,8BAAsB,OAAO,CAAC,KAAK,EAAE,MAAM;IACzC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAO;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAuB;IAE/E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;gBAEnB,KAAK,EAAE,KAAK;IAOxB;;OAEG;cACa,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CnF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM;IAEvC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;IAI3B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS;IAOzE;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAE3D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIrD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QACzE,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAA;QACrC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;QACnE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9E,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;QAC/C,cAAc,EAAE,OAAO,CAAA;QACvB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7D,CAAC;IAeF;;OAEG;cAEa,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5F"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;GAEG;AACH,8BAAsB,OAAO,CAAC,KAAK,EAAE,MAAM;IACzC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAO;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAuB;IAE/E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IAE/B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAK;gBAEM,KAAK,EAAE,KAAK;IAOxB;;OAEG;cACa,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CnF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM;IAEvC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;IAI3B;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS;IAOzE;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAE3D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIrD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QACzE,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAA;QACrC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;QACnE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9E,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;QAC/C,cAAc,EAAE,OAAO,CAAA;QACvB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7D,CAAC;IAeF;;OAEG;cAEa,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5F"}
@@ -68,6 +68,15 @@ class Command {
68
68
  writable: true,
69
69
  value: void 0
70
70
  });
71
+ /**
72
+ * The client auth options
73
+ */
74
+ Object.defineProperty(this, "clientAuthOptions", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: {}
79
+ });
71
80
  /**
72
81
  * The input for the command
73
82
  */
@@ -80,8 +80,8 @@ class FlowcoreClient {
80
80
  });
81
81
  }
82
82
  const headers = {
83
- ...request.headers,
84
83
  ...(authHeader ? { Authorization: authHeader } : {}),
84
+ ...request.headers,
85
85
  };
86
86
  let response;
87
87
  const url = this.baseUrl ? this.baseUrl + request.path : request.baseUrl + request.path;
@@ -17,4 +17,29 @@ export declare const FlowcoreEventSchema: TObject<{
17
17
  * The type for an event
18
18
  */
19
19
  export type FlowcoreEvent = Static<typeof FlowcoreEventSchema>;
20
+ /**
21
+ * The input for the ingest event command
22
+ */
23
+ export interface IngestEventInput<T extends unknown> {
24
+ /** the tenant name */
25
+ tenantName: string;
26
+ /** the data core id */
27
+ dataCoreId: string;
28
+ /** the flow type name */
29
+ flowTypeName: string;
30
+ /** the event type name */
31
+ eventTypeName: string;
32
+ /** the event data */
33
+ eventData: T;
34
+ /** the event id */
35
+ metadata?: Record<string, string>;
36
+ /** ttl (This accepts d, h, m, s. The maximum value is 7 days, this can be increased for higher subscription levels.) */
37
+ ttl?: string;
38
+ /** indicate if this event is emphemral (default false) */
39
+ isEphemeral?: boolean;
40
+ /** valid time of the event */
41
+ validTime?: string;
42
+ /** event time of the event, overrides what time bucket this event is stored in */
43
+ eventTime?: string;
44
+ }
20
45
  //# sourceMappingURL=event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mBAAmB,CAAA;AAE9G;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnC,SAAS,EAAE,OAAO,CAAA;CACnB,CAUC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mBAAmB,CAAA;AAE9G;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnC,SAAS,EAAE,OAAO,CAAA;CACnB,CAUC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO;IACjD,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB;IACrB,SAAS,EAAE,CAAC,CAAA;IACZ,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,wHAAwH;IACxH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -3,7 +3,7 @@ export * from "./ai-agent-coordinator.js";
3
3
  export type { DataCore } from "./data-core.js";
4
4
  export type { EventType, EventTypeSchema, EventTypeSensitiveDataMask, EventTypeSensitiveDataMaskParsed, EventTypeSensitiveDataMaskParsedSchema, EventTypeSensitiveDataMaskSchema, SensitiveDataDefinition, SensitiveDataDefinitionSchema, } from "./event-type.js";
5
5
  export type { FlowType } from "./flow-type.js";
6
- export type { FlowcoreEvent } from "./event.js";
6
+ export type { FlowcoreEvent, IngestEventInput } from "./event.js";
7
7
  export type { Tenant } from "./tenant.js";
8
8
  export type { Permission } from "./permission.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EACV,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EACV,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}