@reventlessdev/reventless-aws 3.0.0-alpha.220 → 3.0.0-alpha.222
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/CHANGELOG.md +27 -0
- package/package.json +8 -8
- package/src/Platform.res +2 -2
- package/src/Platform.res.mjs +4 -0
- package/src/Platform_Stack.res +6 -0
- package/src/Platform_Stack.res.mjs +3 -1
- package/src/adapter/AWS_Tags.res +127 -12
- package/src/adapter/AWS_Tags.res.mjs +58 -17
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res +13 -1
- package/src/adapter/Api/Platform_ComponentDefinitions_Lambda.res.mjs +3 -4
- package/src/adapter/Api/Platform_UIFragments_Lambda.res +13 -1
- package/src/adapter/Api/Platform_UIFragments_Lambda.res.mjs +3 -4
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res +12 -0
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res.mjs +4 -2
- package/src/adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res +6 -0
- package/src/adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res.mjs +2 -1
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS.res +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS.res.mjs +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Async.res +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Async.res.mjs +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_FIFO.res +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_FIFO.res.mjs +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res +2 -2
- package/src/adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res.mjs +2 -2
- package/src/adapter/Counter/CounterHandler_DynamoDbStream.res +1 -0
- package/src/adapter/Counter/CounterHandler_DynamoDbStream.res.mjs +1 -1
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res +1 -1
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb.res.mjs +1 -2
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res +1 -1
- package/src/adapter/EventCollector/EventCollectorChannel_DynamoDbStream.res.mjs +1 -1
- package/src/adapter/EventCollector/EventCollectorChannel_SQS.res +2 -2
- package/src/adapter/EventCollector/EventCollectorChannel_SQS.res.mjs +2 -2
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_FIFO.res +2 -2
- package/src/adapter/EventCollector/EventCollectorChannel_SQS_FIFO.res.mjs +2 -2
- package/src/adapter/EventLog/EventLogStorage.res +3 -3
- package/src/adapter/EventLog/EventLogStorage.res.mjs +3 -3
- package/src/adapter/EventLog/EventLogStorage_DynamoDb.res +2 -2
- package/src/adapter/EventLog/EventLogStorage_DynamoDb.res.mjs +2 -2
- package/src/adapter/EventLog/EventLogStorage_DynamoDbStream.res +2 -2
- package/src/adapter/EventLog/EventLogStorage_DynamoDbStream.res.mjs +2 -2
- package/src/adapter/EventLog/EventLogStorage_Postgres.res +1 -1
- package/src/adapter/EventLog/EventLogStorage_Postgres.res.mjs +1 -1
- package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync.res +7 -1
- package/src/adapter/EventLogSubscription/EventLogSubscription_AppSync.res.mjs +2 -2
- package/src/adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res +1 -1
- package/src/adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res.mjs +1 -1
- package/src/adapter/EventTopic/EventTopicPublisher_SNS.res +2 -2
- package/src/adapter/EventTopic/EventTopicPublisher_SNS.res.mjs +2 -2
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_FIFO.res +2 -2
- package/src/adapter/EventTopic/EventTopicPublisher_SNS_FIFO.res.mjs +2 -2
- package/src/adapter/Mcp/MCP_Lambda.res +4 -4
- package/src/adapter/Mcp/MCP_Lambda.res.mjs +1 -1
- package/src/adapter/Postgres/PgChangeFeedRelay_Builder.res +7 -0
- package/src/adapter/Postgres/PgChangeFeedRelay_Builder.res.mjs +4 -2
- package/src/adapter/Postgres/PgMigration_Builder.res +1 -0
- package/src/adapter/Postgres/PgMigration_Builder.res.mjs +1 -1
- package/src/adapter/QueryDb/PgQueryResolver_Builder.res +7 -0
- package/src/adapter/QueryDb/PgQueryResolver_Builder.res.mjs +4 -2
- package/src/adapter/QueryDb/QueryDbStorage.res +6 -6
- package/src/adapter/QueryDb/QueryDbStorage.res.mjs +6 -6
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb.res +2 -2
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDb.res.mjs +2 -2
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDbStream.res +2 -2
- package/src/adapter/QueryDb/QueryDbStorage_DynamoDbStream.res.mjs +2 -2
- package/src/adapter/QueryDb/QueryDbStorage_Postgres.res +1 -1
- package/src/adapter/QueryDb/QueryDbStorage_Postgres.res.mjs +1 -1
- package/src/adapter/Runtime/AdminEventCollectorEntryPoint.mjs +26 -43
- package/src/adapter/Runtime/AggregateEntryPoint.mjs +52 -45
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +19 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +8 -5
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +19 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res.mjs +8 -5
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +9 -1
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +4 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +9 -1
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res.mjs +4 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +9 -1
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +4 -2
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +9 -1
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res.mjs +4 -2
- package/src/adapter/Runtime/AutomationSliceEntryPoint.mjs +36 -22
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +1 -0
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res.mjs +1 -1
- package/src/adapter/Runtime/DcbCommandTopicEntryPoint.mjs +39 -42
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +7 -1
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs +4 -2
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +19 -1
- package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs +5 -2
- package/src/adapter/Runtime/EventMapperEntryPoint.mjs +25 -23
- package/src/adapter/Runtime/ExtensionPointEntryPoint.mjs +25 -41
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +1 -0
- package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res.mjs +1 -1
- package/src/adapter/Runtime/HandlerFactoryHelpers.mjs +126 -0
- package/src/adapter/Runtime/PluginExtensionPointEntryPoint.mjs +24 -41
- package/src/adapter/Runtime/ReadModelEntryPoint.mjs +33 -24
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +52 -2
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs +25 -7
- package/src/adapter/Runtime/SideEffectEntryPoint.mjs +25 -24
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +9 -1
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res.mjs +4 -2
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res +1 -0
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res.mjs +1 -1
- package/src/adapter/Runtime/StateViewSliceEntryPoint.mjs +26 -21
- package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res +2 -1
- package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res.mjs +2 -2
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +1 -0
- package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res.mjs +1 -1
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents.res +12 -0
- package/src/adapter/ScheduledPublisher/ScheduledPublisher_CloudWatchEvents.res.mjs +4 -2
- package/src/adapter/StateTopic/StateTopic_AppSync.res +7 -1
- package/src/adapter/StateTopic/StateTopic_AppSync.res.mjs +2 -2
- package/src/adapter/Task/TaskBucket_S3.res +1 -0
- package/src/adapter/Task/TaskBucket_S3.res.mjs +7 -1
- package/src/components/Aggregate_Builder_Micro.res.mjs +2 -0
- package/src/components/Aggregate_Builder_NoResolver.res.mjs +2 -0
- package/src/components/Aggregate_Builder_PerAggregate.res.mjs +2 -0
- package/src/components/Aggregate_Builder_Single.res.mjs +2 -0
- package/src/components/Aggregate_Builder_Single_Async.res.mjs +2 -0
- package/src/components/Api/AppSync_Adapter.res +12 -0
- package/src/components/Api/AppSync_Adapter.res.mjs +6 -2
- package/src/components/Api/AppSync_MergedApi.res +12 -0
- package/src/components/Api/AppSync_MergedApi.res.mjs +5 -2
- package/src/components/AutomationSlice_Builder.res.mjs +2 -0
- package/src/components/ExtensionPoint_Builder.res.mjs +2 -0
- package/src/components/ForeignReadModel_Builder.res.mjs +4 -0
- package/src/components/OutboundTranslationSlice_Builder.res.mjs +2 -0
- package/src/components/Plugin.res.mjs +2 -0
- package/src/components/ReadModel_Builder_NoResolver.res.mjs +2 -0
- package/src/components/ReadModel_Builder_NoResolver_Stream.res.mjs +2 -0
- package/src/components/ReadModel_Builder_PerReadModel.res.mjs +2 -0
- package/src/components/ReadModel_Builder_Single.res.mjs +2 -0
- package/src/components/ReadModel_Builder_Single_Stream.res.mjs +2 -0
- package/src/components/SideEffectHandler_PerSideEffectHandler.res.mjs +6 -0
- package/src/components/SideEffectHandler_Single.res.mjs +4 -0
- package/src/components/StateViewSlice_Builder.res.mjs +2 -0
- package/src/components/StateViewSlice_Builder_Stream.res.mjs +2 -0
- package/src/components/Task_Builder_PerBucket.res.mjs +4 -0
- package/src/components/Vpc.res +10 -1
- package/src/components/Vpc.res.mjs +3 -1
- package/src/plugin/cloner/ClonerRunner_Fargate.res +26 -1
- package/src/plugin/cloner/ClonerRunner_Fargate.res.mjs +9 -6
- package/src/plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res +13 -7
- package/src/plugin/heartbeat/HeartbeatRunner_CloudWatchEvents.res.mjs +7 -4
- package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res +1 -0
- package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res.mjs +1 -1
- package/src/plugin/runtime/PluginRuntime_Builder.res +3 -1
- package/src/plugin/runtime/PluginRuntime_Builder.res.mjs +2 -2
- package/src/plugin/stack/Plugin_ExtensionPoint_Builder.res.mjs +4 -0
- package/src/plugin/stack/Plugin_Stack.res +26 -1
- package/src/plugin/stack/Plugin_Stack.res.mjs +8 -3
- package/src/util/Util_CognitoGroupUser.res +6 -0
- package/src/util/Util_CognitoGroupUser.res.mjs +3 -1
- package/src/util/Util_DeadLetterQueue.res +8 -2
- package/src/util/Util_DeadLetterQueue.res.mjs +3 -4
- package/src/util/Util_LogAttribution.res +31 -0
- package/src/util/Util_LogAttribution.res.mjs +27 -0
- package/tests/AWS_TagsTest.res +236 -0
- package/tests/AWS_TagsTest.res.mjs +153 -0
- package/tests/HandlerFactoryDispatchTest.res +190 -0
- package/tests/HandlerFactoryDispatchTest.res.mjs +135 -0
- package/tests/integration/AggregateEntryPoint_IntegrationTest.res +5 -3
- package/tests/integration/AggregateEntryPoint_IntegrationTest.res.mjs +5 -3
|
@@ -20,10 +20,10 @@ let make: ReventlessCore.CommandTopic_Adapter.channelMaker<
|
|
|
20
20
|
'context,
|
|
21
21
|
Util.SQS.channelParts,
|
|
22
22
|
Util.Lambda.runtimeParts,
|
|
23
|
-
> = (~name, ~opts=?) => {
|
|
23
|
+
> = (~name, ~owner, ~opts=?) => {
|
|
24
24
|
let opts =
|
|
25
25
|
opts->Option.map(ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions)
|
|
26
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.CommandTopic.componentType)
|
|
26
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.CommandTopic.componentType, ~role=CommandTopic, ~owner?)
|
|
27
27
|
let queue = PulumiAws.SQS.Queue.make(
|
|
28
28
|
~name,
|
|
29
29
|
~args={
|
|
@@ -17,9 +17,9 @@ import * as Util_DeadLetterQueue$ReventlessAws from "../../util/Util_DeadLetterQ
|
|
|
17
17
|
import * as CommandTopicChannel_SQS$ReventlessAws from "./CommandTopicChannel_SQS.res.mjs";
|
|
18
18
|
import * as CommandTopicChannel_SQS_Runtime$ReventlessAws from "./CommandTopicChannel_SQS_Runtime.res.mjs";
|
|
19
19
|
|
|
20
|
-
function make(name, opts) {
|
|
20
|
+
function make(name, owner, opts) {
|
|
21
21
|
let opts$1 = Stdlib_Option.map(opts, Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions);
|
|
22
|
-
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType);
|
|
22
|
+
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType, "CommandTopic", undefined, undefined, owner, undefined, undefined);
|
|
23
23
|
let queue = new (Aws.sqs.Queue)(name, {
|
|
24
24
|
contentBasedDeduplication: true,
|
|
25
25
|
fifoQueue: true,
|
|
@@ -9,10 +9,10 @@ let make: ReventlessCore.CommandTopic_Adapter.channelMaker<
|
|
|
9
9
|
'context,
|
|
10
10
|
Util.SQS.channelParts,
|
|
11
11
|
Util.Lambda.runtimeParts,
|
|
12
|
-
> = (~name, ~opts=?) => {
|
|
12
|
+
> = (~name, ~owner, ~opts=?) => {
|
|
13
13
|
let opts =
|
|
14
14
|
opts->Option.map(ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions)
|
|
15
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.CommandTopic.componentType)
|
|
15
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.CommandTopic.componentType, ~role=CommandTopic, ~owner?)
|
|
16
16
|
let queue = PulumiAws.SQS.Queue.make(
|
|
17
17
|
~name,
|
|
18
18
|
~args={
|
|
@@ -17,9 +17,9 @@ import * as Util_DeadLetterQueue$ReventlessAws from "../../util/Util_DeadLetterQ
|
|
|
17
17
|
import * as CommandTopicChannel_SQS$ReventlessAws from "./CommandTopicChannel_SQS.res.mjs";
|
|
18
18
|
import * as CommandTopicChannel_SQS_Runtime$ReventlessAws from "./CommandTopicChannel_SQS_Runtime.res.mjs";
|
|
19
19
|
|
|
20
|
-
function make(name, opts) {
|
|
20
|
+
function make(name, owner, opts) {
|
|
21
21
|
let opts$1 = Stdlib_Option.map(opts, Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions);
|
|
22
|
-
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType);
|
|
22
|
+
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType, "CommandTopic", undefined, undefined, owner, undefined, undefined);
|
|
23
23
|
let queue = new (Aws.sqs.Queue)(name, {
|
|
24
24
|
contentBasedDeduplication: true,
|
|
25
25
|
fifoQueue: true,
|
|
@@ -20,7 +20,7 @@ let make: ReventlessCore.CommandTopic_Adapter.channelMaker<
|
|
|
20
20
|
'context,
|
|
21
21
|
Util.SQS.channelParts,
|
|
22
22
|
Util.Lambda.runtimeParts,
|
|
23
|
-
> = (~name, ~opts=?) => {
|
|
23
|
+
> = (~name, ~owner, ~opts=?) => {
|
|
24
24
|
// Captured when handleChannelEvent is called; used by publishJsonsAndWait to
|
|
25
25
|
// run the handler inline and collect typed outcomes without going through SQS.
|
|
26
26
|
let handleCmdsRef: ref<option<ReventlessCore.CommandTopic.jsonCommandsHandler>> = ref(None)
|
|
@@ -28,7 +28,7 @@ let make: ReventlessCore.CommandTopic_Adapter.channelMaker<
|
|
|
28
28
|
let opts =
|
|
29
29
|
opts->Option.map(ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions)
|
|
30
30
|
|
|
31
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.CommandTopic.componentType)
|
|
31
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.CommandTopic.componentType, ~role=CommandTopic, ~owner?)
|
|
32
32
|
let queue = PulumiAws.SQS.Queue.make(
|
|
33
33
|
~name,
|
|
34
34
|
~args={
|
|
@@ -15,12 +15,12 @@ import * as Util_DeadLetterQueue$ReventlessAws from "../../util/Util_DeadLetterQ
|
|
|
15
15
|
import * as CommandTopicChannel_SQS$ReventlessAws from "./CommandTopicChannel_SQS.res.mjs";
|
|
16
16
|
import * as CommandTopicChannel_SQS_Runtime$ReventlessAws from "./CommandTopicChannel_SQS_Runtime.res.mjs";
|
|
17
17
|
|
|
18
|
-
function make(name, opts) {
|
|
18
|
+
function make(name, owner, opts) {
|
|
19
19
|
let handleCmdsRef = {
|
|
20
20
|
contents: undefined
|
|
21
21
|
};
|
|
22
22
|
let opts$1 = Stdlib_Option.map(opts, Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions);
|
|
23
|
-
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType);
|
|
23
|
+
let tags = AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType, "CommandTopic", undefined, undefined, owner, undefined, undefined);
|
|
24
24
|
let queue = new (Aws.sqs.Queue)(name, {
|
|
25
25
|
redrivePolicy: Util_DeadLetterQueue$ReventlessAws.queue.arn.apply(dlqArn => SQS_Queue$PulumiAws.RedrivePolicy.make(dlqArn, 5)),
|
|
26
26
|
tags: tags,
|
|
@@ -60,6 +60,7 @@ let make: ReventlessCore.Counter_Adapter.handlerMaker = (
|
|
|
60
60
|
let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
|
|
61
61
|
~name,
|
|
62
62
|
~unitKind=ReventlessCore.Monitoring.Other("Counter"),
|
|
63
|
+
~componentKind=ReventlessCore.ComponentType.Counter,
|
|
63
64
|
~code,
|
|
64
65
|
~sourceCodeHash,
|
|
65
66
|
~envVars,
|
|
@@ -40,7 +40,7 @@ function make(name, referencesName, referencesDb, countsName, countsDb, param, s
|
|
|
40
40
|
let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
|
|
41
41
|
TAG: "Other",
|
|
42
42
|
_0: "Counter"
|
|
43
|
-
}, match.code, match.sourceCodeHash, envVars, 1024, 30, undefined, undefined, undefined, undefined, undefined, componentOpts);
|
|
43
|
+
}, "Counter", match.code, match.sourceCodeHash, envVars, 1024, 30, undefined, undefined, undefined, undefined, undefined, componentOpts);
|
|
44
44
|
let lambda = runtime.parts.lambda;
|
|
45
45
|
let subscribe = (sourceName, source) => Util_EventSourceMapping$ReventlessAws.subscribe(undefined, lambda, name, sourceName, source, opts);
|
|
46
46
|
subscribe(referencesName, referencesStream);
|
|
@@ -50,7 +50,7 @@ let make: ReventlessCore.DcbEventLog_Adapter.storageMaker = (
|
|
|
50
50
|
|
|
51
51
|
// Create DynamoDB table with stream enabled — EventTopicPublisher_DynamoDbStream
|
|
52
52
|
// needs a DynamoDbStream resource to connect the EventTopic.
|
|
53
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.DcbEventLog
|
|
53
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.ComponentType.Plugin, ~role=DcbEventLog, ~scope=Plugin)
|
|
54
54
|
let table = Util_DynamoDbStream.makeTable(
|
|
55
55
|
name,
|
|
56
56
|
~attributes,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
3
|
import * as AWS_Tags$ReventlessAws from "../AWS_Tags.res.mjs";
|
|
4
|
-
import * as DcbEventLog$ReventlessCore from "@reventlessdev/reventless-core/src/components/DcbEventLog/DcbEventLog.res.mjs";
|
|
5
4
|
import * as Util_DynamoDb$ReventlessAws from "../../util/Util_DynamoDb.res.mjs";
|
|
6
5
|
import * as Util_DynamoDbStream$ReventlessAws from "../../util/Util_DynamoDbStream.res.mjs";
|
|
7
6
|
import * as DcbEventLogStorage_DynamoDb_Runtime$ReventlessAws from "./DcbEventLogStorage_DynamoDb_Runtime.res.mjs";
|
|
@@ -31,7 +30,7 @@ function make(name, indexes, partitionTag, crossPartitionTagKeysOpt, opts) {
|
|
|
31
30
|
rangeKey: "position"
|
|
32
31
|
};
|
|
33
32
|
});
|
|
34
|
-
let tags = AWS_Tags$ReventlessAws.make(name, DcbEventLog
|
|
33
|
+
let tags = AWS_Tags$ReventlessAws.make(name, "Plugin", "DcbEventLog", "Plugin", undefined, undefined, undefined, undefined);
|
|
35
34
|
let table = Util_DynamoDbStream$ReventlessAws.makeTable(attributes, globalSecondaryIndexes, undefined, "position", "NEW_IMAGE", tags, opts, name);
|
|
36
35
|
return {
|
|
37
36
|
resources: [Util_DynamoDbStream$ReventlessAws.toResource(tags, table)],
|
|
@@ -30,7 +30,7 @@ let connect = (
|
|
|
30
30
|
let make: ReventlessCore.EventCollector_Adapter.channelMaker<callbackEvent, 'context, channelParts> = (
|
|
31
31
|
~name as _,
|
|
32
32
|
~eventTopics,
|
|
33
|
-
~opts as _,
|
|
33
|
+
~owner as _, ~opts as _,
|
|
34
34
|
) => {
|
|
35
35
|
// Postgres-backed event logs have NO storage resources (no table, no stream) —
|
|
36
36
|
// skip them instead of producing undefined entries; their events arrive via the
|
|
@@ -20,7 +20,7 @@ function connect(name, channelSpecs, runtime, opts) {
|
|
|
20
20
|
return EventCollectorChannel_Helpers$ReventlessAws.connectLambda(lambda, name, lambdaRole, queues, eventTopics, resources, opts$1);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
function make(param, eventTopics, param$1) {
|
|
23
|
+
function make(param, eventTopics, param$1, param$2) {
|
|
24
24
|
let eventTopicResources = Stdlib_Array.filterMap(Object.values(eventTopics), outputs => outputs.resources[0]);
|
|
25
25
|
let enqueueEventNotSupported = (delay, id, messageBody) => {
|
|
26
26
|
log.debug("EventCollectorChannel_DynamoDbStream", Object.fromEntries([
|
|
@@ -33,11 +33,11 @@ let connect = (
|
|
|
33
33
|
let make: ReventlessCore.EventCollector_Adapter.channelMaker<callbackEvent, 'context, channelParts> = (
|
|
34
34
|
~name,
|
|
35
35
|
~eventTopics,
|
|
36
|
-
~opts,
|
|
36
|
+
~owner, ~opts,
|
|
37
37
|
) => {
|
|
38
38
|
let opts = opts->ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions
|
|
39
39
|
|
|
40
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventCollector.componentType)
|
|
40
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventCollector.componentType, ~role=EventCollector, ~owner?)
|
|
41
41
|
let queue = PulumiAws.SQS.Queue.make(
|
|
42
42
|
~name,
|
|
43
43
|
~args={
|
|
@@ -25,9 +25,9 @@ function connect(name, channelSpecs, runtime, opts) {
|
|
|
25
25
|
return EventCollectorChannel_Helpers$ReventlessAws.connectLambda(lambda, name, lambdaRole, queues, eventTopics, resources, opts$1);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
function make(name, eventTopics, opts) {
|
|
28
|
+
function make(name, eventTopics, owner, opts) {
|
|
29
29
|
let opts$1 = Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions(opts);
|
|
30
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventCollector$ReventlessCore.componentType);
|
|
30
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventCollector$ReventlessCore.componentType, "EventCollector", undefined, undefined, owner, undefined, undefined);
|
|
31
31
|
let queue = new (Aws.sqs.Queue)(name, {
|
|
32
32
|
redrivePolicy: Util_DeadLetterQueue$ReventlessAws.queue.arn.apply(dlqArn => SQS_Queue$PulumiAws.RedrivePolicy.make(dlqArn, 5)),
|
|
33
33
|
tags: tags,
|
|
@@ -7,11 +7,11 @@ let connect = EventCollectorChannel_SQS.connect
|
|
|
7
7
|
let make: ReventlessCore.EventCollector_Adapter.channelMaker<callbackEvent, 'context, channelParts> = (
|
|
8
8
|
~name,
|
|
9
9
|
~eventTopics,
|
|
10
|
-
~opts,
|
|
10
|
+
~owner, ~opts,
|
|
11
11
|
) => {
|
|
12
12
|
let opts = opts->ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions
|
|
13
13
|
|
|
14
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventCollector.componentType)
|
|
14
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventCollector.componentType, ~role=EventCollector, ~owner?)
|
|
15
15
|
let queue = PulumiAws.SQS.Queue.make(
|
|
16
16
|
~name,
|
|
17
17
|
~args={
|
|
@@ -10,9 +10,9 @@ import * as Util_DeadLetterQueue$ReventlessAws from "../../util/Util_DeadLetterQ
|
|
|
10
10
|
import * as EventCollectorChannel_SQS$ReventlessAws from "./EventCollectorChannel_SQS.res.mjs";
|
|
11
11
|
import * as EventCollectorChannel_SQS_Runtime$ReventlessAws from "./EventCollectorChannel_SQS_Runtime.res.mjs";
|
|
12
12
|
|
|
13
|
-
function make(name, eventTopics, opts) {
|
|
13
|
+
function make(name, eventTopics, owner, opts) {
|
|
14
14
|
let opts$1 = Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions(opts);
|
|
15
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventCollector$ReventlessCore.componentType);
|
|
15
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventCollector$ReventlessCore.componentType, "EventCollector", undefined, undefined, owner, undefined, undefined);
|
|
16
16
|
let queue = new (Aws.sqs.Queue)(name, {
|
|
17
17
|
contentBasedDeduplication: true,
|
|
18
18
|
fifoQueue: true,
|
|
@@ -9,10 +9,10 @@ module Postgres = EventLogStorage_Postgres
|
|
|
9
9
|
// or the streamed DynamoDB maker. Used by the Single (sync/async) aggregate
|
|
10
10
|
// builders; PerAggregate and Micro stay on `DynamoDbStream` directly.
|
|
11
11
|
module Selectable = {
|
|
12
|
-
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~opts) =>
|
|
12
|
+
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~owner, ~opts) =>
|
|
13
13
|
if EventLogBackend.isPostgres() {
|
|
14
|
-
Postgres.make(~name, ~opts)
|
|
14
|
+
Postgres.make(~name, ~owner, ~opts)
|
|
15
15
|
} else {
|
|
16
|
-
DynamoDbStream.make(~name, ~opts)
|
|
16
|
+
DynamoDbStream.make(~name, ~owner, ~opts)
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -4,11 +4,11 @@ import * as EventLogBackend$ReventlessAws from "./EventLogBackend.res.mjs";
|
|
|
4
4
|
import * as EventLogStorage_Postgres$ReventlessAws from "./EventLogStorage_Postgres.res.mjs";
|
|
5
5
|
import * as EventLogStorage_DynamoDbStream$ReventlessAws from "./EventLogStorage_DynamoDbStream.res.mjs";
|
|
6
6
|
|
|
7
|
-
function make(name, opts) {
|
|
7
|
+
function make(name, owner, opts) {
|
|
8
8
|
if (EventLogBackend$ReventlessAws.isPostgres()) {
|
|
9
|
-
return EventLogStorage_Postgres$ReventlessAws.make(name, opts);
|
|
9
|
+
return EventLogStorage_Postgres$ReventlessAws.make(name, owner, opts);
|
|
10
10
|
} else {
|
|
11
|
-
return EventLogStorage_DynamoDbStream$ReventlessAws.make(name, opts);
|
|
11
|
+
return EventLogStorage_DynamoDbStream$ReventlessAws.make(name, owner, opts);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~opts) => {
|
|
2
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventLog.componentType)
|
|
1
|
+
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~owner, ~opts) => {
|
|
2
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventLog.componentType, ~role=EventLog, ~owner?)
|
|
3
3
|
let table = Util.DynamoDb.makeTable(
|
|
4
4
|
name,
|
|
5
5
|
~attributes=[{name: "id", type_: "S"}, {name: "position", type_: "S"}],
|
|
@@ -5,8 +5,8 @@ import * as EventLog$ReventlessCore from "@reventlessdev/reventless-core/src/com
|
|
|
5
5
|
import * as Util_DynamoDb$ReventlessAws from "../../util/Util_DynamoDb.res.mjs";
|
|
6
6
|
import * as EventLogStorage_DynamoDb_Runtime$ReventlessAws from "./EventLogStorage_DynamoDb_Runtime.res.mjs";
|
|
7
7
|
|
|
8
|
-
function make(name, opts) {
|
|
9
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventLog$ReventlessCore.componentType);
|
|
8
|
+
function make(name, owner, opts) {
|
|
9
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventLog$ReventlessCore.componentType, "EventLog", undefined, undefined, owner, undefined, undefined);
|
|
10
10
|
let table = Util_DynamoDb$ReventlessAws.makeTable([
|
|
11
11
|
{
|
|
12
12
|
name: "id",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~opts) => {
|
|
2
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventLog.componentType)
|
|
1
|
+
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~owner, ~opts) => {
|
|
2
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventLog.componentType, ~role=EventLog, ~owner?)
|
|
3
3
|
let table = Util.DynamoDbStream.makeTable(
|
|
4
4
|
name,
|
|
5
5
|
~attributes=[{name: "id", type_: "S"}, {name: "position", type_: "S"}],
|
|
@@ -6,8 +6,8 @@ import * as Util_DynamoDb$ReventlessAws from "../../util/Util_DynamoDb.res.mjs";
|
|
|
6
6
|
import * as Util_DynamoDbStream$ReventlessAws from "../../util/Util_DynamoDbStream.res.mjs";
|
|
7
7
|
import * as EventLogStorage_DynamoDb_Runtime$ReventlessAws from "./EventLogStorage_DynamoDb_Runtime.res.mjs";
|
|
8
8
|
|
|
9
|
-
function make(name, opts) {
|
|
10
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventLog$ReventlessCore.componentType);
|
|
9
|
+
function make(name, owner, opts) {
|
|
10
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventLog$ReventlessCore.componentType, "EventLog", undefined, undefined, owner, undefined, undefined);
|
|
11
11
|
let table = Util_DynamoDbStream$ReventlessAws.makeTable([
|
|
12
12
|
{
|
|
13
13
|
name: "id",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
//
|
|
12
12
|
// Selected by `EventLogStorage.Selectable` when `EventLogBackend` holds a selection.
|
|
13
13
|
|
|
14
|
-
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~opts as _) => {
|
|
14
|
+
let make: ReventlessCore.EventLog_Adapter.storageMaker = (~name, ~owner as _, ~opts as _) => {
|
|
15
15
|
// `name` is the ComponentType-derived `<Aggregate>EventLog` — the canonical
|
|
16
16
|
// `event_log.log_name`. Register it so `makePlatform` can wire the change-feed
|
|
17
17
|
// relay; the collector queue is attached later in forPluginEventCollector,
|
|
@@ -4,7 +4,7 @@ import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
|
|
|
4
4
|
import * as EventLogBackend$ReventlessAws from "./EventLogBackend.res.mjs";
|
|
5
5
|
import * as EventLogStorage_Postgres_Runtime$ReventlessAws from "./EventLogStorage_Postgres_Runtime.res.mjs";
|
|
6
6
|
|
|
7
|
-
function make(name, param) {
|
|
7
|
+
function make(name, param, param$1) {
|
|
8
8
|
let aggregateName = name.endsWith("EventLog") ? name.slice(0, name.length - 8 | 0) : name;
|
|
9
9
|
EventLogBackend$ReventlessAws.registerRelayLog(name, aggregateName);
|
|
10
10
|
let match = EventLogBackend$ReventlessAws.get();
|
|
@@ -160,6 +160,12 @@ let make = (
|
|
|
160
160
|
let lambdaRole = IAM.Role.makeWithDefaultPolicy(
|
|
161
161
|
~name=name ++ "EventLogSubRole",
|
|
162
162
|
~servicePrincipal=AWS.Lambda.principal->Pulumi.Output.make,
|
|
163
|
+
~tags=AWS.Tags.make(
|
|
164
|
+
~name=name ++ "EventLogSubRole",
|
|
165
|
+
~kind=ReventlessCore.EventTopic.componentType,
|
|
166
|
+
~role=Identity,
|
|
167
|
+
~component=name,
|
|
168
|
+
),
|
|
163
169
|
~opts,
|
|
164
170
|
)
|
|
165
171
|
|
|
@@ -239,7 +245,7 @@ let make = (
|
|
|
239
245
|
memorySize: 128->Pulumi.Input.make,
|
|
240
246
|
timeout: 30->Pulumi.Input.make,
|
|
241
247
|
layers,
|
|
242
|
-
tags: AWS.Tags.make(~name=name ++ "EventLogSub", ReventlessCore.EventTopic.componentType),
|
|
248
|
+
tags: AWS.Tags.make(~name=name ++ "EventLogSub", ~kind=ReventlessCore.EventTopic.componentType, ~role=EventLogSubscription, ~component=name),
|
|
243
249
|
environment: (
|
|
244
250
|
{
|
|
245
251
|
Lambda.Function.variables: Dict.fromArray([
|
|
@@ -110,7 +110,7 @@ function make(name, topicName, eventTopicOutputs, eventsApi, opts) {
|
|
|
110
110
|
}, opts);
|
|
111
111
|
});
|
|
112
112
|
Util_SQS$ReventlessAws.subscribeToSnsTopic(queue, name + "EventLogSub", name, snsResource, opts);
|
|
113
|
-
let lambdaRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "EventLogSubRole", Pulumi.output(AWS$ReventlessAws.Lambda.principal), opts);
|
|
113
|
+
let lambdaRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "EventLogSubRole", Pulumi.output(AWS$ReventlessAws.Lambda.principal), AWS_Tags$ReventlessAws.make(name + "EventLogSubRole", EventTopic$ReventlessCore.componentType, "Identity", undefined, name, undefined, undefined, undefined), opts);
|
|
114
114
|
Pulumi.all([
|
|
115
115
|
queue.arn,
|
|
116
116
|
eventsApi.api.apiArn
|
|
@@ -158,7 +158,7 @@ function make(name, topicName, eventTopicOutputs, eventsApi, opts) {
|
|
|
158
158
|
memorySize: 128,
|
|
159
159
|
timeout: 30,
|
|
160
160
|
layers: layers,
|
|
161
|
-
tags: AWS_Tags$ReventlessAws.make(name + "EventLogSub", EventTopic$ReventlessCore.componentType),
|
|
161
|
+
tags: AWS_Tags$ReventlessAws.make(name + "EventLogSub", EventTopic$ReventlessCore.componentType, "EventLogSubscription", undefined, name, undefined, undefined, undefined),
|
|
162
162
|
environment: {
|
|
163
163
|
variables: Object.fromEntries([
|
|
164
164
|
[
|
|
@@ -7,7 +7,7 @@ import * as AWS$ReventlessAws from "../AWS.res.mjs";
|
|
|
7
7
|
import * as Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Adapter.res.mjs";
|
|
8
8
|
import * as Util_DynamoDbStream$ReventlessAws from "../../util/Util_DynamoDbStream.res.mjs";
|
|
9
9
|
|
|
10
|
-
function make(param, storageResources, param$1) {
|
|
10
|
+
function make(param, storageResources, param$1, param$2) {
|
|
11
11
|
let storageResource = Util_DynamoDbStream$ReventlessAws.findResource(storageResources);
|
|
12
12
|
return {
|
|
13
13
|
resources: [Adapter$ReventlessCore.outputToResource(storageResource.service.apply(service => {
|
|
@@ -4,9 +4,9 @@ open PulumiAws
|
|
|
4
4
|
Read by subscriptionInfraHook (Phase 5) to skip non-SNS entries. */
|
|
5
5
|
let snsRegistry: Set.t<string> = Set.make()
|
|
6
6
|
|
|
7
|
-
let make: ReventlessCore.EventTopic_Adapter.publisherMaker = (~name, ~storageResources as _, ~opts) => {
|
|
7
|
+
let make: ReventlessCore.EventTopic_Adapter.publisherMaker = (~name, ~storageResources as _, ~owner, ~opts) => {
|
|
8
8
|
snsRegistry->Set.add(name)
|
|
9
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventTopic.componentType)
|
|
9
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventTopic.componentType, ~role=EventTopic, ~owner?)
|
|
10
10
|
let topic = SNS.Topic.make(
|
|
11
11
|
~name,
|
|
12
12
|
~args={SNS.Topic.tags: tags},
|
|
@@ -11,9 +11,9 @@ import * as EventTopicPublisher_SNS_Runtime$ReventlessAws from "./EventTopicPubl
|
|
|
11
11
|
|
|
12
12
|
let snsRegistry = new Set();
|
|
13
13
|
|
|
14
|
-
function make(name, param, opts) {
|
|
14
|
+
function make(name, param, owner, opts) {
|
|
15
15
|
snsRegistry.add(name);
|
|
16
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventTopic$ReventlessCore.componentType);
|
|
16
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventTopic$ReventlessCore.componentType, "EventTopic", undefined, undefined, owner, undefined, undefined);
|
|
17
17
|
let topic = new (Aws.sns.Topic)(name, {
|
|
18
18
|
tags: tags
|
|
19
19
|
}, opts);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
open PulumiAws
|
|
2
2
|
|
|
3
|
-
let make: ReventlessCore.EventTopic_Adapter.publisherMaker = (~name, ~storageResources as _, ~opts) => {
|
|
4
|
-
let tags = AWS.Tags.make(~name, ReventlessCore.EventTopic.componentType)
|
|
3
|
+
let make: ReventlessCore.EventTopic_Adapter.publisherMaker = (~name, ~storageResources as _, ~owner, ~opts) => {
|
|
4
|
+
let tags = AWS.Tags.make(~name, ~kind=ReventlessCore.EventTopic.componentType, ~role=EventTopic, ~owner?)
|
|
5
5
|
let topic = SNS.Topic.make(
|
|
6
6
|
~name,
|
|
7
7
|
~args={
|
|
@@ -10,8 +10,8 @@ import * as EventTopic$ReventlessCore from "@reventlessdev/reventless-core/src/c
|
|
|
10
10
|
import * as Util_SNS_FIFO$ReventlessAws from "../../util/Util_SNS_FIFO.res.mjs";
|
|
11
11
|
import * as EventTopicPublisher_SNS_Runtime$ReventlessAws from "./EventTopicPublisher_SNS_Runtime.res.mjs";
|
|
12
12
|
|
|
13
|
-
function make(name, param, opts) {
|
|
14
|
-
let tags = AWS_Tags$ReventlessAws.make(name, EventTopic$ReventlessCore.componentType);
|
|
13
|
+
function make(name, param, owner, opts) {
|
|
14
|
+
let tags = AWS_Tags$ReventlessAws.make(name, EventTopic$ReventlessCore.componentType, "EventTopic", undefined, undefined, owner, undefined, undefined);
|
|
15
15
|
let topic = new (Aws.sns.Topic)(name, {
|
|
16
16
|
contentBasedDeduplication: true,
|
|
17
17
|
fifoTopic: true,
|
|
@@ -102,11 +102,11 @@ let generateConfig = (
|
|
|
102
102
|
{serverName, serverVersion, tools, resources, eventHistoryResources}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
/** Generate the
|
|
106
|
-
Contains only
|
|
107
|
-
and
|
|
105
|
+
/** Generate the platform-only MCP config for split mode.
|
|
106
|
+
Contains only platform administrative tools (Plugin_Activate, Plugin_Deactivate, Clone)
|
|
107
|
+
and platform resources (Plugin, Plugins). No plugin-contributed entries.
|
|
108
108
|
|
|
109
|
-
The commandTopicArns and queryDbTableNames must map
|
|
109
|
+
The commandTopicArns and queryDbTableNames must map platform field names to their
|
|
110
110
|
corresponding AWS resource ARNs/names. When Lambda Function URL deployment is
|
|
111
111
|
available (Step 13), these will be wired from Pulumi stack outputs. */
|
|
112
112
|
let generateAdminConfig = (
|
|
@@ -263,7 +263,7 @@ async function dispatchTool(tool, args, identity) {
|
|
|
263
263
|
meta: payload_meta,
|
|
264
264
|
identity: identity
|
|
265
265
|
};
|
|
266
|
-
return await Runtime$ReventlessCore.runEffect(undefined, undefined, `Mcp(` + tool.name + `)`, undefined, identity, undefined, generateCommand(payload));
|
|
266
|
+
return await Runtime$ReventlessCore.runEffect(undefined, undefined, `Mcp(` + tool.name + `)`, undefined, undefined, undefined, identity, undefined, generateCommand(payload));
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
export {
|
|
@@ -102,6 +102,7 @@ let make = (
|
|
|
102
102
|
let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
|
|
103
103
|
~name,
|
|
104
104
|
~unitKind=ReventlessCore.Monitoring.Other("ChangeFeed"),
|
|
105
|
+
~componentKind=ReventlessCore.ComponentType.Platform,
|
|
105
106
|
~code,
|
|
106
107
|
~sourceCodeHash,
|
|
107
108
|
~envVars,
|
|
@@ -153,6 +154,12 @@ let make = (
|
|
|
153
154
|
~args={
|
|
154
155
|
description: "Poll Postgres DCB change feed and relay to EventCollector"->Pulumi.Input.make,
|
|
155
156
|
scheduleExpression: EventRule.ScheduleExpression.every(Minutes(intervalMinutes)),
|
|
157
|
+
tags: AWS.Tags.make(
|
|
158
|
+
~name=`${Pulumi.Pulumi.getStackName()}-${name}`,
|
|
159
|
+
~kind=ReventlessCore.ComponentType.Platform,
|
|
160
|
+
~role=Scheduler,
|
|
161
|
+
~component=name,
|
|
162
|
+
),
|
|
156
163
|
},
|
|
157
164
|
~opts=?customOpts,
|
|
158
165
|
)
|
|
@@ -8,6 +8,7 @@ import * as Pulumi from "@pulumi/pulumi";
|
|
|
8
8
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
9
9
|
import * as AWS$ReventlessAws from "../AWS.res.mjs";
|
|
10
10
|
import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
|
|
11
|
+
import * as AWS_Tags$ReventlessAws from "../AWS_Tags.res.mjs";
|
|
11
12
|
import * as Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Adapter.res.mjs";
|
|
12
13
|
import * as PolicyDocument$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/IAM/PolicyDocument.res.mjs";
|
|
13
14
|
import * as Util_Bundle$ReventlessAws from "../../util/Util_Bundle.res.mjs";
|
|
@@ -71,7 +72,7 @@ function make(name, logs, securityGroupId, subnetIds, intervalMinutesOpt, opts)
|
|
|
71
72
|
let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
|
|
72
73
|
TAG: "Other",
|
|
73
74
|
_0: "ChangeFeed"
|
|
74
|
-
}, match.code, match.sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
75
|
+
}, "Platform", match.code, match.sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
75
76
|
let secretArns = logs.map(l => l.connectionConfig.apply(cc => cc.secretArn));
|
|
76
77
|
let queueArns = logs.map(l => l.targetQueueArn);
|
|
77
78
|
Pulumi.all([
|
|
@@ -102,7 +103,8 @@ function make(name, logs, securityGroupId, subnetIds, intervalMinutesOpt, opts)
|
|
|
102
103
|
scheduleExpression: Primitive_option.some(Cloudwatch_EventRule$PulumiAws.ScheduleExpression.every({
|
|
103
104
|
TAG: "Minutes",
|
|
104
105
|
_0: intervalMinutes
|
|
105
|
-
}))
|
|
106
|
+
})),
|
|
107
|
+
tags: AWS_Tags$ReventlessAws.make(Pulumi.getStack() + `-` + name, "Platform", "Scheduler", undefined, name, undefined, undefined, undefined)
|
|
106
108
|
}, customOpts !== undefined ? Primitive_option.valFromOption(customOpts) : undefined);
|
|
107
109
|
let lambda = runtime.parts.lambda;
|
|
108
110
|
Pulumi.all([
|
|
@@ -24,7 +24,7 @@ function make(name, handlerConfig, secretArn, securityGroupId, subnetIds, opts)
|
|
|
24
24
|
let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
|
|
25
25
|
TAG: "Other",
|
|
26
26
|
_0: "Migration"
|
|
27
|
-
}, match.code, sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
27
|
+
}, "Platform", match.code, sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
28
28
|
let rolePolicy = new (Aws.iam.RolePolicy)(name + `MigrationAccess`, {
|
|
29
29
|
policy: secretArn.apply(arn => PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, name + `MigrationAccessPolicy`, [{
|
|
30
30
|
Sid: "AllowGetSecret",
|
|
@@ -151,6 +151,7 @@ let provision = (
|
|
|
151
151
|
let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
|
|
152
152
|
~name,
|
|
153
153
|
~unitKind=ReventlessCore.Monitoring.Other("QueryResolver"),
|
|
154
|
+
~componentKind=ReventlessCore.ComponentType.QueryDb,
|
|
154
155
|
~code,
|
|
155
156
|
~sourceCodeHash,
|
|
156
157
|
~envVars,
|
|
@@ -188,6 +189,12 @@ let provision = (
|
|
|
188
189
|
let dataSourceRole = IAM.Role.makeWithDefaultPolicy(
|
|
189
190
|
~name=name ++ "DataSource",
|
|
190
191
|
~servicePrincipal=AWS.AppSync.principal->Pulumi.Output.make,
|
|
192
|
+
~tags=AWS.Tags.make(
|
|
193
|
+
~name=name ++ "DataSource",
|
|
194
|
+
~kind=ReventlessCore.QueryDb.componentType,
|
|
195
|
+
~role=Identity,
|
|
196
|
+
~component=name,
|
|
197
|
+
),
|
|
191
198
|
~opts=customOpts,
|
|
192
199
|
)
|
|
193
200
|
let lambdaArn = runtime.parts.lambda->Pulumi.Output.flatMap(l => l.arn)
|
|
@@ -9,6 +9,8 @@ import * as Pulumi from "@pulumi/pulumi";
|
|
|
9
9
|
import * as Primitive_string from "@rescript/runtime/lib/es6/Primitive_string.js";
|
|
10
10
|
import * as AWS$ReventlessAws from "../AWS.res.mjs";
|
|
11
11
|
import * as Logger$ReventlessCore from "@reventlessdev/reventless-core/src/util/Logger.res.mjs";
|
|
12
|
+
import * as AWS_Tags$ReventlessAws from "../AWS_Tags.res.mjs";
|
|
13
|
+
import * as QueryDb$ReventlessCore from "@reventlessdev/reventless-core/src/components/QueryDb/QueryDb.res.mjs";
|
|
12
14
|
import * as PolicyDocument$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/IAM/PolicyDocument.res.mjs";
|
|
13
15
|
import * as Util_Bundle$ReventlessAws from "../../util/Util_Bundle.res.mjs";
|
|
14
16
|
import * as PgConnection$ReventlessAws from "../Postgres/PgConnection.res.mjs";
|
|
@@ -90,7 +92,7 @@ function provision(api, selection, opts) {
|
|
|
90
92
|
let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
|
|
91
93
|
TAG: "Other",
|
|
92
94
|
_0: "QueryResolver"
|
|
93
|
-
}, match.code, match.sourceCodeHash, envVars, 512, 30, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
95
|
+
}, "QueryDb", match.code, match.sourceCodeHash, envVars, 512, 30, undefined, undefined, undefined, undefined, vpcConfig, opts);
|
|
94
96
|
selection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)(name + "-pgSecret", {
|
|
95
97
|
policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, name + "-pgSecretPolicy", [{
|
|
96
98
|
Sid: "AllowGetPgSecret",
|
|
@@ -100,7 +102,7 @@ function provision(api, selection, opts) {
|
|
|
100
102
|
}])),
|
|
101
103
|
role: runtime.parts.lambdaRole.id
|
|
102
104
|
}));
|
|
103
|
-
let dataSourceRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "DataSource", Pulumi.output(AWS$ReventlessAws.AppSync.principal), customOpts);
|
|
105
|
+
let dataSourceRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "DataSource", Pulumi.output(AWS$ReventlessAws.AppSync.principal), AWS_Tags$ReventlessAws.make(name + "DataSource", QueryDb$ReventlessCore.componentType, "Identity", undefined, name, undefined, undefined, undefined), customOpts);
|
|
104
106
|
let lambdaArn = Output$Pulumi.flatMap(runtime.parts.lambda, l => l.arn);
|
|
105
107
|
Pulumi.all([
|
|
106
108
|
lambdaArn,
|
|
@@ -24,12 +24,12 @@ module Selectable = {
|
|
|
24
24
|
~ttl=?,
|
|
25
25
|
~api,
|
|
26
26
|
~apiRole,
|
|
27
|
-
~opts,
|
|
27
|
+
~owner, ~opts,
|
|
28
28
|
) =>
|
|
29
29
|
if QueryDbBackend.isPostgresFor(name) {
|
|
30
|
-
Postgres.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~opts)
|
|
30
|
+
Postgres.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~owner, ~opts)
|
|
31
31
|
} else {
|
|
32
|
-
DynamoDb.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~opts)
|
|
32
|
+
DynamoDb.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~owner, ~opts)
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -43,12 +43,12 @@ module SelectableStream = {
|
|
|
43
43
|
~ttl=?,
|
|
44
44
|
~api,
|
|
45
45
|
~apiRole,
|
|
46
|
-
~opts,
|
|
46
|
+
~owner, ~opts,
|
|
47
47
|
) =>
|
|
48
48
|
if QueryDbBackend.isPostgresFor(name) {
|
|
49
49
|
QueryDbBackend.postgresStreamRegistry->Set.add(name)
|
|
50
|
-
Postgres.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~opts)
|
|
50
|
+
Postgres.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~owner, ~opts)
|
|
51
51
|
} else {
|
|
52
|
-
DynamoDbStream.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~opts)
|
|
52
|
+
DynamoDbStream.make(~name, ~indexes, ~subIdField?, ~ttl?, ~api, ~apiRole, ~owner, ~opts)
|
|
53
53
|
}
|
|
54
54
|
}
|