feat(foundation): FOUNDATION_UPDATE implementation
## Documentation (20 files) - DAARION Ontology Core v1 (Agent → MicroDAO → Node → District) - User Onboarding & Identity Layer (DAIS) - Data Model UPDATE, Event Catalog, Governance & Permissions - Rooms Layer, City/MicroDAO/Agents/Nodes Interface Architecture - Helper files: ontology-summary, lifecycles, event-schemas ## Database Migration (027) - DAIS tables: dais_identities, dais_emails, dais_wallets, dais_keys - agent_assignments table for Assignment Layer - rooms table for Rooms Layer - event_outbox for NATS event delivery - New enums: agent_role, microdao_type, node_kind, node_status, etc. - Updated agents, microdaos, nodes tables with ontology fields ## Backend - DAIS service & routes (/api/v1/dais/*) - Assignment service & routes (/api/v1/assignments/*) - Domain types for DAIS and Ontology ## Frontend - Ontology types (Agent, MicroDAO, Node, DAIS, Assignments) - API clients for DAIS and Assignments - UI components: DaisProfileCard, AssignmentsPanel, OntologyBadge Non-breaking update - all existing functionality preserved.
This commit is contained in:
234
docs/foundation/DAARION_Identity_And_Access_Draft_v1.md
Normal file
234
docs/foundation/DAARION_Identity_And_Access_Draft_v1.md
Normal file
@@ -0,0 +1,234 @@
|
||||
# DAARION_Identity_And_Access_Draft_v1.md
|
||||
|
||||
## DAIS — DAARION Autonomous Identity System (Draft IAM Specification)
|
||||
|
||||
**Version:** 1.0
|
||||
**Status:** Draft (Foundation Update)
|
||||
**Scope:** DAIS identity, wallets, keys, access control, DID, recovery
|
||||
|
||||
---
|
||||
|
||||
# 0. Мета документа
|
||||
|
||||
Визначити проектну модель системи ідентичності та доступу в DAARION.city:
|
||||
|
||||
* як створюється DAIS-ідентичність;
|
||||
* як зв’язуються email, wallet, ключі, DID, Matrix;
|
||||
* як визначаються рівні довіри;
|
||||
* як працює key rotation та recovery;
|
||||
* як DAIS пов’язаний із Agent/MicroDAO/Node;
|
||||
* як реалізований доступ на рівні сервісів (gateway, node, worker).
|
||||
|
||||
Документ — фундамент IAM-модуля. Він не ламає поточну архітектуру, а задає майбутні вимоги.
|
||||
|
||||
---
|
||||
|
||||
# 1. Концепція DAIS
|
||||
|
||||
DAIS (DAARION Autonomous Identity System) — універсальна цифрова ідентичність, яка належить **агенту** й використовується для:
|
||||
|
||||
* створення агента,
|
||||
* входу в MicroDAO,
|
||||
* авторизації на нодах,
|
||||
* підписання подій у DAGI Mesh,
|
||||
* економічних операцій,
|
||||
* відновлення доступу.
|
||||
|
||||
---
|
||||
|
||||
# 2. Структура DAIS-ідентичності
|
||||
|
||||
```
|
||||
DAIS Identity
|
||||
├─ Email identities (1..N)
|
||||
├─ Wallet identities (1..N)
|
||||
│ ├─ EVM (Polygon)
|
||||
│ ├─ TON (future)
|
||||
│ └─ Hardware wallet (future)
|
||||
├─ DID (decentralized identifier)
|
||||
├─ Matrix handle
|
||||
├─ Public keys
|
||||
├─ Signature domains
|
||||
├─ Recovery methods
|
||||
└─ Metadata
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 3. Компоненти DAIS
|
||||
|
||||
## 3.1. Email identities
|
||||
|
||||
* Passwordless (OTP / Magic Link).
|
||||
* Можна прив’язати кілька email.
|
||||
* Використовується як low-security login.
|
||||
|
||||
## 3.2. Wallet identities
|
||||
|
||||
* Підтримка EVM wallets (MetaMask, Rabby, WalletConnect).
|
||||
* SIWE як стандарт підпису.
|
||||
* Wallet є high-security login.
|
||||
|
||||
## 3.3. DID
|
||||
|
||||
* формат: `did:daariion:<uuid>`
|
||||
* використовується для підписання подій, міжнодових операцій, Matrix.
|
||||
|
||||
## 3.4. Matrix handle
|
||||
|
||||
* `@<agent_id>:matrix.daarion.city`
|
||||
* для міжагентного чату, голосових каналів, presence.
|
||||
|
||||
## 3.5. Public Keys
|
||||
|
||||
| Тип ключа | Призначення |
|
||||
|-----------|--------------------------|
|
||||
| Ed25519 | підпис подій, автентифікація |
|
||||
| X25519 | шифрування / E2EE |
|
||||
| secp256k1 | wallet-сумісність |
|
||||
|
||||
## 3.6. Signature domains
|
||||
|
||||
* `dais.login`
|
||||
* `dais.node-auth`
|
||||
* `dais.microdao-action`
|
||||
* `dais.agent-auth`
|
||||
* `dais.recovery`
|
||||
|
||||
## 3.7. Metadata
|
||||
|
||||
```json
|
||||
{
|
||||
"avatar": "...",
|
||||
"telegram_linked": false,
|
||||
"created_at": "...",
|
||||
"citizenship_level": "basic"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 4. Рівні довіри DAIS (Trust Levels)
|
||||
|
||||
| Рівень | Назва | Вимоги | Права |
|
||||
|--------|---------------------|----------------------------------------|---------------------|
|
||||
| 0 | Guest | email only | базові функції |
|
||||
| 1 | Agent | підтверджений email | створення агента |
|
||||
| 2 | Verified Agent | email + wallet | доступ до AI/DAO |
|
||||
| 3 | Orchestrator | SIWE + токени/ролі | створення MicroDAO |
|
||||
| 4 | DAARION Operator | hardware keys (future) | city governance |
|
||||
|
||||
---
|
||||
|
||||
# 5. Зберігання (схема)
|
||||
|
||||
```sql
|
||||
dais_identities (
|
||||
id text primary key,
|
||||
default_email text null,
|
||||
default_wallet text null,
|
||||
did text not null,
|
||||
trust_level integer not null default 1,
|
||||
metadata jsonb not null default '{}'::jsonb,
|
||||
created_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
dais_emails (
|
||||
id uuid primary key,
|
||||
dais_id text not null references dais_identities(id),
|
||||
email text not null,
|
||||
verified boolean not null default false
|
||||
);
|
||||
|
||||
dais_wallets (
|
||||
id uuid primary key,
|
||||
dais_id text not null references dais_identities(id),
|
||||
wallet_address text not null,
|
||||
network text not null default 'evm',
|
||||
verified boolean not null default false
|
||||
);
|
||||
|
||||
dais_keys (
|
||||
dais_id text not null references dais_identities(id),
|
||||
key_type text not null,
|
||||
public_key text not null
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 6. Взаємозв’язок DAIS → Agent → MicroDAO → Node
|
||||
|
||||
```
|
||||
DAIS identity
|
||||
↓ (автоматично)
|
||||
Agent (home_microdao = DAARION)
|
||||
↓ (через promotion)
|
||||
MicroDAO (створюється оркестратором)
|
||||
↓
|
||||
Node (реєструється MicroDAO)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 7. Рівні доступу
|
||||
|
||||
## 7.1. Application (UI)
|
||||
|
||||
* Email OTP / Magic link / SIWE.
|
||||
* Доступ до кабінету агента, MicroDAO, сервісів.
|
||||
|
||||
## 7.2. Services (Gateway/API)
|
||||
|
||||
* Авторизація через DID, public keys, короткоживучі токени.
|
||||
|
||||
## 7.3. Node Access
|
||||
|
||||
* Нода перевіряє DAIS-ключ (`dais.node-auth`).
|
||||
|
||||
---
|
||||
|
||||
# 8. Ротація ключів
|
||||
|
||||
* **Soft rotation:** заміна email, прив’язка нового wallet, оновлення Matrix handle.
|
||||
* **Hard rotation:** новий DID, нові ключі Ed25519/X25519 (потрібен підпис wallet).
|
||||
|
||||
---
|
||||
|
||||
# 9. Recovery
|
||||
|
||||
* Recovery email (secondary addresses).
|
||||
* Seed phrase wallet recovery.
|
||||
* Social recovery (future) — 2-3 поручителі (агенти, MicroDAO core team, DAARION108).
|
||||
|
||||
---
|
||||
|
||||
# 10. DAIS та безпека DAGI Mesh
|
||||
|
||||
DAIS використовується для:
|
||||
|
||||
* підписання міжагентних повідомлень;
|
||||
* валідації подій у DAGI Router;
|
||||
* E2EE у Matrix;
|
||||
* авторизації worker-нод;
|
||||
* запуску міжнодових контейнерів.
|
||||
|
||||
Без DAIS неможливо створити агента, MicroDAO, ноду чи увійти в District.
|
||||
|
||||
---
|
||||
|
||||
# 11. Майбутні розширення
|
||||
|
||||
* Інтеграція TON;
|
||||
* DID-compatible wallet auth;
|
||||
* hardware keys;
|
||||
* локальна біометрія (без передачі).
|
||||
|
||||
---
|
||||
|
||||
# 12. Підсумок
|
||||
|
||||
DAIS — це цифрове тіло кожного агента.
|
||||
Воно забезпечує універсальний login, права доступу, підписи, recovery.
|
||||
Документ задає базу для майбутнього IAM і не потребує змін у чинній логіці.
|
||||
|
||||
Reference in New Issue
Block a user