Skip to content

Frontend: opciones LUKS/snapshots y CI build-frontend - #19

Merged
Alexendros merged 1 commit into
mainfrom
fase-ui-ci
Sep 22, 2026
Merged

Alexendros merged 1 commit into
mainfrom
fase-ui-ci

Conversation

@Alexendros

@Alexendros Alexendros commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Añade al formulario web las opciones avanzadas de cifrado y snapshots, y garantiza el build de producción en CI.


Note

Medium Risk
Default-on encryption and snapshots change what /api/install receives for every web-created deployment; impact depends on backend handling of those fields.

Overview
Adds advanced install options to the portal home form: LUKS2 disk encryption (toggle plus keyfile vs passphrase) and automatic btrfs snapshots, both on by default. Submitting the form now sends optional encryption and snapshots fields on InstallRequest, matching the extended types.

CI gains a build-frontend job (after validate) that runs make build-frontend so production frontend builds are checked on every PR. Tests assert the default POST body includes encryption: { enabled: true, method: 'keyfile' } and snapshots: { enabled: true }.

Reviewed by Cursor Bugbot for commit b427562. Configure here.

- Añade toggles de cifrado LUKS2 y snapshots btrfs en HomePage.
- Permite elegir método keyfile/passphrase para LUKS.
- Actualiza tipos InstallRequest con encryption y snapshots.
- Test verifica que el POST incluye encryption/snapshots por defecto.
- Nuevo job build-frontend en .github/workflows/ci.yml.
@Alexendros
Alexendros merged commit ef11bbd into main Sep 22, 2026
1 check failed
@gitguardian

gitguardian Bot commented Sep 22, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
37528304 Triggered Generic Password b427562 portal/frontend/src/pages/HomePage.tsx View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@Alexendros
Alexendros deleted the fase-ui-ci branch September 22, 2026 20:06
@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: f391b9d5-f7df-4b08-8647-8b424d5c17bd

📥 Commits

Reviewing files that changed from the base of the PR and between 8d8e54d and b427562.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • portal/frontend/src/pages/HomePage.test.tsx
  • portal/frontend/src/pages/HomePage.tsx
  • portal/frontend/src/types.ts
 ___________________________________________
< Transformers: Not just a movie franchise. >
 -------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b427562. Configure here.

}
if (enableSnapshots) {
body.snapshots = { enabled: true };
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Unchecked options keep profile defaults

High Severity

Unchecking enableEncryption or enableSnapshots omits those objects from the install POST instead of sending enabled: false. The portal merges them only when present, so the default production profile still enables LUKS and snapper. The form states that unchecked encryption formats root and home without LUKS.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b427562. Configure here.

};

if (enableEncryption) {
body.encryption = { enabled: true, method: encryptionMethod };

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Passphrase method sends no secret

Medium Severity

Choosing passphrase posts only { enabled: true, method: 'passphrase' }; InstallRequest has no passphrase field and the form never collects one. The installer formats LUKS with the profile secret or aborts if it is empty, so base and developer fail and production silently uses neubat.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b427562. Configure here.

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