← All field notes

Browse all platform and AI coding security guides

Base44 security guide: permissions, roles and APIs

Review Base44 entity rules, field permissions, roles and backend functions. Use a practical launch checklist and understand when to get a security audit.

Sep 19, 2026 · 9 min read


Field Notes from Thunkle, a studio that takes AI-built apps from prototype to secure, production-ready software.

By Thunkle · Platform references checked 19 September 2026

Base44 provides security controls. Your app still needs rules that match the way your customers, staff and administrators should use it. The important question is not simply whether a user can sign in. It is whether they can read, change or trigger anything outside their permitted role.

This guide focuses on those application boundaries: entity records, individual fields, backend functions and integrations. It does not assume Base44 itself is vulnerable or that exporting your app would make it safer.

If you are launching with customer data, payments or multiple roles, see our Base44 security audit. We agree the scope, test the relevant boundaries and explain the fixes with evidence.

Get developer review of roles and privileged operations

Base44 permissions need to work together across entities, fields and backend functions. An experienced developer can check whether a seemingly harmless profile edit changes authority elsewhere, or whether a privileged function repeats the checks your rules require. Before opening a multi-role app to customers, review these relationships rather than relying on a successful administrator demo.

Thunkle's paid Base44 security audit brings these entity, field and function checks into a developer-led audit. You get evidence-backed findings, a practical remediation order and a free re-review of agreed fixes. Ask for a separate implementation scope if you want us to make the changes.

Separate platform security from application permissions

Managed hosting and authentication solve important problems. They do not, by themselves, express that a customer can view one order, an office manager can reconcile many orders, and only an administrator can assign roles.

Base44's entity model supports record-level permissions for create, read, update and delete, and field-level permissions for reading or writing individual fields. That distinction matters: permission to edit a profile need not mean permission to edit its role field. Base44 entity security documentation

Start by listing the entities that contain private or business-critical information. For each, record the permitted actors and operations. Include public visitors, ordinary users, staff, administrators and any automated process. Where records are shared by a team, define membership and revocation rather than assuming every row is private to its creator.

Run the platform scan, then investigate the results

Base44 provides a security scan for application issues, with guidance for reviewing and fixing its findings. Use the current scan before publishing and after relevant changes. Review proposed fixes against your app's intended behaviour instead of accepting a green result as the only acceptance criterion. Base44 security scan documentation

A scan finding is a starting point for investigation. Its absence is not evidence that every workflow or role combination was exercised. Conversely, a broad read rule is not automatically wrong if the records are intentionally public and contain only public information.

The question is whether the implemented rule matches the business requirement, and whether all the paths that access that resource respect it.

1. Test each entity operation, not just the page

Consider a synthetic receipt application. Crew members submit their own receipts; office staff reconcile the whole team's submissions; an administrator manages membership. This is an illustrative test model, not a disclosed client finding.

Two simplistic policies can both be wrong. “Any signed-in user can read receipts” could expose private records to other crew members. “Only the creator can read receipts” could stop the office doing its job.

In a separate test environment, create synthetic receipts and dedicated accounts. Establish expected results before making requests:

  • A crew member can read their own receipt and submit a permitted correction.
  • Another crew member cannot retrieve or change that receipt.
  • Office staff can perform the reconciliation actions assigned to them.
  • A crew member cannot approve a receipt or change an administrator-only field.
  • A signed-out visitor cannot retrieve the private receipt.

Exercise the backend path used by the application, not only whether a page renders a button. A hidden control does not establish that the corresponding request is rejected.

Keep successful allowed operations as positive controls. A missing fixture or expired session can make an unauthorized test appear to pass for the wrong reason. For write tests, inspect the final stored state using the permitted account; do not rely solely on a response message.

2. Review sensitive fields within otherwise editable records

An account record can contain both user-editable preferences and privileged fields. An order can contain customer notes alongside approval state or internal pricing.

For every sensitive field, identify who may read it, who may write it, and which trusted path makes changes. Include creation as well as later updates: a restriction that applies only after a record exists may leave a different path untested.

Check raw responses for fields the interface does not display. Removing a field from a component does not remove it from data already delivered to the browser. At the same time, do not classify every visible identifier as a leak; assess whether the information is intended to be public and what access or sensitivity it represents.

Write these rules in plain language first. “Only office staff can approve a receipt” is easier to validate than an unexplained collection of permission expressions.

3. Check backend functions independently

For each backend function, determine how it identifies the caller and decides which records or actions that caller is allowed to use. Review privileged execution paths against those checks, including paths triggered by a scheduled job or an external service.

A function that legitimately works across many records needs more than a caller-supplied record ID or role label. The authorization decision should rely on trusted identity and application state. Public endpoints need their own design: a contact form may accept anonymous submissions without granting anonymous access to the submitted records.

