# Налози и приступ

Налог садржи ваше пројекте, чланове вашег тима и један модел приступа.

Canonical page: https://beeuni.ai/docs/sr/accounts

Налог садржи ваше [пројекте](/docs/sr/project) и људе који раде на њима. Када се региструјете, Beeuni вам прави лични налог. Позовите члана тима и он постаје тимски налог. Лични и тимски налози користе исте улоге, обрачун и ограничења.

<a id="one-access-model"></a>

## Јединствен модел приступа

Beeuni има један запис о додели: **доделу**. Свака додела повезује једног субјекта са једном улогом, у једном опсегу.

| Појам | Значење |
|---|---|
| **Субјект** | Ко има приступ. `user`, `group`, `service_account` (идентитет агента) или имејл адреса позваног корисника `pending`. |
| **Улога** | Именовани скуп дозвола. Beeuni испоручује уграђене улоге наведене у наставку. Налог може да дода прилагођене улоге. |
| **Дозвола** | Једна радња, на пример `project.secret.read` или `member.update`. |
| **Опсег** | Где се улога примењује: на цео `account` или на један `project`. |
| **Објекат** | Опционално. Сужава доделу на један `agent`, `skill`, `secret`, `app` или `trigger` унутар опсега. |
| **Истек** | Опционално. Додела престаје да важи у `expires_at`. |

Не постоји друго складиште додела. Приступ групе, додела за појединачни ресурс и повезивање прилагођене улоге — све су то доделе. Разликују се само по субјекту, објекту и улози.

<a id="account-roles"></a>

## Улоге налога

Свака особа на налогу има једну улогу налога:

- **Власник** — потпуна контрола, укључујући чланове и обрачун.
- **Администратор** — управља пројектима, члановима, групама, улогама и токенима.
- **Члан** — ради само у пројектима у којима има додељену улогу пројекта.

Власник и администратор имају приступ еквивалентан менаџерском у сваком пројекту на налогу. Додела пројектне улоге то не може да умањи. Да бисте ограничили власника или администратора у једном пројекту, најпре промените њихову улогу налога у члана.

