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:
Apple
2025-11-29 15:24:38 -08:00
parent deeaf26b0b
commit 7b91c8e83c
43 changed files with 5733 additions and 47 deletions

View 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 і не потребує змін у чинній логіці.