Skip to content

feat: dependency injected handlers - #12

Merged
alanshaw merged 2 commits into
ash/feat/log-agent-messagesfrom
ash/feat/dependency-injected-handlers
Apr 9, 2026
Merged

feat: dependency injected handlers#12
alanshaw merged 2 commits into
ash/feat/log-agent-messagesfrom
ash/feat/dependency-injected-handlers

Conversation

@alanshaw

Copy link
Copy Markdown
Member

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.

@alanshaw
alanshaw requested a review from frrist March 18, 2026 10:51
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 43eaf85 into ash/feat/log-agent-messages Apr 9, 2026
3 of 4 checks passed
@alanshaw
alanshaw deleted the ash/feat/dependency-injected-handlers branch April 9, 2026 22:53
alanshaw added a commit that referenced this pull request Apr 9, 2026
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 added a commit that referenced this pull request Apr 9, 2026
* 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.
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.

1 participant