Commit Graph

91 Commits

Author SHA1 Message Date
Hugh Brown
528a2483b7 feat: add configurable signature_header for webhook HMAC verification
Not all webhook providers use X-Hub-Signature-256 or X-Webhook-Signature.
Add an optional signature_header field so users can specify which header
carries the HMAC signature. When set, that exact header is checked;
when unset, the existing auto-detect fallback is preserved. The custom
header is also excluded from stored/exposed payload headers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
433021b02c fix: use Annotated+BeforeValidator for webhook secret normalization
The previous field_validator approach passed `cls` as the first argument
to `_normalize_secret`, which only accepted `v`, causing a TypeError at
runtime. Switch to `Annotated[str | None, BeforeValidator(...)]` which
calls the function with just the value and also eliminates the repeated
validator assignment in both schema classes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
2ef6164cf8 fix: normalize webhook secret via schema validator instead of inline
Move blank/whitespace-only secret normalization to a shared
field_validator on both BoardWebhookCreate and BoardWebhookUpdate.
This ensures consistent behavior across create and update paths
and removes the inline normalization from the endpoint handlers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
91e8270364 revert: restore GatewayRead.token field to avoid frontend breaking change
The has_token boolean redaction requires coordinated frontend changes
(detail page, edit page, orval types). Revert to returning the raw
token for now; token redaction will be handled in a dedicated PR.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
547965a5cb security: redact gateway tokens from API responses
Gateway tokens were returned as plaintext in GatewayRead API responses.
Replace the `token` field with a boolean `has_token` flag so the API
never exposes the plaintext token. The token remains in the database
for outbound gateway connections (full encryption would require key
management infrastructure).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
4d1dbb4098 security: add HMAC signature verification to webhook ingest
Webhook ingest endpoint was completely unauthenticated. Add an optional
`secret` field to BoardWebhook. When configured, inbound requests must
include a valid HMAC-SHA256 signature in X-Hub-Signature-256 or
X-Webhook-Signature headers. Uses hmac.compare_digest for timing safety.
Includes migration to add the secret column.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Abhimanyu Saharan
8b77eae0f2 Document blocked-task 409 error code in OpenAPI + add regression tests 2026-03-04 22:46:44 +05:30
Abhimanyu Saharan
bdc9fc3f01 redesigned dashboard page 2026-03-04 16:01:56 +05:30
Abhimanyu Saharan
77870b0fc7 fix(agent): improve error handling for get_agent_soul method 2026-03-03 03:09:29 +05:30
Abhimanyu Saharan
94ae59d6aa refactor(gateway): update gateway parameters to use None as default #169 2026-03-03 01:51:52 +05:30
Abhimanyu Saharan
6b21ea6f99 feat(boards): add 'comment_required_for_review' rule and update related logic 2026-02-26 00:31:47 +05:30
Abhimanyu Saharan
56f4964332 feat: add support for allowing self-signed TLS certificates in gateway configuration 2026-02-22 20:20:19 +05:30
Abhimanyu Saharan
374d5a0c37 Merge branch 'master' into copilot/feature-allow-self-signed-tls
# Conflicts:
#	backend/app/api/gateways.py
#	backend/app/schemas/gateways.py
#	backend/app/services/openclaw/admin_service.py
#	backend/app/services/openclaw/gateway_resolver.py
#	backend/app/services/openclaw/gateway_rpc.py
#	backend/app/services/openclaw/provisioning.py
#	backend/app/services/openclaw/provisioning_db.py
#	frontend/src/api/generated/model/gatewayCreate.ts
#	frontend/src/api/generated/model/gatewayRead.ts
#	frontend/src/api/generated/model/gatewayUpdate.ts
2026-02-22 19:51:27 +05:30
Abhimanyu Saharan
3dfb70cd90 feat: add disable_device_pairing option to gateway configuration 2026-02-22 19:19:26 +05:30
copilot-swe-agent[bot]
520e128777 feat: Add allow_insecure_tls field to gateway model and UI
- Added allow_insecure_tls boolean field to Gateway model and schemas
- Created database migration for the new field
- Updated GatewayConfig to include allow_insecure_tls parameter
- Modified openclaw_call to create SSL context that disables verification when allow_insecure_tls is true
- Updated all GatewayConfig instantiations throughout the backend
- Added checkbox to frontend gateway form (create and edit pages)
- Updated API endpoints to handle the new field

