> ## Documentation Index
> Fetch the complete documentation index at: https://developers.essal.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps

> An overview of the six Essal apps, how they relate to each other, and how they share data through the Core API.

Essal ships six purpose-built apps, each targeting a distinct operational domain. They are not standalone products — they share a unified authentication layer, a common data model, and a single event bus, so data flows naturally between them.

## The Six Apps

<CardGroup cols={2}>
  <Card title="Office" icon="file-lines">
    Create and collaboratively edit documents, spreadsheets, and presentations. Files are versioned, exportable, and linkable from any other app.
  </Card>

  <Card title="Access" icon="shield-keyhole">
    The identity backbone of the platform. Manages users, groups, SSO connections, and directory sync. All other apps delegate authentication to Access.
  </Card>

  <Card title="Sales" icon="chart-line">
    CRM capabilities including contact management, deal pipelines, and activity feeds. Contacts can be linked to Careers applicants or Project stakeholders.
  </Card>

  <Card title="Careers" icon="briefcase">
    End-to-end applicant tracking. Post jobs, collect applications, run scorecards, and move candidates through configurable hiring stages.
  </Card>

  <Card title="Project" icon="rectangle-list">
    Task management with sprints, boards, priorities, and time tracking. Projects can reference Sales deals and attach Office documents.
  </Card>

  <Card title="Guard" icon="lock">
    Security policy management, audit logging, and threat detection. Guard enforces access control across all five other apps.
  </Card>
</CardGroup>

## How Apps Share Data

Apps communicate through the **Essal Core API** — a shared layer that resolves cross-app entity references. For example:

* A **Project** task can reference a **Sales** deal as its business context
* A **Careers** applicant can be promoted to an **Access** user on hire
* An **Office** document can be attached to a **Project** task or a **Sales** contact

Cross-app links are represented as typed references in API payloads:

```json theme={null}
{
  "id": "task_01HXYZ7890",
  "title": "Prepare onboarding docs",
  "linked_resources": [
    { "type": "office.document", "id": "doc_01HXYZABC" },
    { "type": "sales.contact", "id": "cnt_01HXYZ1234" }
  ]
}
```

## Enabling and Disabling Apps

Workspace admins can enable or disable individual apps from **Settings → Apps**. Disabling an app hides it from the dashboard and removes its API surface from your workspace, but does not delete underlying data.

<Warning>
  Disabling an app that other apps depend on (e.g. Access) requires migrating linked data first. The API will return a `dependency_conflict` error if you attempt to disable a prerequisite app.
</Warning>
