Skip to content

refactor: drop direct AWS SDK use from workflow core#744

Merged
intel352 merged 5 commits into
mainfrom
refactor/remove-aws-from-core-v2
May 20, 2026
Merged

refactor: drop direct AWS SDK use from workflow core#744
intel352 merged 5 commits into
mainfrom
refactor/remove-aws-from-core-v2

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Summary

Workflow core no longer imports any aws-sdk-go-v2/service/* package directly. Five files / directories are deleted; the remaining AWS-SDK pulls in go.mod are purely indirect via modular/eventbus/v2.

Deleted (all dead in workflow core; replacement is workflow-plugin-aws):

Path Why
provider/aws/ (entire dir) Side-effect-only cmd/server/main.go blank import. No call sites.
artifact/s3.go (S3Store) No callers; artifact pipeline uses Store interface; artifact/local.go is the only concrete impl now.
iam/aws.go (AWSIAMProvider) api/router.go registration call removed; KubernetesProvider + OIDCProvider remain.
plugin/rbac/aws.go + plugin/rbac/aws_test.go No external importers; only self-tested.
iam/providers_test.go AWS subtests; plugin/rbac/builtin_test.go TestAWSIAMProvider_NameCheck Followed the deleted impls.

Direct AWS imports before → after: 9 → 0.

github.com/aws/aws-sdk-go-v2                       6 direct → 0
github.com/aws/aws-sdk-go-v2/config                1 direct → 0
github.com/aws/aws-sdk-go-v2/credentials           1 direct → 0
github.com/aws/aws-sdk-go-v2/service/cloudwatch    1 direct → 0
github.com/aws/aws-sdk-go-v2/service/ecs           1 direct → 0
github.com/aws/aws-sdk-go-v2/service/eks           1 direct → 0
github.com/aws/aws-sdk-go-v2/service/iam           1 direct → 0
github.com/aws/aws-sdk-go-v2/service/s3            1 direct → 0
github.com/aws/aws-sdk-go-v2/service/sts           1 direct → 0

The kinesis + sts indirect pulls come from modular/modules/eventbus/v2; reducing those is a modular-side concern (the eventbus has multiple backends and pulls every SDK).

Test plan

  • GOWORK=off go test ./... — all 138 packages green
  • GOWORK=off go build ./... — clean
  • GOWORK=off go mod why aws-sdk-go-v2/service/{cloudwatch,ecs,eks,iam,s3} — "main module does not need package …" for each
  • gofmt -l . — clean

🤖 Generated with Claude Code

Workflow core no longer imports any aws-sdk-go-v2/service/*
package directly. The remaining AWS-SDK presence in go.mod is
purely indirect (modular/eventbus/v2 pulls sts + kinesis, which
is modular's concern).

Deleted (all unused by the rest of workflow; workflow-plugin-aws
is the in-tree replacement for IaC):

- provider/aws/ — full directory (plugin.go, clients.go,
  deploy.go, registry.go, _test.go). cmd/server/main.go's blank
  side-effect import dropped along with it.
- artifact/s3.go — S3Store impl. No callers (artifact pipeline
  steps use the Store interface; FS impl in artifact/local.go is
  the only concrete impl now).
- iam/aws.go — AWSIAMProvider. api/router.go's resolver
  registration call removed; KubernetesProvider + OIDCProvider
  remain. Plugin-side replacement landed in workflow-plugin-aws.
- plugin/rbac/aws.go — dead code; no external importers.
  plugin/rbac/aws_test.go + the TestAWSIAMProvider_NameCheck
  test in builtin_test.go also removed.
- iam/providers_test.go AWSProvider subtests + AWS branch of
  the RegisterProvider test (latter rewired to KubernetesProvider).

Dependency footprint, before → after (direct AWS imports):

  github.com/aws/aws-sdk-go-v2                       6 direct
  github.com/aws/aws-sdk-go-v2/config                1 direct
  github.com/aws/aws-sdk-go-v2/credentials           1 direct
  github.com/aws/aws-sdk-go-v2/service/cloudwatch    1 direct
  github.com/aws/aws-sdk-go-v2/service/ecs           1 direct
  github.com/aws/aws-sdk-go-v2/service/eks           1 direct
  github.com/aws/aws-sdk-go-v2/service/iam           1 direct
  github.com/aws/aws-sdk-go-v2/service/s3            1 direct
  github.com/aws/aws-sdk-go-v2/service/sts           1 direct
                                       — every one now indirect.

Verification:
  GOWORK=off go test ./... — all 138 packages green
  GOWORK=off go mod why aws-sdk-go-v2/service/{cloudwatch,ecs,eks,iam,s3}
    — "main module does not need package …" for each

The kinesis + sts indirect pulls come from
modular/modules/eventbus/v2; reducing those is a modular-side
concern (the eventbus has multiple backends and pulls every SDK).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 20, 2026 15:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes remaining in-repo AWS SDK v2 service usage from the workflow core by deleting the now-dead AWS provider / IAM / S3 artifact implementations, and updating module dependencies accordingly. This aligns the core repo with the intended AWS feature split where AWS-specific functionality lives in workflow-plugin-aws.

Changes:

  • Deleted the in-core AWS provider (provider/aws/) and its associated tests.
  • Deleted AWS IAM/RBAC provider implementations (iam/aws.go, plugin/rbac/aws.go) and updated router/tests to no longer register/test them.
  • Dropped direct AWS SDK v2 service dependencies from go.mod/go.sum (leaving only indirect AWS SDK deps via other modules).

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
provider/aws/registry.go Deleted unused ECR registry stubs.
provider/aws/plugin.go Deleted AWS provider implementation that depended on AWS SDK services.
provider/aws/plugin_test.go Deleted tests for the removed AWS provider.
provider/aws/deploy.go Deleted ECS/EKS deploy implementation.
provider/aws/deploy_test.go Deleted deploy-path tests for the removed AWS provider.
provider/aws/clients.go Deleted AWS SDK client interface definitions.
plugin/rbac/builtin_test.go Removed AWS IAM provider name check test.
plugin/rbac/aws.go Deleted AWS IAM-backed RBAC permission provider implementation.
plugin/rbac/aws_test.go Deleted tests for the removed AWS RBAC provider.
iam/providers_test.go Removed AWS IAM provider tests and updated resolver registration test.
iam/aws.go Deleted AWS IAM provider implementation (STS/IAM-based).
artifact/s3.go Deleted unused S3-backed artifact store implementation.
api/router.go Stopped registering AWS IAM provider in the default IAM resolver.
cmd/server/main.go Removed blank import that previously registered the AWS provider side-effectfully.
go.mod Removed direct AWS SDK service requirements; retained AWS SDK deps as indirect where needed.
go.sum Removed checksums for AWS SDK service modules no longer required.

Comment thread api/router.go
Comment on lines 185 to 191
resolver := iamResolver
if resolver == nil {
resolver = iam.NewIAMResolver(stores.IAM)
resolver.RegisterProvider(&iam.AWSIAMProvider{})
// AWSIAMProvider extracted to workflow-plugin-aws; register
// it from the plugin side if needed.
resolver.RegisterProvider(&iam.KubernetesProvider{})
resolver.RegisterProvider(&iam.OIDCProvider{})
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 20, 2026

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:276: parsing iteration count: invalid syntax
baseline-bench.txt:337432: parsing iteration count: invalid syntax
baseline-bench.txt:652235: parsing iteration count: invalid syntax
baseline-bench.txt:961815: parsing iteration count: invalid syntax
baseline-bench.txt:1273081: parsing iteration count: invalid syntax
baseline-bench.txt:1583225: parsing iteration count: invalid syntax
benchmark-results.txt:276: parsing iteration count: invalid syntax
benchmark-results.txt:333898: parsing iteration count: invalid syntax
benchmark-results.txt:603518: parsing iteration count: invalid syntax
benchmark-results.txt:905418: parsing iteration count: invalid syntax
benchmark-results.txt:1176961: parsing iteration count: invalid syntax
benchmark-results.txt:1481867: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │
                            │       sec/op       │
InterpreterCreation-4               6.711m ± 61%
ComponentLoad-4                     3.535m ±  8%
ComponentExecute-4                  1.925µ ±  3%
PoolContention/workers-1-4          1.079µ ±  1%
PoolContention/workers-2-4          1.082µ ±  1%
PoolContention/workers-4-4          1.079µ ±  1%
PoolContention/workers-8-4          1.081µ ±  1%
PoolContention/workers-16-4         1.088µ ±  1%
ComponentLifecycle-4                3.556m ±  0%
SourceValidation-4                  2.298µ ±  1%
RegistryConcurrent-4                764.6n ±  4%
LoaderLoadFromString-4              3.578m ±  0%
geomean                             18.40µ

                            │ baseline-bench.txt │
                            │        B/op        │
InterpreterCreation-4               2.027Mi ± 0%
ComponentLoad-4                     2.180Mi ± 0%
ComponentExecute-4                  1.203Ki ± 0%
PoolContention/workers-1-4          1.203Ki ± 0%
PoolContention/workers-2-4          1.203Ki ± 0%
PoolContention/workers-4-4          1.203Ki ± 0%
PoolContention/workers-8-4          1.203Ki ± 0%
PoolContention/workers-16-4         1.203Ki ± 0%
ComponentLifecycle-4                2.183Mi ± 0%
SourceValidation-4                  1.984Ki ± 0%
RegistryConcurrent-4                1.133Ki ± 0%
LoaderLoadFromString-4              2.182Mi ± 0%
geomean                             15.25Ki

                            │ baseline-bench.txt │
                            │     allocs/op      │
InterpreterCreation-4                15.68k ± 0%
ComponentLoad-4                      18.02k ± 0%
ComponentExecute-4                    25.00 ± 0%
PoolContention/workers-1-4            25.00 ± 0%
PoolContention/workers-2-4            25.00 ± 0%
PoolContention/workers-4-4            25.00 ± 0%
PoolContention/workers-8-4            25.00 ± 0%
PoolContention/workers-16-4           25.00 ± 0%
ComponentLifecycle-4                 18.07k ± 0%
SourceValidation-4                    32.00 ± 0%
RegistryConcurrent-4                  2.000 ± 0%
LoaderLoadFromString-4               18.06k ± 0%
geomean                               183.3

cpu: AMD EPYC 9V74 80-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                 4.016m ± 164%
ComponentLoad-4                       3.470m ±   1%
ComponentExecute-4                    1.818µ ±   1%
PoolContention/workers-1-4            1.007µ ±   2%
PoolContention/workers-2-4            1.013µ ±   1%
PoolContention/workers-4-4            1.006µ ±   1%
PoolContention/workers-8-4            1.007µ ±   1%
PoolContention/workers-16-4           1.013µ ±   1%
ComponentLifecycle-4                  3.504m ±   1%
SourceValidation-4                    2.071µ ±   1%
RegistryConcurrent-4                  721.5n ±   5%
LoaderLoadFromString-4                3.524m ±   0%
geomean                               16.75µ

                            │ benchmark-results.txt │
                            │         B/op          │
InterpreterCreation-4                  2.027Mi ± 0%
ComponentLoad-4                        2.180Mi ± 0%
ComponentExecute-4                     1.203Ki ± 0%
PoolContention/workers-1-4             1.203Ki ± 0%
PoolContention/workers-2-4             1.203Ki ± 0%
PoolContention/workers-4-4             1.203Ki ± 0%
PoolContention/workers-8-4             1.203Ki ± 0%
PoolContention/workers-16-4            1.203Ki ± 0%
ComponentLifecycle-4                   2.183Mi ± 0%
SourceValidation-4                     1.984Ki ± 0%
RegistryConcurrent-4                   1.133Ki ± 0%
LoaderLoadFromString-4                 2.182Mi ± 0%
geomean                                15.25Ki

                            │ benchmark-results.txt │
                            │       allocs/op       │
InterpreterCreation-4                   15.68k ± 0%
ComponentLoad-4                         18.02k ± 0%
ComponentExecute-4                       25.00 ± 0%
PoolContention/workers-1-4               25.00 ± 0%
PoolContention/workers-2-4               25.00 ± 0%
PoolContention/workers-4-4               25.00 ± 0%
PoolContention/workers-8-4               25.00 ± 0%
PoolContention/workers-16-4              25.00 ± 0%
ComponentLifecycle-4                    18.07k ± 0%
SourceValidation-4                       32.00 ± 0%
RegistryConcurrent-4                     2.000 ± 0%
LoaderLoadFromString-4                  18.06k ± 0%
geomean                                  183.3

pkg: github.com/GoCodeAlone/workflow/middleware
cpu: AMD EPYC 7763 64-Core Processor                
                                  │ baseline-bench.txt │
                                  │       sec/op       │
CircuitBreakerDetection-4                  282.5n ± 6%
CircuitBreakerExecution_Success-4          21.52n ± 0%
CircuitBreakerExecution_Failure-4          66.18n ± 0%
geomean                                    73.82n

                                  │ baseline-bench.txt │
                                  │        B/op        │
CircuitBreakerDetection-4                 144.0 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │
                                  │     allocs/op      │
CircuitBreakerDetection-4                 1.000 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                    303.2n ± 24%
CircuitBreakerExecution_Success-4            22.68n ±  0%
CircuitBreakerExecution_Failure-4            71.00n ±  0%
geomean                                      78.75n

                                  │ benchmark-results.txt │
                                  │         B/op          │
CircuitBreakerDetection-4                    144.0 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                  │ benchmark-results.txt │
                                  │       allocs/op       │
CircuitBreakerDetection-4                    1.000 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
cpu: AMD EPYC 7763 64-Core Processor                
                                 │ baseline-bench.txt │
                                 │       sec/op       │
IaCStateBackend_InProcess-4              307.6n ± 32%
IaCStateBackend_GRPC-4                   9.433m ±  2%
JQTransform_Simple-4                     679.5n ± 32%
JQTransform_ObjectConstruction-4         1.483µ ±  0%
JQTransform_ArraySelect-4                3.419µ ±  2%
JQTransform_Complex-4                    38.62µ ±  1%
JQTransform_Throughput-4                 1.825µ ±  0%
SSEPublishDelivery-4                     71.64n ±  2%
geomean                                  3.871µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
IaCStateBackend_InProcess-4              416.0 ± 0%
IaCStateBackend_GRPC-4                 5.876Mi ± 9%
JQTransform_Simple-4                   1.273Ki ± 0%
JQTransform_ObjectConstruction-4       1.773Ki ± 0%
JQTransform_ArraySelect-4              2.625Ki ± 0%
JQTransform_Complex-4                  16.22Ki ± 0%
JQTransform_Throughput-4               1.984Ki ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │
                                 │     allocs/op      │
IaCStateBackend_InProcess-4              2.000 ± 0%
IaCStateBackend_GRPC-4                  6.838k ± 0%
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    324.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
IaCStateBackend_InProcess-4                 296.9n ± 12%
IaCStateBackend_GRPC-4                      10.04m ± 12%
JQTransform_Simple-4                        631.1n ± 36%
JQTransform_ObjectConstruction-4            1.444µ ±  1%
JQTransform_ArraySelect-4                   3.466µ ±  1%
JQTransform_Complex-4                       41.67µ ±  0%
JQTransform_Throughput-4                    1.757µ ±  0%
SSEPublishDelivery-4                        64.83n ±  1%
geomean                                     3.813µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
IaCStateBackend_InProcess-4                416.0 ±  0%
IaCStateBackend_GRPC-4                   5.834Mi ± 12%
JQTransform_Simple-4                     1.273Ki ±  0%
JQTransform_ObjectConstruction-4         1.773Ki ±  0%
JQTransform_ArraySelect-4                2.625Ki ±  0%
JQTransform_Complex-4                    16.22Ki ±  0%
JQTransform_Throughput-4                 1.984Ki ±  0%
SSEPublishDelivery-4                       0.000 ±  0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                 │ benchmark-results.txt │
                                 │       allocs/op       │
IaCStateBackend_InProcess-4                 2.000 ± 0%
IaCStateBackend_GRPC-4                     6.854k ± 0%
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       324.0 ± 0%
JQTransform_Throughput-4                    17.00 ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ baseline-bench.txt │
                                    │       sec/op       │
SchemaValidation_Simple-4                    1.116µ ± 4%
SchemaValidation_AllFields-4                 1.671µ ± 5%
SchemaValidation_FormatValidation-4          1.581µ ± 1%
SchemaValidation_ManySchemas-4               1.806µ ± 3%
geomean                                      1.519µ

                                    │ baseline-bench.txt │
                                    │        B/op        │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │
                                    │     allocs/op      │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                      1.088µ ± 17%
SchemaValidation_AllFields-4                   1.635µ ±  2%
SchemaValidation_FormatValidation-4            1.565µ ±  1%
SchemaValidation_ManySchemas-4                 1.603µ ±  3%
geomean                                        1.453µ

                                    │ benchmark-results.txt │
                                    │         B/op          │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

                                    │ benchmark-results.txt │
                                    │       allocs/op       │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
cpu: AMD EPYC 7763 64-Core Processor                
                                   │ baseline-bench.txt │
                                   │       sec/op       │
EventStoreAppend_InMemory-4                1.388µ ± 18%
EventStoreAppend_SQLite-4                  1.347m ±  4%
GetTimeline_InMemory/events-10-4           14.27µ ±  4%
GetTimeline_InMemory/events-50-4           78.87µ ±  3%
GetTimeline_InMemory/events-100-4          161.1µ ±  3%
GetTimeline_InMemory/events-500-4          765.7µ ± 14%
GetTimeline_InMemory/events-1000-4         1.356m ±  1%
GetTimeline_SQLite/events-10-4             108.2µ ±  1%
GetTimeline_SQLite/events-50-4             256.6µ ±  1%
GetTimeline_SQLite/events-100-4            437.5µ ±  1%
GetTimeline_SQLite/events-500-4            1.869m ±  0%
GetTimeline_SQLite/events-1000-4           3.639m ±  0%
geomean                                    235.5µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                  812.5 ± 8%
EventStoreAppend_SQLite-4                  1.987Ki ± 1%
GetTimeline_InMemory/events-10-4           7.953Ki ± 0%
GetTimeline_InMemory/events-50-4           46.62Ki ± 0%
GetTimeline_InMemory/events-100-4          94.48Ki ± 0%
GetTimeline_InMemory/events-500-4          472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%
GetTimeline_SQLite/events-10-4             16.74Ki ± 0%
GetTimeline_SQLite/events-50-4             87.14Ki ± 0%
GetTimeline_SQLite/events-100-4            175.4Ki ± 0%
GetTimeline_SQLite/events-500-4            846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4           1.639Mi ± 0%
geomean                                    67.51Ki

                                   │ baseline-bench.txt │
                                   │     allocs/op      │
EventStoreAppend_InMemory-4                  7.000 ± 0%
EventStoreAppend_SQLite-4                    53.00 ± 0%
GetTimeline_InMemory/events-10-4             125.0 ± 0%
GetTimeline_InMemory/events-50-4             653.0 ± 0%
GetTimeline_InMemory/events-100-4           1.306k ± 0%
GetTimeline_InMemory/events-500-4           6.514k ± 0%
GetTimeline_InMemory/events-1000-4          13.02k ± 0%
GetTimeline_SQLite/events-10-4               382.0 ± 0%
GetTimeline_SQLite/events-50-4              1.852k ± 0%
GetTimeline_SQLite/events-100-4             3.681k ± 0%
GetTimeline_SQLite/events-500-4             18.54k ± 0%
GetTimeline_SQLite/events-1000-4            37.29k ± 0%
geomean                                     1.162k

cpu: AMD EPYC 9V74 80-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                   1.065µ ±  7%
EventStoreAppend_SQLite-4                     975.8µ ± 13%
GetTimeline_InMemory/events-10-4              12.53µ ±  3%
GetTimeline_InMemory/events-50-4              61.82µ ± 14%
GetTimeline_InMemory/events-100-4             109.4µ ±  4%
GetTimeline_InMemory/events-500-4             561.5µ ±  3%
GetTimeline_InMemory/events-1000-4            1.150m ±  2%
GetTimeline_SQLite/events-10-4                84.78µ ±  1%
GetTimeline_SQLite/events-50-4                221.3µ ±  1%
GetTimeline_SQLite/events-100-4               382.7µ ±  1%
GetTimeline_SQLite/events-500-4               1.657m ±  0%
GetTimeline_SQLite/events-1000-4              3.223m ±  1%
geomean                                       189.8µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                     745.0 ± 6%
EventStoreAppend_SQLite-4                     1.986Ki ± 1%
GetTimeline_InMemory/events-10-4              7.953Ki ± 0%
GetTimeline_InMemory/events-50-4              46.62Ki ± 0%
GetTimeline_InMemory/events-100-4             94.48Ki ± 0%
GetTimeline_InMemory/events-500-4             472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4            944.3Ki ± 0%
GetTimeline_SQLite/events-10-4                16.74Ki ± 0%
GetTimeline_SQLite/events-50-4                87.14Ki ± 0%
GetTimeline_SQLite/events-100-4               175.4Ki ± 0%
GetTimeline_SQLite/events-500-4               846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4              1.639Mi ± 0%
geomean                                       67.02Ki

                                   │ benchmark-results.txt │
                                   │       allocs/op       │
EventStoreAppend_InMemory-4                     7.000 ± 0%
EventStoreAppend_SQLite-4                       53.00 ± 0%
GetTimeline_InMemory/events-10-4                125.0 ± 0%
GetTimeline_InMemory/events-50-4                653.0 ± 0%
GetTimeline_InMemory/events-100-4              1.306k ± 0%
GetTimeline_InMemory/events-500-4              6.514k ± 0%
GetTimeline_InMemory/events-1000-4             13.02k ± 0%
GetTimeline_SQLite/events-10-4                  382.0 ± 0%
GetTimeline_SQLite/events-50-4                 1.852k ± 0%
GetTimeline_SQLite/events-100-4                3.681k ± 0%
GetTimeline_SQLite/events-500-4                18.54k ± 0%
GetTimeline_SQLite/events-1000-4               37.29k ± 0%
geomean                                        1.162k

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 16 changed files in this pull request and generated 1 comment.

Comment thread api/router.go
Comment on lines 185 to 191
resolver := iamResolver
if resolver == nil {
resolver = iam.NewIAMResolver(stores.IAM)
resolver.RegisterProvider(&iam.AWSIAMProvider{})
// AWSIAMProvider extracted to workflow-plugin-aws; register
// it from the plugin side if needed.
resolver.RegisterProvider(&iam.KubernetesProvider{})
resolver.RegisterProvider(&iam.OIDCProvider{})
Copilot flagged the prior comment as misleading — it suggested
registration "from the plugin side" without naming the
integration path. Replace with an honest note: there is no
in-process AWS provider after this PR; an embedder that needs
AWS IAM must construct its own iam.IAMResolver, register an
AWS-aware iam.Provider impl on it, and pass it as the
iamResolver argument to NewRouterWithIAM (rather than relying
on the default-resolver branch).

No behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 16 changed files in this pull request and generated 1 comment.

Comment thread api/router.go Outdated
// AWS IAM provider removed from workflow core; no in-process
// replacement is wired here. To re-enable AWS IAM, the
// embedder must construct an iam.IAMResolver, register an
// AWS-aware iam.Provider impl on it (e.g., from
Copilot flagged the prior comment using `iam.Provider`; the
actual type in `iam/provider.go` is `iam.IAMProvider`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 16 changed files in this pull request and generated no new comments.

The example/ sub-module had stale indirect entries for
aws-sdk-go-v2/service/iam, internal/checksum, internal/s3shared,
and service/s3 that were only pulled transitively via the
deleted provider/aws + iam/aws.go + artifact/s3.go. Tidy now
that those direct uses are gone.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 18 changed files in this pull request and generated 1 comment.

Comment thread cmd/server/main.go
@@ -44,7 +44,6 @@ import (
allplugins "github.com/GoCodeAlone/workflow/plugins/all"
pluginpipeline "github.com/GoCodeAlone/workflow/plugins/pipelinesteps"
"github.com/GoCodeAlone/workflow/provider"
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot round-4 flagged that:
- CICD_PLAN.md still listed provider/aws/* under "Provider Plugins"
  and "Files to create (Phase 6)" without acknowledging the
  extraction.
- docs/migrations/2026-05-15-plugin-modules-on-iac.md described
  provider/aws/ as a deliberate AWS SDK retention seam and a
  go.mod-anchor for aws-sdk-go-v2.

Both docs are historical (plan + phase-B/C migration); leaving
them stale would mislead future readers. Added inline "Update
2026-05-20 (PR #744)" callouts that:
- redirect CICD_PLAN.md readers to the migration doc for current
  state,
- update the Phase B verification claim to say aws-sdk-go-v2 is
  now indirect-only (via modular/eventbus/v2 sts+kinesis),
- update the final invariant statement to drop provider/aws/
  from the list of retained provider-specific surfaces.

No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 20 changed files in this pull request and generated no new comments.

@intel352 intel352 merged commit 87b73b5 into main May 20, 2026
32 checks passed
@intel352 intel352 deleted the refactor/remove-aws-from-core-v2 branch May 20, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants