ServiceAPI Gateway
Trusted headers
Trusted headers mà Go API Gateway inject cho downstream services.
Trusted headers
Khi nào Gateway inject
Gateway inject trusted headers sau khi:
- Request không phải public route.
- Bearer
JWThợp lệ. - Route context guard pass.
- Token có branch/platform context khi route yêu cầu.
Với protected business APIs, token bình thường là branch-scoped accessToken.
Header list đã đóng
Trusted headers sau valid branch token:
X-Account-IdX-Workspace-IdX-Member-IdX-Active-Branch-IdX-Branch-IdsX-RolesX-Token-Scope=BRANCHX-Request-IdX-Correlation-Id
Source mapping
Gateway lấy giá trị từ verified JWT claims:
| Header | Claim/source |
|---|---|
X-Account-Id | account_id, fallback sub |
X-Workspace-Id | workspace_id |
X-Member-Id | member_id |
X-Active-Branch-Id | active_branch_id, fallback branch_id |
X-Branch-Ids | branch_ids |
X-Roles | roles |
X-Token-Scope | token_scope, fallback scope |
X-Request-Id | request id middleware |
X-Correlation-Id | request id middleware |
Sanitizing client context
Gateway xóa client-supplied internal context headers trước khi proxy.
Ví dụ client không được tự set:
X-Account-IdX-Workspace-IdX-Member-IdX-Active-Branch-IdX-Branch-IdsX-RolesX-Token-Scope
Chỉ headers do Gateway inject sau validation mới được xem là trusted.
Downstream rule
Downstream services như Entitlement Service:
- Consume Gateway
trusted headers. - Không trust context body/header do client tự gửi.
- Không verify client
JWTlại trong normal internal runtime. - Dùng trusted context để enforce
workspace/memberisolation.
Rule cụ thể:
client body workspaceId
must not override
X-Workspace-Id from trusted Gateway contextTODO
- Chưa đóng: Entitlement Service E2E proof cho header consumption qua Gateway.