Skip to content

[Sync] Add infra#3316

Merged
Herklos merged 2 commits intodevfrom
feature/add-sync-infra
Mar 20, 2026
Merged

[Sync] Add infra#3316
Herklos merged 2 commits intodevfrom
feature/add-sync-infra

Conversation

@Herklos
Copy link
Member

@Herklos Herklos commented Mar 19, 2026

Signed-off-by: Herklos <herklos@drakkar.software>
@Herklos Herklos self-assigned this Mar 19, 2026
@Herklos Herklos requested a review from GuillaumeDSM as a code owner March 19, 2026 23:38
@Herklos Herklos force-pushed the feature/add-sync-infra branch 2 times, most recently from 8faa2cd to 1db691a Compare March 20, 2026 13:59
Copy link
Member

@GuillaumeDSM GuillaumeDSM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

# Then encrypt: ansible-vault encrypt inventories/<env>/hosts.yml
#
# For a single-node dev setup, one host is enough.
# For staging/production, use 3+ nodes across different zones for redundancy.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@Herklos Herklos force-pushed the feature/add-sync-infra branch from 1db691a to a6669a2 Compare March 20, 2026 14:52
@Herklos Herklos enabled auto-merge (rebase) March 20, 2026 14:52
…d member role

Collections:
- Add product-profiles collection with JSON Schema validation (name, description, website, twitter, tags)
- Add product-logos binary collection with MIME type validation (PNG, JPEG, GIF, WebP)
- Add product-versions collection with JSON Schema validation for version documents
- Change signals readRoles from public to member (on-chain has_access gating)

Role enricher:
- Assign member role via on-chain has_access check (public products grant member to all, private to members only)
- Owner now gets both owner and member roles

Removed routes:
- Remove all manual product routes (GET/PUT) — replaced by declarative Starfish collections
- Remove unused /verify endpoint (auth handled by starfish role_resolver)
- Remove app.state dependencies (object_store, registry, platform_pubkey)
- Remove find_item helper (only used by deleted routes)

Security:
- Add security event logging for auth failures
- Reduce auth timestamp window from 30s to 10s

Nginx conf generator:
- Escape regex metacharacters in storage paths to prevent injection
- Validate collection names (alphanumeric/hyphens/underscores only)
- Reject zero/negative rate limit values

Infrastructure:
- Restrict Garage RPC port (3901) to peer node IPs via firewall rules
- Add no_log to sensitive Ansible tasks (key creation, .env render)
- Add Docker network isolation (frontend/backend)
- Add container resource limits and no-new-privileges security opt
- Add nginx healthcheck
- Pin ansible-core version
- Add deployed collections.json with all product and user collections

Tests:
- Add role enricher tests for member and not-owner-no-access scenarios
- Add nginx conf injection and edge case tests
- Update collection count and role assertions for new collections

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Herklos Herklos force-pushed the feature/add-sync-infra branch from a6669a2 to 7e37acb Compare March 20, 2026 14:59
@Herklos Herklos merged commit 0c0be41 into dev Mar 20, 2026
40 of 42 checks passed
@Herklos Herklos deleted the feature/add-sync-infra branch March 20, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants