Skip to content

Aplikace (/applications)

Správa aplikací v systému. Pouze SuperAdmin může vytvářet, upravovat a mazat aplikace.

GET /applications — seznam aplikací

http
GET /api/applications
Authorization: Bearer <superadmin-token>

Response

json
{
  "success": true,
  "data": [
    {
      "id": 1,
      "code": "crm",
      "name": "CRM Systém",
      "description": "Správa zákazníků a obchodních příležitostí",
      "createdAt": "2024-01-10T08:00:00.000Z"
    },
    {
      "id": 2,
      "code": "vallox-panel",
      "name": "Vallox Panel",
      "description": null,
      "createdAt": "2024-01-11T09:00:00.000Z"
    }
  ]
}

GET /applications/:appCode — detail aplikace

http
GET /api/applications/crm
Authorization: Bearer <superadmin-token>

Response

json
{
  "success": true,
  "data": {
    "id": 1,
    "code": "crm",
    "name": "CRM Systém",
    "description": "Správa zákazníků a obchodních příležitostí",
    "createdAt": "2024-01-10T08:00:00.000Z"
  }
}

POST /applications — vytvoření aplikace

http
POST /api/applications
Authorization: Bearer <superadmin-token>
Content-Type: application/json

Request body

json
{
  "code": "nova-app",
  "name": "Nová Aplikace",
  "description": "Popis aplikace (volitelné)"
}
PoleTypPovinnéPopis
codestringUnikátní kód aplikace (slug)
namestringZobrazované jméno
descriptionstringVolitelný popis

Konvence pojmenování

code by měl být lowercase slug bez mezer: crm, vallox-panel, atrea-service.

Response 201 Created

json
{
  "success": true,
  "data": {
    "id": 3,
    "code": "nova-app",
    "name": "Nová Aplikace",
    "description": "Popis aplikace",
    "createdAt": "2024-01-20T12:00:00.000Z"
  }
}

PUT /applications/:appCode — aktualizace aplikace

http
PUT /api/applications/nova-app
Authorization: Bearer <superadmin-token>
Content-Type: application/json

Request body

json
{
  "name": "Nová Aplikace v2",
  "description": "Aktualizovaný popis"
}

code nelze měnit po vytvoření.


DELETE /applications/:appCode — smazání aplikace

http
DELETE /api/applications/nova-app
Authorization: Bearer <superadmin-token>

Response 204 No Content

Kaskádové smazání

Smazání aplikace smaže kaskádově všechna závislá data:

  • Všechna oprávnění aplikace
  • Všechny role aplikace
  • Všechna přiřazení rolí uživatelům
  • Všechny resource-level overrides
  • Všechny app adminy
  • Notifikační typy a šablony

Workflow: nastavení nové aplikace

Kompletní postup pro nastavení nové aplikace:

1. Vytvořte aplikaci

bash
POST /api/applications
{ "code": "moje-app", "name": "Moje Aplikace" }

2. Vytvořte oprávnění

bash
POST /api/applications/moje-app/permissions
{ "code": "documents.read", "type": "binary", "groupName": "Dokumenty" }

POST /api/applications/moje-app/permissions
{ "code": "documents.edit", "type": "tiered", "groupName": "Dokumenty" }

3. Vytvořte role

bash
POST /api/applications/moje-app/roles
{ "code": "viewer", "description": "Pouze čtení" }

POST /api/applications/moje-app/roles
{ "code": "editor", "description": "Čtení a editace" }

4. Přiřaďte oprávnění rolím

bash
# Role "viewer" — jen čtení
PUT /api/applications/moje-app/roles/1/permissions
{ "permissions": [{ "permissionId": 1, "accessLevel": "allowed" }] }

# Role "editor" — čtení + editace
PUT /api/applications/moje-app/roles/2/permissions
{
  "permissions": [
    { "permissionId": 1, "accessLevel": "allowed" },
    { "permissionId": 2, "accessLevel": "edit" }
  ]
}

5. Přidejte app admina (volitelně)

bash
POST /api/users/admins/apps/moje-app
{ "email": "admin@firma.cz" }

6. Přiřaďte uživatelům role

bash
PUT /api/users/jan.novak@firma.cz/apps/moje-app/roles
{ "roleIds": [2] }

7. Testujte oprávnění

bash
POST /api/check
{
  "email": "jan.novak@firma.cz",
  "app": "moje-app",
  "permission": "documents.edit"
}

Atrea User API — interní dokumentace