Skip to content

feat: add fx modules for memory and aws stores - #10

Merged
alanshaw merged 2 commits into
ash/feat/w3infra-storesfrom
ash/feat/fx-store-module
Apr 9, 2026
Merged

feat: add fx modules for memory and aws stores#10
alanshaw merged 2 commits into
ash/feat/w3infra-storesfrom
ash/feat/fx-store-module

Conversation

@alanshaw

@alanshaw alanshaw commented Mar 17, 2026

Copy link
Copy Markdown
Member

@alanshaw
alanshaw requested a review from frrist March 17, 2026 11:10
Comment thread internal/config/config.go
// UploadsTable is the table name for uploads.
UploadsTable string `mapstructure:"uploads_table"`

AgentIndexTable string `mapstructure:"agent_index_table"`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are the names of these tables something an operator should ever configure? Or would it make more sense to hard code them as constants that we can configure later if the need arises?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Well we have multiple deployments of the upload service and they all have different table names, but actually it's just a prefix change - the names of the tables are always the same (minus the prefix).

Uses the agent store to index and log incoming/outgoing messages and uses it in the receipts endpoint to retrieve receipts for tasks.

* feat: dependency injected handlers (#12)

Alters the handlers so that they are dependency injected. Follows the same pattern as in Piri. This avoids having to create a huge object that has all the dependencies for all handlers and also avoids having to have an interface per handler that defines the required deps.

Moved config module out of the app module since in tests we want to supply the config directly, not write a config file and then load it from disk.

* feat: access implementation (#15)

Adds the following handlers:

* `access/authorize`
* `access/claim`
* `access/confirm`
* `access/delegate`
* `provider/add`

* chore: disable windows and 32bit testing (#13)

* feat: provider add implementation

* chore: appease linter

* chore: appease linter

* feat: add `upload/add` impl (#16)

* feat: add `space/blob/add` and `ucan/conclude` implementation (#17)

* feat: add `space/index/add` implementation (#18)

* feat: add `space/blob/replicate` implementation (#19)

* feat: storage provider admin handlers and CLI commands (#20)

Adds CLI commands:

```
sprue client admin provider register
sprue client admin provider deregister
sprue client admin provider list
sprue client admin provider weight set
```

* chore: remove state store and other cleanup (#21)

Final task to remove the old state store (now unused).

* feat: add upload and blob list handlers (#22)

Adds missing handlers for listing uploads, upload shards and blobs.

* refactor: remove provider DID from register command (#24)

This is unnecessary since it is the issuer of the proof.

* feat: add SMTP mailer (#25)

This PR adds an SMTP mailer and fixes a bunch of other issues.
@alanshaw
alanshaw merged commit d07f9b7 into ash/feat/w3infra-stores Apr 9, 2026
4 checks passed
@alanshaw
alanshaw deleted the ash/feat/fx-store-module branch April 9, 2026 22:54
alanshaw added a commit that referenced this pull request Apr 9, 2026
Adds stores that _should_ be compatible with w3infra.

* feat: add fx modules for memory and aws stores (#10)

* feat: log agent messages (#11)

Uses the agent store to index and log incoming/outgoing messages and uses it in the receipts endpoint to retrieve receipts for tasks.

* feat: dependency injected handlers (#12)

Alters the handlers so that they are dependency injected. Follows the same pattern as in Piri. This avoids having to create a huge object that has all the dependencies for all handlers and also avoids having to have an interface per handler that defines the required deps.

Moved config module out of the app module since in tests we want to supply the config directly, not write a config file and then load it from disk.

* feat: access implementation (#15)

Adds the following handlers:

* `access/authorize`
* `access/claim`
* `access/confirm`
* `access/delegate`
* `provider/add`

* chore: disable windows and 32bit testing (#13)

* feat: provider add implementation

* chore: appease linter

* chore: appease linter

* feat: add `upload/add` impl (#16)

* feat: add `space/blob/add` and `ucan/conclude` implementation (#17)

* feat: add `space/index/add` implementation (#18)

* feat: add `space/blob/replicate` implementation (#19)

* feat: storage provider admin handlers and CLI commands (#20)

Adds CLI commands:

```
sprue client admin provider register
sprue client admin provider deregister
sprue client admin provider list
sprue client admin provider weight set
```

* chore: remove state store and other cleanup (#21)

Final task to remove the old state store (now unused).

* feat: add upload and blob list handlers (#22)

Adds missing handlers for listing uploads, upload shards and blobs.

* refactor: remove provider DID from register command (#24)

This is unnecessary since it is the issuer of the proof.

* feat: add SMTP mailer (#25)

This PR adds an SMTP mailer and fixes a bunch of other issues.
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