# Concepts

Source: https://www.pingtower.com/docs/getting-started/concepts/

Seven nouns. Everything else in the docs is built out of these.

| Term | What it is | Lives in |
| --- | --- | --- |
| **Account** | You. An email and a password. One account can belong to many tenants. | pingtower.com |
| **Tenant** | A company or a team. Owns its own data, members and API keys. Every tenant you join gives you a separate credential scoped to just that tenant's data. | pingtower.com, or your own box |
| **Project** | A namespace inside a tenant: a service, an environment, a product. Holds sources, rules, integrations, actions and reports. Open-alert counts roll up per project. Addressed by name. | tenant |
| **Source** | One thing that sends lines. Each source has its own ingest token, which you can rotate without touching the others, and its own `retain_logs` switch. | project |
| **Template** | A message's shape: the line with the values you passed as `keys` substituted out. `payment failed for o_48113` with `keys.order = o_48113` becomes `payment failed for {{ .order }}`, so every order's failure counts as the same thing. | project |
| **Rule** | A declarative match plus timing: what to look for, how many in what window, how often to re-page, who to escalate to. | project |
| **Alert** | A rule that fired. Carries a count, an escalation level, first and last seen, and the last message. Firing until acked, resolved when done. | project |

## How isolation works

Each tenant is one SQLite file. The credential you present decides which file is opened. Nothing in a URL or a request body can reach another tenant's data, because there is no code path that opens a file the token did not name.

Projects are namespaces *within* that file. A project name in a path is a filter, never a second identity check.

## Roles

Three, per tenant membership.

| Role | Can |
| --- | --- |
| **owner** | Everything, including deleting the tenant and setting its plan. A tenant always has at least one; removing the last one is refused. |
| **admin** | The manager tier with the owner: invite and remove members, mint and revoke API keys, rename the tenant, rename or delete a project, rotate a source token, revoke a pairing. |
| **member** | Everything on the data plane with their own API key: read and act on alerts, edit sources, rules, integrations, actions and reports. |

You cannot invite someone above your own role.
