Why TenSaaS Makes the Team the AI Tenant
How TenSaaS uses the team as the boundary for AI applications, permissions, contract quota, and audit.
Once an enterprise adopts AI, the hard part is not adding another chat box. It is answering four operating questions:
Who owns an AI application, who may use it, which budget pays for it, and where is the receipt?
TenSaaS answers with the team. A team is not a visual folder or a convenient filter. It is the tenant boundary that owns members, applications, entitlements, AI grants, and audit history.
Why the individual account is not enough
Personal accounts work for profile preferences and individual billing. Enterprise AI work is shared. A department installs an application, several people use it, a contract funds it, and an administrator must explain the resulting cost.
If those records stay attached to individuals, three problems appear:
- Access remains after a person changes teams.
- Shared applications have no accountable owner.
- Model usage cannot be reconciled to the contract that funded it.
TenSaaS keeps personal settings under /settings, team operations under /workspace/:teamId, and
platform-wide operations under /admin. The URL helps users understand the current context, but
authorization never trusts the URL alone.
Two administration planes
Platform administrators manage the service itself. They set model prices, platform policy, tenant contracts, and grants. Their decisions can affect more than one tenant.
Team owners and team administrators manage only their team. They maintain membership, install or disable applications, and delegate access within the tenant boundary. These roles do not inherit platform-wide authority.
Ordinary members use approved applications. Their right to use one is derived from an active team membership
and an explicit capability such as ai.use.
This separation avoids a common multi-tenant failure: treating a team admin as a smaller platform admin. The two roles operate on different resources and answer to different risk boundaries.
Every application run resolves its owner
An application run is accepted only after the server resolves all of the following:
- The signed-in user.
- An active membership in the selected team.
- An active application owned by that team.
- The required permission and entitlement.
- An eligible contract grant with sufficient remaining quota.
These checks happen again at execution time. A browser route or a previously loaded page is not proof that the current request is still allowed.
The browser also never receives the application API key. Provider credentials and cost policy stay on the server, where a member cannot change model price or submit an arbitrary credit cost.
Quota is a ledger, not a counter
A single balance can tell a team how much remains. It cannot explain where the money came from or what consumed it.
TenSaaS therefore treats team quota as a set of attributable records. The runtime calculates an estimated cost from the active model price, reserves credits against eligible contract grants, calls the provider, settles against actual usage, and releases any unused reservation. Adjustments and refunds retain their source.
This matters during a pilot. A team administrator can connect an application run to the team, member, application, contract source, and usage result instead of relying on an unexplained balance change.
Fail closed is a product behavior
Multi-tenant trust is visible in failure cases. TenSaaS stops a run when membership, application state, contract, entitlement, or balance is invalid. It does not silently fall back to personal credits, another team, or an unpriced model.
That behavior can feel stricter than a consumer AI tool. For enterprise service, it is the basis of explainable access and cost.
The first useful TenSaaS deployment is therefore not a large application catalog. It is one team, one governed application, a small group of named members, and a complete authorization, quota, and audit loop. Once that loop is trusted, the platform can expand without losing ownership.