chore(work): finish 01-rate-limit-type-primitives
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"updated_at": "2026-05-20T08:14:56.249Z",
|
"updated_at": "2026-05-20T08:24:33.457Z",
|
||||||
"epics": {
|
"epics": {
|
||||||
"binder-wrap-helper": {
|
"binder-wrap-helper": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
@@ -573,10 +573,10 @@
|
|||||||
"prd": "docs/work/prds/security-headers-rate-limit-sbom.prd.md",
|
"prd": "docs/work/prds/security-headers-rate-limit-sbom.prd.md",
|
||||||
"stories": {
|
"stories": {
|
||||||
"01-rate-limit-type-primitives": {
|
"01-rate-limit-type-primitives": {
|
||||||
"status": "in-progress",
|
"status": "done",
|
||||||
"title": "Rate-limit type primitives and manifest field",
|
"title": "Rate-limit type primitives and manifest field",
|
||||||
"ac_total": 1,
|
"ac_total": 1,
|
||||||
"ac_completed": 0,
|
"ac_completed": 1,
|
||||||
"depends_on": [],
|
"depends_on": [],
|
||||||
"blocks": []
|
"blocks": []
|
||||||
},
|
},
|
||||||
@@ -688,8 +688,13 @@
|
|||||||
"ready": [
|
"ready": [
|
||||||
{
|
{
|
||||||
"epic": "security-headers-rate-limit-sbom",
|
"epic": "security-headers-rate-limit-sbom",
|
||||||
"story": "01-rate-limit-type-primitives",
|
"story": "02-rate-limit-implementations",
|
||||||
"title": "Rate-limit type primitives and manifest field"
|
"title": "Rate-limit implementations — Noop, InMemory, Recording"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epic": "security-headers-rate-limit-sbom",
|
||||||
|
"story": "03-no-undeclared-rate-limit-eslint-rule",
|
||||||
|
"title": "`no-undeclared-rate-limit` ESLint rule"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"epic": "security-headers-rate-limit-sbom",
|
"epic": "security-headers-rate-limit-sbom",
|
||||||
@@ -713,28 +718,11 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"blocked": [
|
"blocked": [
|
||||||
{
|
|
||||||
"epic": "security-headers-rate-limit-sbom",
|
|
||||||
"story": "02-rate-limit-implementations",
|
|
||||||
"title": "Rate-limit implementations — Noop, InMemory, Recording",
|
|
||||||
"waiting_on": [
|
|
||||||
"security-headers-rate-limit-sbom/01-rate-limit-type-primitives"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"epic": "security-headers-rate-limit-sbom",
|
|
||||||
"story": "03-no-undeclared-rate-limit-eslint-rule",
|
|
||||||
"title": "`no-undeclared-rate-limit` ESLint rule",
|
|
||||||
"waiting_on": [
|
|
||||||
"security-headers-rate-limit-sbom/01-rate-limit-type-primitives"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"epic": "security-headers-rate-limit-sbom",
|
"epic": "security-headers-rate-limit-sbom",
|
||||||
"story": "04-with-rate-limit-wrapper-and-conformance",
|
"story": "04-with-rate-limit-wrapper-and-conformance",
|
||||||
"title": "`withRateLimit` wrapper and conformance extensions",
|
"title": "`withRateLimit` wrapper and conformance extensions",
|
||||||
"waiting_on": [
|
"waiting_on": [
|
||||||
"security-headers-rate-limit-sbom/01-rate-limit-type-primitives",
|
|
||||||
"security-headers-rate-limit-sbom/02-rate-limit-implementations"
|
"security-headers-rate-limit-sbom/02-rate-limit-implementations"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: 01-rate-limit-type-primitives
|
|||||||
epic: security-headers-rate-limit-sbom
|
epic: security-headers-rate-limit-sbom
|
||||||
title: Rate-limit type primitives and manifest field
|
title: Rate-limit type primitives and manifest field
|
||||||
type: technical-story
|
type: technical-story
|
||||||
status: in-progress
|
status: done
|
||||||
feature: core-shared
|
feature: core-shared
|
||||||
depends-on: []
|
depends-on: []
|
||||||
blocks:
|
blocks:
|
||||||
@@ -13,7 +13,7 @@ blocks:
|
|||||||
04-with-rate-limit-wrapper-and-conformance,
|
04-with-rate-limit-wrapper-and-conformance,
|
||||||
]
|
]
|
||||||
created: 2026-05-20T00:00:00Z
|
created: 2026-05-20T00:00:00Z
|
||||||
updated: 2026-05-20T08:14:55.907Z
|
updated: 2026-05-20T08:24:33.292Z
|
||||||
---
|
---
|
||||||
|
|
||||||
## Goal
|
## Goal
|
||||||
@@ -51,4 +51,4 @@ Manifest-first ordering requires types before implementations and lint rules. Th
|
|||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
- [ ] Add `IRateLimit`, `RateLimitBudget`, `RateLimitDecision` types in `packages/core-shared/src/rate-limit/rate-limit.interface.ts`; add `RateLimited<F>` brand + `isRateLimited` helper in `packages/core-shared/src/conformance/brands.ts`; extend `UseCaseManifest` in `packages/core-shared/src/conformance/define-feature.ts` with `rateLimit?: RateLimitBudget[]`; export new types from the `core-shared` barrel; all gates pass.
|
- [x] Add `IRateLimit`, `RateLimitBudget`, `RateLimitDecision` types in `packages/core-shared/src/rate-limit/rate-limit.interface.ts`; add `RateLimited<F>` brand + `isRateLimited` helper in `packages/core-shared/src/conformance/brands.ts`; extend `UseCaseManifest` in `packages/core-shared/src/conformance/define-feature.ts` with `rateLimit?: RateLimitBudget[]`; export new types from the `core-shared` barrel; all gates pass.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ status: in-progress
|
|||||||
features:
|
features:
|
||||||
[core-shared, core-testing, core-eslint, auth, web-next, web-tanstack, cms]
|
[core-shared, core-testing, core-eslint, auth, web-next, web-tanstack, cms]
|
||||||
created: 2026-05-20T00:00:00Z
|
created: 2026-05-20T00:00:00Z
|
||||||
updated: 2026-05-20T08:14:55.907Z
|
updated: 2026-05-20T08:24:33.292Z
|
||||||
---
|
---
|
||||||
|
|
||||||
## Goal
|
## Goal
|
||||||
@@ -20,7 +20,7 @@ Security scanners flag the absence of HSTS, X-Frame-Options, X-Content-Type-Opti
|
|||||||
|
|
||||||
## Stories
|
## Stories
|
||||||
|
|
||||||
- [ ] [01 — Rate-limit type primitives and manifest field](01-rate-limit-type-primitives/_story.md)
|
- [x] [01 — Rate-limit type primitives and manifest field](01-rate-limit-type-primitives/_story.md)
|
||||||
- [ ] [02 — Rate-limit implementations: Noop, InMemory, Recording](02-rate-limit-implementations/_story.md)
|
- [ ] [02 — Rate-limit implementations: Noop, InMemory, Recording](02-rate-limit-implementations/_story.md)
|
||||||
- [ ] [03 — `no-undeclared-rate-limit` ESLint rule](03-no-undeclared-rate-limit-eslint-rule/_story.md)
|
- [ ] [03 — `no-undeclared-rate-limit` ESLint rule](03-no-undeclared-rate-limit-eslint-rule/_story.md)
|
||||||
- [ ] [04 — `withRateLimit` wrapper and conformance extensions](04-with-rate-limit-wrapper-and-conformance/_story.md)
|
- [ ] [04 — `withRateLimit` wrapper and conformance extensions](04-with-rate-limit-wrapper-and-conformance/_story.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user