Co-authored-by: abhi1693 <5083532+abhi1693@users.noreply.github.com>
2026-02-22 05:28:37 +00:00
Abhimanyu Saharan
1d63bd0148 feat: add health check endpoint for agent authentication status 2026-02-16 00:42:15 +05:30
Abhimanyu Saharan
aebd487270 refactor: add agent_id to various interfaces and improve field organization 2026-02-15 13:36:57 +05:30
Abhimanyu Saharan
3c92dd5279 style: format code for improved readability and consistency across multiple files 2026-02-15 03:02:54 +05:30
Abhimanyu Saharan
ae17facf88 feat(api): enhance authentication and health check endpoints with detailed responses and descriptions 2026-02-15 02:35:31 +05:30
Abhimanyu Saharan
3bfefeda9f refactor(models): replace ConfigDict with SQLModelConfig for model configuration 2026-02-15 02:16:17 +05:30
Abhimanyu Saharan
395d215dac fix(gateway): correct example format in board_ids field and update assertion logic in tests 2026-02-15 02:09:58 +05:30
Abhimanyu Saharan
0e8c47abb8 feat(skills): update Pydantic model configuration to use ConfigDict for validation 2026-02-15 02:07:13 +05:30
Abhimanyu Saharan
ee1cf05d5d feat(api): enhance error handling and add structured hints for agent operations 2026-02-15 02:07:13 +05:30
Abhimanyu Saharan
0ac22dbd7a feat(heartbeat): change default target to 'last' and remove target option from UI 2026-02-15 01:37:12 +05:30
Abhimanyu Saharan
1009ae474f fix(skills): update Config to use validate_by_name for field population 2026-02-15 01:05:01 +05:30
Abhimanyu Saharan
ae711909ff feat(boards): add max_agents field to board models and enforce limits 2026-02-14 19:43:16 +05:30
Abhimanyu Saharan
a4410373cb refactor(skills): reorganize imports and improve code formatting 2026-02-14 12:46:47 +05:30
Abhimanyu Saharan
40dcf50f4b feat(skills): add metadata and branch fields to skill packs and marketplace skills 2026-02-14 12:26:45 +05:30
Abhimanyu Saharan
a7e1e5cbf4 feat: add skill pack management features including creation, editing, and syncing 2026-02-13 22:23:47 +00:00
Abhimanyu Saharan
e7b5df0bce feat: implement skills marketplace API with CRUD operations and gateway integration 2026-02-13 22:23:47 +00:00
Abhimanyu Saharan
b98d6e2f83 feat: add lead_reasoning field to ApprovalCreate and update validation logic 2026-02-13 21:34:08 +05:30
Abhimanyu Saharan
277bfcb33a feat: add custom-fields 2026-02-13 21:24:36 +05:30
Abhimanyu Saharan
ebb9c659d2 feat: add lead-only status change rule for boards and update related logic 2026-02-13 16:22:06 +05:30
Abhimanyu Saharan
2e4739300c feat: add board webhook configuration and payload models 2026-02-13 00:31:36 +05:30
Abhimanyu Saharan
855885afaf feat: add board rule toggles for approval and review requirements 2026-02-12 23:05:37 +05:30
Abhimanyu Saharan
032b77afb8 feat(approvals): enhance approval model with task titles and confidence as float 2026-02-12 19:57:04 +05:30
Abhimanyu Saharan
8bd606a8dc feat(metrics): extend time range options and update related metrics handling 2026-02-12 19:30:02 +05:30
Abhimanyu Saharan
8d7d9da4e9 feat(tags): add tag management interfaces and update related schemas 2026-02-12 18:35:48 +05:30
Abhimanyu Saharan
2ebdead95b chore: update generated files to orval v8.3.0 and adjust related interfaces 2026-02-12 18:04:35 +05:30
Abhimanyu Saharan
af8a263c27 feat: add approval-task links model and related functionality for task associations 2026-02-11 20:27:07 +05:30
Abhimanyu Saharan
c6417bcffb feat: add description field to boards and update related components for onboarding 2026-02-11 18:19:29 +05:30
Abhimanyu Saharan
6f070df74b refactor: remove main session key references and enhance agent-gateway associations 2026-02-10 02:58:58 +05:30
Abhimanyu Saharan
ba73ce8bfd refactor: update gateway agent session key handling and improve related logic 2026-02-10 00:45:15 +05:30
Abhimanyu Saharan
8f6347dc8d refactor: simplify code formatting and improve readability across multiple files 2026-02-09 20:44:05 +05:30
Abhimanyu Saharan
020d02fa22 refactor: replace DefaultLimitOffsetPage with LimitOffsetPage in multiple files and update timezone handling to use UTC 2026-02-09 20:40:17 +05:30
Abhimanyu Saharan
f5d592f61a refactor: standardize runtime annotation types across multiple files 2026-02-09 17:24:21 +05:30
Abhimanyu Saharan
7706943209 refactor: enhance docstrings for clarity and consistency across multiple files 2026-02-09 16:23:41 +05:30
Abhimanyu Saharan
7ca1899d9f refactor: update module docstrings for clarity and consistency 2026-02-09 15:49:50 +05:30
Abhimanyu Saharan
e03125a382 feat: add organization-related models and update schemas for organization management 2026-02-08 21:16:26 +05:30
Abhimanyu Saharan
e8600420b2 refactor: clean up imports and remove trailing whitespace in multiple files 2026-02-08 00:51:57 +05:30