Skip to main content
AgentOS turns off credentialed CORS when you allow every origin, so other websites can’t use your users’ cookies to call your agents.

Quick Start

1

Public endpoint, no cookies

2

Browser app with cookies


How It Works

The same rule applies to the async jobs server when you pass cors_origins to praisonai.jobs.server.create_app.
The Authorization header still works with ["*"] when your client sends it without credentials: "include" — for example, a bearer token from your API key.

Why

With a "*" origin and credentials both enabled, Starlette’s CORS middleware echoes the caller’s Origin header back when a cookie is present. Any website could then make logged-in requests to your deployment. Browsers forbid * with credentials for this reason, and AgentOS enforces the same rule on the server.

Best Practices

Use cors_origins=["https://app.example.com"] instead of ["*"] for any deployed frontend.
One "*" entry turns credentials off for the whole list.
If cookie-based browser calls stopped working after an upgrade, you were relying on ["*"] with credentials. Switch to an explicit origin list.

AgentOS

AgentOS configuration and lifecycle

Async Jobs

Jobs server that follows the same CORS rule