Приступ еквивалентан менаџерском не обухвата приватне сесије чланова. Власник налога може то да омогући власницима и администраторима помоћу опције **Admins can open every session** у одељку **Settings → Security**. То може да промени само власник, а свака употреба се бележи у евиденцији ревизије. Погледајте [Приступ сесијама](/docs/sr/work/sessions#admins-can-open-every-session).

Позовите члана тима имејлом са странице чланова налога. Позив је додела за субјекта типа `pending`. Када га прихвати, постаје додела типа `user`.

<a id="project-roles"></a>

## Улоге пројекта

Унутар пројекта, субјект има једну од две улоге:

- **Члан** — прегледа пројекат, покреће и зауставља његове сесије и активира окидаче. Не може да уређује нити да мења подешавања.
- **Менаџер** — има све дозволе пројекта: уређује пројекат, управља окидачима, конекторима, вештинама, тајнама и приступом, има кључеве мрежног пролаза и брише пројекат.

Не постоји трећа улога пројекта.

Улога менаџера обухвата све дозволе пројекта. Прилагођена улога само додаје дозволе, па ниједна улога не може да ускрати дозволу менаџеру. [Доделе објеката](#object-assignments) представљају засебан механизам за ограничавање *објеката* на које се дозвола односи.

Подесите приступ пројекту у подешавањима приступа пројекта или помоћу `beeuni access` — погледајте [CLI](/docs/sr/cli#access).

<a id="groups"></a>

## Групе

Група је субјект, баш као и особа. Доделите улогу групи у неком опсегу и сви њени чланови ће је имати. Група додаје приступ. Никада не уклања приступ који особа већ има. Група обезбеђена преко SCIM-а има исти тип субјекта као група коју ручно направите.

<a id="object-assignments"></a>

## Доделе објеката

Додела може да наведе један објекат унутар пројекта: `agent`, `skill`, `secret`, `app` или `trigger`. Beeuni тренутно примењује доделе објеката на агенте и вештине.

- **Агенти су подразумевано затворени.** Члан може да приступи агенту само ако је додела наведена за њега, једну од његових група или све чланове пројекта.
- **Сваки други тип објекта подразумевано је отворен.** Ако за објекат нема доделе, члан може да му приступи. Дељени налог конектора са доделом могу да користе само именоване особе — погледајте [Изаберите ко може да користи дељени налог](/docs/sr/connect/connectors#choose-who-can-use-a-shared-account).
- **Сви чланови пројекта такође су субјект.** У дијалогу **Grant access** изаберите **Everyone in**, а затим име пројекта да бисте одједном доделили агента свим члановима (`principal_type: "project"`, `principal_id` = ID пројекта). Ова опција садржи само доделе објеката — никада улогу — па свака особа задржава своју улогу пројекта.
- **Додела објекта ограничава и менаџера пројекта.** Због тога израз „ограничити приступ овом агенту на финансијску групу“ има смисла. Улога менаџера даје подразумевани приступ без ограничења опсега, а не изузеће од ограничења.
- **Доделе објеката никада не ограничавају власнике и администраторе налога**, нити сервисни налог који поступа по сопственим доделама.

Додела објекта сама по себи не даје дозволе. Она одређује „којим објектима“, а не „којим радњама“.

<a id="expiry"></a>

## Истек

Доделите додели `expires_at` и она ће престати да важи у том тренутку. Систем игнорише истеклу доделу. Запис остаје у евиденцији ревизије.

<a id="one-vocabulary-two-bindings"></a>

## Јединствен речник, два повезивања

Особа, група или агент добија приступ у Beeuni-ју путем **улога** — додела описаних изнад. Агент има и **друго, засебно повезивање**: Beeuni дозволе које његов манифест наводи у `beeuni.yaml` под `agents.<name>.beeuni_permissions`. Сесија може да ради само оно што обе ствари дозвољавају. Оне никада не проширују једна другу. Агент чији манифест наводи `project.secret.read` и даље не може ништа да прочита ако процена улоге то одбија, а агент који покрене власник и даље не може ништа да прочита ако манифест не наводи ту радњу. Улоге су стање налога; Beeuni дозволе су стање репозиторијума у манифесту. Погледајте [Референца манифеста](/docs/sr/project/manifest#agents).

За агентску сесију важи улога додељена сопственом сервисном налогу агента — његов **горњи лимит** — или подразумевани горњи лимит агента ако улога није додељена. Не важи улога особе која је покренула сесију. Једна дозвола, `project.credentials.issue`, намењена је само људима и никада се не примењује на агента. Агент може да додели само оно што сам има. Администратори бирају агента као субјекта улоге пројекта у чворишту приступа, у одељку **Agents**. Погледајте [Дозволе агената](/docs/sr/project/permissions).

<a id="custom-roles"></a>

## Прилагођене улоге

Прилагођена улога је улога у власништву налога са дозволама које изаберете. Њеном доделом уписује се једна додела — испод ње не постоји подразумевани ред. Прилагођена улога може да обезбеди приступ пројекту без иједне уграђене улоге пројекта, што омогућава улогу типа одељења.

Прилагођена улога само додаје дозволе. Beeuni нема правило забране.

За прилагођене улоге потребно је право на коришћење функције `rbac` за предузећа. Без њега, покушај доделе враћа `402` са `code: "entitlement_required"`.

<a id="super-admin"></a>

## Суперадминистратор

Суперадминистратор није улога. То је ознака на једном чланству налога. Она заобилази сваку проверу дозвола, а свако заобилажење се уписује у евиденцију ревизије. Улоге су механизам за редован приступ; суперадминистратор је евидентирани излаз у хитном случају.

Креатор налога почиње као власник и суперадминистратор. Када се власнику снизи улога, улога власника и ознака суперадминистратора укидају се заједно: промена уклања ознаку и бележи `iam.member.super_admin.revoke`. Ознака суперадминистратора додељена особи која није власник остаје док је власник не опозове.

<a id="single-sign-on-domain"></a>

## Домен за јединствено пријављивање

SAML добављач идентитета потврђује имејл адресу сваке особе. Beeuni ван вашег налога верује тој адреси само за домен који је ваш налог верификовао. До тада:

- особа пријављена преко вашег добављача идентитета и даље се придружује вашем налогу и добија приступ својим групама;
- њен SSO идентитет се не поклапа ни са једним позивом са другог налога, а опција „додај члана имејлом“ на другом налогу неће га пронаћи;
- SSO пријављивање никада не спаја постојећи идентитет са SSO идентитетом;
- **Enforce SSO** нема дејства, а пријављивање лозинком за тај домен и даље функционише.

Да бисте верификовали домен, отворите **Identity** у подешавањима налога. SSO картица приказује DNS TXT запис: име `_beeuni-verification.<your-domain>`, вредност `beeuni-verification=<token>`. Објавите га код свог DNS провајдера, а затим изаберите **Verify domain** (`POST /v1/accounts/:accountId/iam/sso/provider/verify-domain`). Домен може да припада само једном налогу: домен који је други налог већ верификовао не може поново да се верификује. Промена примарног домена започиње ново, неверификовано потраживање.

Када је домен верификован и опција **Enforce SSO** укључена, веб-образац за пријављивање, `/v1/access/check-email` и руте без графичког интерфејса `/v1/auth/sign-in/password`, `/v1/auth/sign-in/magic-link` и `/v1/auth/verify-otp` одбијају пријаву лозинком и путем кода из имејла за тај домен (`403 sso_required`).

SSO пријављивање никада не спаја власника нити суперадминистратора са SSO идентитетом, чак ни на верификованом домену. Они задржавају свој постојећи идентитет, а SSO идентитет се придружује као засебан члан.

<a id="per-feature-access-settings"></a>

## Подешавања приступа по функцији

Неке функције поред модела улога имају и сопствено подешавање видљивости:

| Подешавање | Одређује |
|---|---|
| [Режим приступа апликацији](/docs/sr/feature-flags/apps#access-modes) | Ко може да отвори једну примењену апликацију |
| [Приступ сесијама окидача](/docs/sr/connect/triggers#session-access) | Ко може да отвори сесије које покрене један окидач |
| [Правила Slack канала](/docs/sr/connect/slack) | Ко може да покрене сесију са једног канала |
| [Могућности рачунара](/docs/sr/connect/computers#what-the-computer-allows) | Које позиве система датотека, љуске и радне површине повезани рачунар прихвата |

Свака од њих сужава приступ једном ресурсу. Ниједна не даје дозволу коју процена улоге одбија.

<a id="the-access-api"></a>

## API за приступ

| Метод + путања | Функција |
|---|---|
| `GET /v1/accounts/{accountId}/iam/assignments` | Наводи доделе. Филтрирајте према субјекту, опсегу, објекту или улози. |
| `POST /v1/accounts/{accountId}/iam/assignments` | Прави једну доделу. |
| `DELETE /v1/accounts/{accountId}/iam/assignments/{assignmentId}` | Опозива једну доделу. |
| `GET /v1/accounts/{accountId}/iam/permissions` | Каталог дозвола као податке. |
| `GET /v1/accounts/{accountId}/iam/roles` | Уграђене и прилагођене улоге. |
| `GET /v1/accounts/{accountId}/iam/roles/{roleId}/permissions` | Дозволе једне улоге. |

Каталог је скуп података, а не листа уграђена у код. Свака дозвола садржи вредности `action`, `scope_type`, `resource_type`, ознаку `delegable`, `description`, `area`, `level` и `implies`. Читајте их уместо да уграђујете ниске назива радњи у код.

Руте за упис бирају потребну дозволу на основу онога што додељујете: `project.members.manage` за улогу пројекта или доделу објекта, `project.connector.connections.manage` за доделу типа `connection`, `member.update` за улогу налога, `policy.create` за прилагођену улогу. Не можете да заобиђете горњи лимит избором друге руте.

<a id="branding"></a>

## Брендирање

Налог Enterprise може свим члановима да прикаже сопствени бренд у апликацији: широки логотип, квадратну иконицу и favicon, сваки са опционалном варијантом за тамни режим, као и назив производа који замењује „Beeuni“ у наслову картице прегледача. Отворите **Account → Branding** (`/accounts/{accountId}?tab=branding`). Можете да отпремите PNG, JPEG, WebP, SVG и ICO датотеке до 1 MB; ако логотип недостаје, замењује га иконица, ако favicon недостаје, замењује га иконица, а ако недостаје тамна варијанта, користи се светла слика. Ознаке у апликацији прате тему апликације; favicon прати шему боја оперативног система.

Брендирање прати налог, а не прегледач: унутар пројекта чланови виде бренд налога који је власник пројекта. Странице за пријављивање, имејлови и јавне странице за дељење задржавају Beeuni брендирање, јер налог за брендирање не постоји док се неко не пријави. Када истекне право на коришћење функције Enterprise, чланови поново виде Beeuni — ништа се не брише, а налог може у било ком тренутку да уклони отпремљени садржај.

| Метод + путања | Функција |
|---|---|
| `GET /v1/accounts/{accountId}/branding` | Сачувани запис и информација о томе да ли план то дозвољава. |
| `PUT /v1/accounts/{accountId}/branding` | Поставља или брише `app_name`. Захтева `account.write` и право на коришћење функције `branding` (иначе `402 entitlement_required`). |
| `POST /v1/accounts/{accountId}/branding/assets/{kind}` | Отпрема једну слику као вишеделни `file`. `kind` је `logo`, `icon`, `favicon` или њихове варијанте `_dark`. Важе исти услови као за `PUT`. |
| `DELETE /v1/accounts/{accountId}/branding/assets/{kind}` | Уклања једну слику. Само `account.write`. |
| `DELETE /v1/accounts/{accountId}/branding` | Враћа све на Beeuni. Само `account.write`. |

`GET /v1/accounts` садржи ефективну вредност `branding` за сваки налог — запис док постоји право на коришћење функције, односно `null` у супротном — како би клијент могао да прикаже бренд на основу једног позива који већ упућује. У SDK-у: `beeuni.accounts.branding.{get, update, uploadAsset, removeAsset, reset}`.

<a id="switching-accounts"></a>

## Пребацивање налога

Ако сте члан више од једног налога, пребацујте се између њих помоћу бирача налога. Сваки налог има сопствене пројекте, чланове и подешавања.

<a id="signed-in-devices"></a>

## Уређаји на којима сте пријављени

Одељак **Settings → Security → Devices** наводи сва места на којима сте пријављени: прегледаче, десктоп апликацију и мобилну апликацију.

- Опција **Sign out** на једном уређају одмах завршава ту пријаву. Уређај не може да обнови сесију, његов токен престаје да ради на рутама налога, а телефон престаје да добија push обавештења.
- Опција **Sign out other devices** завршава све остале пријаве. Ниједан од тих уређаја не може да обнови сесију, а њихови телефони одмах престају да добијају push обавештења.

Телефон који се поново пријави поново ће добијати push обавештења.

<a id="tokens"></a>

## Токени

Beeuni вас пријављује помоћу личног токена за приступ (`beeuni_pat_...`). Он поступа као корисник који га је направио и има тачно оне доделе које има тај корисник. Сервисни налог (`beeuni_sa_...`) је засебан субјект, а не акредитив особе, и нема приступ пројекту све док му се не додели.

Ова два токена налазе се на различитим местима јер припадају различитим власницима. Сопствене API кључеве можете да пронађете у подешавањима, у одељку **Settings → API keys** (`/settings/tokens`) — видите их само ви, а престају да раде када престанете да будете члан. Токени сервисног налога су конфигурација налога, у одељку **Account → Tokens**, поред правила за кључеве која уређују истек.

За комплетан модел токена погледајте одељак о потврди идентитета у SDK-у.

<a id="audit-log"></a>

## Евиденција ревизије

Евиденција ревизије бележи сваки захтев који стигне до API-ја, без обзира на то да ли је у захтеву наведен позивалац. Сервер уписује по један ред за сваки HTTP захтев, WebSocket надоградњу везе, захтев за преглед, Git пренос и SCIM позив. Покривеност не зависи од руте.

Сваки ред именује позиваоца чији је идентитет потврђен захтевом:

| `actor_type` | Позивалац |
| --- | --- |
| `human` | Пријављена особа или токен те особе (`source: api_key`). |
| `agent` | Акредитив агента сесије. У реду је наведена и особа у чије име агент поступа. |
| `service_account` | Токен сервисног налога. |
| `system` | API кључ налога, токен SCIM директоријума, веб-кука интеграције са верификованим потписом или Beeuni позадински посао (`source: worker`). |
| `anonymous` | Захтев без акредитива или са неважећим или фалсификованим акредитивом. |

Сваки ред бележи и акредитив који је API потврдио, у `credential_kind` и `credential_id`. ID именује акредитив, никада тајну. Веб-апликација га приказује у пољу **Via**, уз назив токена или апликације ако постоји.

| `credential_kind` | Акредитив | `credential_id` |
| --- | --- | --- |
| `browser_session` | Beeuni сесија пријављивања (веб-апликација или клијент са JWT токеном за пријављивање). | ИД сесије пријаве. |
| `personal_access_token` | Лични приступни токен, попут оног за CLI. | ИД токена. |
| `oauth_app` | Токен `beeuni_oat_` повезане апликације, попут MCP клијента. | ИД OAuth клијента. |
| `session_token` | Сопствени токен сесије агента. | ИД сесије. |
| `api_key` | API кључ налога. | ИД кључа. |
| `service_account` | Токен сервисног налога. | ИД сервисног налога. |
| `scim_token` | Токен SCIM директоријума. | ИД токена. |

API никада не чита `X-Beeuni-Client`. CLI, MCP сервер и веб-апликација позивају исти API, а сваки клијент може да пошаље било коју вредност заглавља, па се у евиденцији бележи само оно што API може да докаже. Редови уписани пре 2026-09-30 могу да садрже самопријављени `client_reported_source`. Нови редови остављају ово поље празним. Филтрирајте према акредитиву помоћу `?credential_kind=oauth_app` на `GET /v1/accounts/:accountId/audit` или `beeuni audit ls --credential-kind oauth_app`.

Редови уписани пре 2026-10 садрже `session_sequence`, `integrity_previous_hash` и `integrity_hash`: бројач по сесији и хеш-ланац. Нови редови остављају сва три поља празним, а поља су застарела. Ништа није проверавало ланац, а његово одржавање је серијализовало свако уписивање у сесији. Евиденција сесије поређана је по времену креирања: редови са `session_sequence` иду први, тим редоследом, а затим новији редови редоследом којим их је API креирао.

Одбијени захтев је ред са `outcome: denied`. `metadata.auth` бележи начин на који се позивалац аутентификовао: ИД токена, никада тајну. Git клонирање је радња `git.clone`. Слање измена је `git.push`, а `metadata.refs` наводи сваку референцу коју је креирало, ажурирало или обрисало.

<a id="retention"></a>

### Рок чувања

| Старост догађаја | Где се чува | Како га читате |
| --- | --- | --- |
| 0 до 90 дана | PostgreSQL, једна партиција недељно | Евиденција ревизије у веб-апликацији, `GET /v1/accounts/:accountId/audit`, `beeuni audit ls`, веб-хукови за ревизију и извоз |
| 90 до 365 дана | S3 архива са закључавањем објеката (режим усклађености) | Само извоз: `GET /v1/accounts/:accountId/audit/export` или `beeuni audit export` |
| Више од 365 дана | Обрисано | Није доступно |

Недеље трају од понедељка у 00:00 UTC до следећег понедељка у 00:00 UTC. Недеља се премешта у архиву када њен последњи тренутак буде стар 90 дана, па догађај постаје доступан само за извоз између 90. и 97. дана од настанка. Архива чува догађај до 365 дана након завршетка недеље у којој је настао, тако да се догађај укупно чува од 365 до 372 дана, а закључавање чувања значи да нико, укључујући запослене у Beeuni-ју, не може да скрати тај рок нити да га обрише пре тога. Политика приватности наводи исто ограничење: евиденције апликације чувају се до 365 дана.

Извоз враћа архиву и PostgreSQL као једну листу, од најстаријих ставки, са истим филтерима, истим пољима и истим пагинирањем `X-Audit-Next-Cursor`. За оба начина читања је потребно право `auditAccess`. Архивирани догађаји садрже иста поља као активни; `session_sequence` и хешеви интегритета су празни за догађаје уписане од 2026-10 (погледајте изнад).

<a id="actions"></a>

### Радње

Сваки ред има `action` под називом `domain.resource.verb` и наслов који приказују веб-апликација и `beeuni audit ls`:

| Радња | Наслов | Уписује |
| --- | --- | --- |
| `gateway.key.revoke` | Опозван кључ LLM мрежног пролаза | Захтев за `DELETE /v1/projects/:projectId/gateway/keys/:keyId`. |
| `iam.group.create` | Креирана група | Захтев којим је креирана група. Ред садржи нову групу у `after`. |
| `secret.consumer.used` | Употребљена тајна | Песковито окружење које је прочитало тајну. |
| `api.rate_limit.exceeded` | Достигнуто ограничење брзине API-ја | Ограничавач који је одбио захтев. Назив даје `metadata.limiter`. |

Свака API рута има тачно једну радњу. Ред захтева чува шаблон руте у `metadata.http`, а никада сирову путању, која може да садржи токен. Када обрађивач упише сопствени догађај за захтев, са стањем пре и после, тај догађај је једини ред тог захтева. Захтев који није одговарао ниједној рути је `api.route.unmatched`.

Филтрирајте према префиксу радње: `?action=iam.` на `GET /v1/accounts/:accountId/audit`, `beeuni audit ls --action iam.` или у `--action-prefix` веб-хука за ревизију. [Радње евиденције ревизије](/docs/sr/audit-actions) наводи сваку радњу и њен наслов. Редови уписани пре 2026-09-24 имају `METHOD /template` као радњу и приказују исте наслове.

Позадински задаци Beeuni-ја обављају радње без захтева: истичу важење одобрења и дозвола за тунел, бришу истекле гране сесија, активирају постављања App-а и премештају пројекте између добављача песковитог окружења. Њихови редови имају `source: worker`, а `metadata.auth.worker` наводи назив задатка, на пример `tunnel-cleanup` или `app-deployments`. Ред постављања App-а такође наводи члана који је покренуо постављање као иницијатора.

Анонимни захтев који наводи један од ваших пројеката уписује се у вашу евиденцију. Изаберите ове редове помоћу `actor_type=anonymous`. Анонимни захтеви подлежу ограничењу учесталости на сваком API процесу, па њихова навала не може да потисне редове са утврђеним извором. Провере исправности, CORS захтеви за прелиминарну проверу и анонимни саобраћај ка постављеном App-у се не бележе.

<a id="billing"></a>

## Наплата

Бесплатни пакет укључује један пројекат и 20 $ почетних кредита, који важе 30 дана од пријема. Од следећег периода добијаш 2 $ месечно, без преноса. Кредити покривају рад рачунара и званичне моделе.

Почетни кредити се додељују једном по личном налогу. Примаоци старе понуде од 2 $ добијају разлику од 18 $; налози који је никада нису добили добијају 20 $. Прављење другог тима или пројекта не додељује понуду поново. Купљени кредити се чувају одвојено и не бришу се када бесплатни кредити истекну или се месечно обнове.

Наплата се примењује на нивоу налога и обухвата све пројекте на том налогу. Beeuni нуди бесплатни, Pro и тимски пакет који се наплаћује по седишту, а сваки има сопствени приступ моделима и кредите. Коришћење сопственог кључа модела не чини коришћење бесплатним: Beeuni и даље наплаћује накнаду за платформу, осим у бесплатном пакету.

> **Enterprise**
>
> Јединствена пријава (`sso`), SCIM додела налога (`scim`), прилагођене улоге (`rbac`) и приступ евиденцији ревизије (`auditAccess`) права су доступна у пакету Enterprise. Право није повезано са улогом: оно одређује да ли је функција доступна налогу, а улога и даље одређује ко може да је користи. Обратите се продајном тиму да бисте их омогућили.
