Document what the API does for a deleted destination
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- api, documentation
Research direction
Read the decisions and implementation in #65 and #121, plus the event-delivery change in #1109. Confirm with maintainers whether reusing a deleted destination's ID should be supported or changed; that decision is still open. Then add the behavior table and the agreed ID-reuse behavior to the destinations or event delivery documentation, and verify the text covers behavior both before and after the seven-day record expiry.
Written by the indexing model from the issue text.
Description
How deletion behaves was decided in #65 and implemented in #121, but it is not written down anywhere a user or contributor would look. #1109 adds one paragraph to the event delivery page. This issue is to record the full behaviour as a decision, and to confirm the one part that was never discussed: reusing the ID.
Behaviour
A deleted destination keeps a record in the tenant store, marked deleted, for 7 days. Its events and attempts stay in the log store.
| Request | Before delete | After delete |
|---|---|---|
GET, PATCH, DELETE /tenants/:tenant_id/destinations/:destination_id, PUT …/enable, PUT …/disable |
200 | 404 destination not found |
GET …/destinations/:destination_id/attempts and …/attempts/:attempt_id |
200 | 404 destination not found (as of #1109) |
GET /tenants/:tenant_id/destinations |
lists it | does not list it |
GET /attempts?destination_id=…, GET /attempts/:attempt_id |
200 | 200, the history stays readable |
the same with include=destination |
destination object on each attempt |
no destination field |
GET /events?destination_id=…, GET /events/:event_id |
200 | 200 |
POST /retry with its destination_id |
202 | 404 destination not found (as of #1109) |
POST /tenants/:tenant_id/destinations with its id |
400 destination already exists |
201 |
Nothing changes when the record expires after 7 days: every row answers the same.
Events still queued for a deleted destination are acknowledged, not delivered and not logged (#65).
Reusing the ID
A destination can be created again with the ID of a deleted one, right after the delete or after the record expires. Attempts are stored by tenant and destination ID, so the new destination takes over the old one's history:
GET …/destinations/:destination_id/attemptslists the attempts made to the deleted destination.include=destinationon those attempts returns the new destination.POST /retryfor an old event sends it to the new destination, if its topics and filter match.
This only affects a caller that passes its own id and reuses it; generated IDs are not reused.
To do
- Confirm reusing the ID is intended, or decide what should happen instead (reject the ID while the deleted record exists, or tie attempts to one incarnation of a destination).
- Add the table above to the docs (destinations or event delivery page).
- Dominant language
- Go
- Stars
- 1.1k
- Forks
- 70
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 56
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hookdeck/outpost
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
hookdeck/outpost#1117 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
All issues in hookdeck/outpost
Similar issues
-
area: watch bug priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
mariadb-operator/mariadb-operator#1962 ·
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
eugenioenko/ttt#919 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
QuantumNous/new-api#7839 ·
Maintainers usually reply within 1 day
-
bug needs-triage service/costoptimizationhub
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
hashicorp/terraform-provider-aws#50507 · 1 comment ·
Maintainers usually reply within 1 day