For integration calls, identify who may trigger them, what inputs are accepted and what prevents unintended repeated work or spend. Payment notifications, invitations, AI generation and bulk emails have different side effects and need different tests.

Do not send production emails, issue refunds or invoke paid integrations as casual checks. Agree permitted actions first and use test-mode providers, synthetic records and an email sink wherever possible.

4. Test invitations, roles and account lifecycle

Role tests should cover more than the first successful sign-in. Consider what happens when an invitation expires, a person leaves a team, a staff member is demoted or an account loses access to a shared resource.

Check that the backend enforces the intended result. A browser with an old page open should not continue to perform newly forbidden actions simply because its interface has not refreshed.

Also distinguish an app's end-user permissions from access to the builder workspace. An administrator of the product and an editor of its source are different responsibilities. Grant collaborators only the access they need and document who can publish or change configuration.

If these rules are unclear or spread across several functions, request a Base44 audit quote. Defining and testing them is part of the review, not a prerequisite you must solve alone.

5. Include files, public features and secrets

Check the file itself, not only the entity that references it. Test uploads, downloads and sharing with the appropriate accounts. Decide whether a shared link should expire or stop working after access is revoked, then verify the actual behaviour with a synthetic file.

For public profiles, catalogues or activity feeds, list the fields intended for visitors and compare that list with the response. Public features should not incidentally expose internal notes or private contact details.

Inspect source, built browser assets and relevant responses for privileged provider credentials. A public application identifier is not automatically a secret. Classify a value by what it authorizes before reporting it. If a real secret was exposed, use the provider's supported revocation or rotation procedure and investigate its use; removing the text from the interface is not enough.

Never paste credentials or customer records into public screenshots, support threads or an audit quote form.

A practical pre-launch acceptance checklist

For each critical workflow, retain evidence of:

  1. Expected access: who may read, create, change or delete each resource and sensitive field.
  2. Allowed behaviour: the permitted user can complete the intended action.
  3. Denied behaviour: another customer, a lower-privilege user and a signed-out visitor cannot perform actions outside their role.
  4. State verification: a forbidden write did not change the stored record or trigger an external action.
  5. Files and integrations: related downloads, functions and provider calls enforce the same intended boundary.
  6. Lifecycle changes: revoking access or changing a role produces the expected result.
  7. Retesting: the relevant checks still pass after a fix, without breaking legitimate access.

Use only applications and accounts you own or are authorized to test. Do mutation experiments in an isolated environment. This checklist is an organizational aid, not a complete penetration test or a security certificate.

Our two-account testing article explains the broader method. Its downloadable Supabase checker is not a Base44 checker; the lesson to reuse is the positive-control and cross-account test design, not a mismatched script.

What a Base44 security audit adds

A professional review is useful when private customer records, multiple roles, payments or privileged integrations make a mistake consequential. It is also useful before a substantial permissions change or when existing findings are difficult to validate.

Our Base44 security audit reviews the agreed entity and field rules, backend paths, authentication flows and integration boundaries. We combine source/configuration review with authorized tests using an agreed environment and accounts.

You receive a prioritized report explaining what was observed, the affected path, the business impact and the proposed fix. We distinguish confirmed findings from limitations and untested areas. Fix implementation can be scoped separately; a free re-review checks the agreed fixes after they are applied.

An audit does not guarantee the absence of all vulnerabilities or replace ongoing maintenance. It should leave you with evidence you can act on, not an unexplained risk score.

Common questions

Is Base44 insecure by default?

A platform label is not enough to answer whether a particular application is secure. Review its actual configuration, data sensitivity and workflows. Base44 supplies permission controls; the review needs to establish how those controls and your application logic behave together.

Is hiding an admin page enough?

No. Interface visibility is useful for navigation, but privileged actions need authorization where they execute. Test that an ordinary account cannot perform the action even when it knows the relevant endpoint or resource identifier.

Must I migrate to fix security issues?

Not necessarily. An app may need corrected rules or backend checks rather than a platform move. We assess migration separately when the requirements justify it, and do not present it as a substitute for secure implementation.

What do you need to quote an audit?

Share the app URL, a short explanation of its roles and sensitive workflows, and your deadline. Do not include secrets or customer exports. Necessary repository/configuration access and test accounts are arranged after scope and authorization are agreed.

Get a security audit quote or read our audit process for the approach and deliverables.

Get your Base44 project audited.

Have a senior developer review your app's access rules, backend and critical workflows. Our paid audit includes an agreed scope, evidence-backed findings, remediation guidance and a free re-review of agreed fixes. Fix implementation is scoped separately.