Skip to content

merge to main - #71

Merged
Lftobs merged 9 commits into
mainfrom
dev
Oct 22, 2026
Merged

Lftobs merged 9 commits into
mainfrom
dev

Conversation

@Lftobs

@Lftobs Lftobs commented Oct 22, 2026

Copy link
Copy Markdown
Owner

No description provided.

Lftobs and others added 9 commits October 17, 2026 03:06
…ompose deploys

- restore_tests gains a kind column (test|restore) and query filters; real
  restores are now recorded as events (migration 0037)
- backup panel adds a Test button beside Restore with live status chips
- server addition requires pool-sourced auth: inline sshKey rejected,
  SSH mode needs sshKeyId or sshPassword (BUG-013)
- github_integrations secrets encrypted at rest, legacy rows bootstrapped
  at boot (migration 0038) (BUG-004)
- compose deploys inject platform env vars into service containers via
  a generated override file on both executors (BUG-012)
- scale-event Caddy rewrites keep custom domains and replica upstreams
  (BUG-007)
- idle scale-down hysteresis decoupled from the scale-up threshold;
  capped scale-ups stop refreshing lastScaleUp (BUG-010)
- fallback docker start re-verified for 10s before reporting running;
  crash reproduced with container logs on failure (BUG-008)
- vite-only builds default to static serve instead of node dist/index.js
  (BUG-009)
- authenticated, token-redacted repository clones on remote SSH executors
- backups: restore-event write failure no longer masks a successful restore (event recorded outside the restore try, event errors logged)
- projects: captureProjectGithubToken returns whether a token was stored so the created response reflects hasGithubToken
- servers: sshPassword must be a non-empty string (object/truthy checks rejected)
- github: decryptOrRaw warns with the failing field name; legacy encryption migration also encrypts stranded plaintext webhookSecrets per-field
- compose env: escape $ to $$ in override values (local yaml + remote python) so compose interpolation cannot eat secrets; project env vars override platform env in subprocess (spread order)
- railpack: exact server-framework names plus scoped packages only (socket.io-client/next-themes no longer force node start), keep node start for Vite SSR builds (--ssr flag or ssr config)
- runtime: stability check fails any non-running state; docker-start verification surveys the full 10s window before declaring running
- git auth: tokenized URLs no longer persisted to .git/config locally or in SSH scripts (insteadOf via GIT_CONFIG_* env); cloning/log lines shell-quoted
- scaling: replica counting reads only the primary site block so custom-domain blocks don't inflate counts
- tests: recreate lost server-validate/source-git-auth suites, add interpolation/escape/railpack SSR/engine block tests
- Two-tier network isolation (dequel_control vs dequel_net) to isolate PostgreSQL, Redis, Buildkit, and PAM auth from tenant apps
- AES-256-GCM database password encryption at rest
- AES-256 encrypted streaming database backups
- Sliding-window rate limiting on auth and API endpoints
- SOC 2 append-only audit logging table, repository, and API with 90-day retention
- Cloudflare edge proxy preset, trusted proxy CIDRs, and web UI toggle
- Ingress security headers (HSTS, nosniff, DENY, body size limits) in Caddy
- Host firewall (UFW) automation script and CLI integration
- Modularized schema and types to keep all files strictly under 500 LOC
- Authenticated AES-256-GCM streaming encryption with auth tag verification and error propagation for backups
- Mask stored connection strings at rest and build authenticated URLs dynamically in repository
- Prioritize sanitized X-Real-IP header from trusted reverse proxy over client-controlled headers
- Validate and bound audit log query pagination (limit capped at 100, non-negative offset)
- Retain per-domain Cloudflare proxy configuration for custom domains without target overrides
- Include firewall setup script in dequel update and install download workflows
- Automatically detect active SSH port and display rule inventory in host firewall setup
- Restrict SSH key identity file permissions and reject unauthenticated remote SSH gateway routes
feat(security): implement production security hardening
# Conflicts:
#	apps/api/src/db/migrations/meta/_journal.json
#	apps/api/src/db/schema.ts
#	apps/api/src/types.ts
#	apps/api/src/utils/domain-verifier.ts
feat: restore-test records, pool-only server keys, and env-injected ompose deploys
feat(docs): ship OG SEO for landing page and serve install.sh
@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 37507c11-a826-43ad-b378-4babf97795a9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Lftobs
Lftobs merged commit 8d52430 into main Oct 22, 2026
6 checks passed
@Lftobs Lftobs mentioned this pull request Oct 24, 2026
9 of 15 tasks

This branch was successfully deployed

1 active deployment
preview — b05ffded Deployed Oct 22, 2026 by Lftobs via deploy #38
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.

1 participant