Project security

View as Markdown

The Security view brings together the security findings for one project. Use it to review potential risks in the app, understand what needs a change, and check the result again after fixing it.

Open the project and choose More → Security. Project admins can run scans and manage ignored findings. The report is separate from your account’s two-factor authentication and workspace Privacy and security settings.

Run a scan

Choose the scan that fits the check you need:

ScanWhat it does
Basic security scanChecks source, possible exposed secrets, dependencies, and configuration guidance. Where a managed Supabase backend is attached and accessible, it also includes database security advisors.
Deep security scanIncludes those checks and adds a project-specific review of application code.

Start with Basic to see the current checks and any missing coverage. Use Deep when you need a closer review of the project’s behavior and permissions. A scan identifies issues; it does not silently rewrite the app.

Wait for the scan result before treating the check as complete. If a request takes too long, use Check results to see whether a report was saved before starting another scan.

Check the version and coverage

A report applies to the project version it scanned. The banner shows the scanned version and when the scan completed.

  • Results from another project version means the project changed after that report. Run a new scan for the version you intend to publish.
  • Current project version could not be verified means the saved report cannot yet be compared with the current project. Choose Check results.
  • Security coverage incomplete means one or more checks did not finish or were unavailable. Read the coverage notices below the findings.

For example, a database check may ask you to reconnect Supabase or review access to the managed backend. An external database that is not attached through the managed connection is not covered by that check.

“No risks found in completed checks” does not mean the missing checks passed. Likewise, a completed scan with no findings is useful evidence about that scan, not a guarantee that every user action is secure.

Review a finding

Open a row under Project risks to read:

  • The problem and why it matters.
  • The affected file or location when available.
  • The Recommended fix.
  • Whether the next action is a Project change, Connection action required, or a Mythos-owned dependency issue.
  • Any linked background information.

Start with the findings that could expose data or allow an unintended action. Read the explanation as well as the severity label: a dependency advisory still needs to be relevant to how your app uses that package.

The Mythos dependency maintenance section tracks confirmed build-only or unused platform dependencies separately. Use the action owner shown in the report to decide whether you should change the app, reconnect a service, or seek help.

Fix and verify

For a project change, describe the specific finding in chat and ask for a focused fix. Include the affected page, file, or behavior rather than asking for an unrelated rewrite.

Review the security finding about reservation access. Explain which users
can currently read a reservation, then fix it so only its owner can read it.
Keep the staff workflow working.

After the change, check the behavior the finding concerned and run another scan. For an access rule, test with the relevant user roles: an allowed user, a user who should be denied, and a signed-out visitor when applicable.

For a connection problem, resolve the connection or permission issue first, then rerun the missing check. Repeated code edits will not restore a revoked provider connection.

See Row-level security and Storage policies for the distinction between app screens and backend access rules.

Ignore a finding deliberately

If a finding is a false positive, intended behavior, or a risk you have explicitly accepted, choose the matching Ignore reason, then Ignore. Review the evidence before making that choice.

Ignoring records your decision; it does not fix the underlying behavior. An ignored finding remains marked so that you can revisit it and restore it when the decision no longer applies.

For example, an intentionally public list may be correct for a product catalog but inappropriate for customer reservations. Decide based on the data and intended audience, not only on whether a screen looks right.

Before and after publishing

Review security again after changing authentication, data access, uploads, external actions, or dependencies. Use a report for the current version, resolve important findings, and inspect any incomplete checks before publishing.

A code fix appears on the live site only after you publish the updated version. Database or connected-service changes have their own effects, so review those changes separately rather than assuming a source-code revert will undo them.

Continue checking the app as it evolves. Automated scans complement testing the real user flows and reviewing who can access the data.

Further reading

The OWASP Top 10 explains common web application security risks and why they matter. Use it as background when reviewing your app’s findings.