You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(endpoints): add payload transformation schema and API (ADR-003 Phase 1)
Per ADR-003, Phase 1 stores transformation configuration on endpoints without applying it during delivery. Schema additions on the endpoints table:
- transform_expression (varchar(4096), nullable) — JMESPath expression to apply
- transform_enabled (boolean, default false) — kill switch per endpoint
- transform_validated_at (timestamptz, nullable) — last successful validation time
Migration generated via dotnet ef migrations add includes Up/Down operations and updates ModelSnapshot for downstream diffs.
API surface: CreateEndpointRequest / UpdateEndpointRequest and the dashboard equivalents accept optional TransformExpression and TransformEnabled fields. EndpointResponseDto, the EndpointListItem repository projection, and the dashboard endpoint create/update inline responses expose all three fields. FluentValidation rules enforce the 4096-character cap, and the UpdateEndpointRequest "at least one field" guard now treats Transform fields as valid inputs. Setting a non-empty TransformExpression on update resets TransformValidatedAt to null so a fresh validation pass is required before the expression is trusted.
Pipeline integration (HttpDeliveryService applying the expression with JmesPath.Net + 100 ms timeout + fail-open) and the dashboard expression editor remain in ADR-003 Phase 2 and Phase 3. The optional /transform/validate endpoint will land alongside the JmesPath.Net dependency in Phase 2.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,10 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
7
7
8
8
## [Unreleased]
9
9
10
+
### Added
11
+
-**Payload transformation schema and API (ADR-003 Phase 1):** endpoints now accept `transformExpression` (JMESPath, max 4096 chars), `transformEnabled` (kill switch, default `false`), and a server-managed `transformValidatedAt` timestamp on create/update. Both the public Bearer-key API (`POST /api/v1/endpoints`, `PUT /api/v1/endpoints/{id}`) and the dashboard endpoints (`POST /api/v1/dashboard/endpoints`, `PUT /api/v1/dashboard/endpoints/{id}`) carry the new fields, and `EndpointResponseDto` exposes them on read. Stored only — pipeline integration (delivery-time application with `JmesPath.Net` + 100 ms timeout + fail-open) and the dashboard editor land in ADR-003 Phase 2 and Phase 3 respectively.
12
+
-**Security automations:** CodeQL workflow (csharp + javascript-typescript, push/PR/Mondays at 06:30 UTC), Dependency Review action on PRs (high-severity fail + GPL/LGPL/AGPL/EUPL/SSPL deny-list), and Dependabot config covering NuGet, npm, GitHub Actions, and Docker base images. Five repo labels (`dependencies`, `nuget`, `npm`, `ci`, `docker`) created to support the Dependabot config.
13
+
10
14
### Changed
11
15
-**Frontend toolchain:** migrated dashboard package manager from Yarn to [Bun](https://bun.sh/) 1.2+. `yarn.lock` replaced with `bun.lock` (text format introduced in Bun 1.2); CI, Dockerfile, contributor docs, and PR template now reference `bun` commands. No runtime behavior changes.
0 commit comments