Skip to Content
Apso is in public beta. Get started

Frequently asked questions

Product

What is Apso?

Apso turns a version-controlled data model into a backend service. You define .apsorc or begin with a starter model, then generate a NestJS, FastAPI, or Gin project with database and REST layers.

Who is it for?

Apso is for developers and product teams that want the setup speed of a backend service while keeping a normal source repository. It also exposes an MCP server for coding agents that can design, validate, and generate the same schema contract.

How is it different from a hosted database API?

Apso produces framework source code in the repository. The team can inspect generated controllers, services, models, migrations, auth boundaries, and tests. Custom behavior lives in extensions/, and the resulting project can run in Apso Cloud or another environment.

Which languages are supported?

  • TypeScript with NestJS and TypeORM
  • Python with FastAPI and SQLAlchemy
  • Go with Gin and GORM

Generation

What does .apsorc contain?

Version 2 schemas contain entities, fields, relationships, target language, auth configuration, tenant scoping, and generation controls. Keep .apsorc at the project root and commit it with generated source.

What happens when I regenerate?

apso generate rewrites generated layers under autogen/. Files under extensions/ are the place for custom endpoints, integrations, hooks, and business rules. Commit before regeneration and review the generated diff.

Can I edit generated files?

You can inspect and edit the repository, but changes under autogen/ can be replaced by a later generation. Move durable product logic into extensions/ or change the schema that produced the file.

How do I add a custom endpoint?

Create the framework controller or handler under extensions/, inject or call the generated service, register the extension module, and add tests around the product rule. Do not place it in autogen/.

Can I start from an existing product model?

Yes. The service builder includes 27 starters covering SaaS capabilities, application patterns, and industry systems. Review and edit the starter before generation.

Data and API

Which database does Apso use?

The current templates target PostgreSQL through TypeORM, SQLAlchemy, or GORM. The TypeScript local workflow can use PGlite for a PostgreSQL-compatible embedded development database.

What routes are generated?

REST resources use plural, case-preserving routes such as /Projects and /Tasks. Confirm each service in /_docs after generation.

How do migrations work?

apso migrate detects schema changes, generates SQL, and tests the change against a local PGlite sandbox. Review the SQL and commit migration artifacts before deployment.

Can I import an existing supabase database?

apso import supabase reads a Supabase PostgreSQL schema and generates a local .apsorc. It does not write to the source. apso import data can copy table data into a target database built from the reviewed schema.

Authentication and security

Which auth strategies are generated?

The schema supports Better Auth and custom database sessions, JWT verification for Auth0, Clerk, and Cognito, and application API-key auth. Other providers can be added as extensions using their official verification flow.

How does multi-tenancy work?

Add scopeBy to tenant-owned entities and map the corresponding workspace or organization value from the auth context. Generated guards can filter reads, inject scope on creates, and verify ownership for record operations.

Where do I store a hosted service key?

Keep it in a trusted server environment, job runner, or secret manager. In a Next.js application, use it in a server-only SDK module or BFF route. Do not place it in public frontend variables or a mobile bundle.

Is Apso suitable for a regulated workload?

Compliance depends on the application, deployment mode, plan, controls, and contractual requirements. Review current requirements with your security and legal teams and contact Apso  for maintained platform details.

Deployment and pricing

Can I deploy outside Apso Cloud?

Yes. The generated output is a standard framework project. Use the project Dockerfile or the normal NestJS, FastAPI, or Gin deployment process in your infrastructure.

Where can I find current pricing?

Use the maintained pricing page . Documentation does not duplicate plan prices or limits because those details can change.

Troubleshooting

Generation fails

Run:

apso schema validate apso doctor apso generate

Fix the first schema or generator error, then rerun the command.

The API route returns 404

Open /_docs, confirm the plural resource name, and compare the deployed endpoint with the local service. Generated routes such as /Projects are case-sensitive in common deployment environments.

Where can I report a problem?

Review the public repositories under github.com/apsoai  or use apso.ai/contact . Include apso --version, the target language, reproduction steps, and sanitized logs.

Last updated on