Initial curated RAGcore source from c16667f0c9397e2bfc8dd0255b114fba23c8d05e
This commit is contained in:
commit
7ca726caf2
659 files changed
+98171
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# Authorization Model
|
||||
|
||||
## Principals
|
||||
|
||||
- Human user via OIDC session.
|
||||
- Application service account via bearer token.
|
||||
- Internal worker identity.
|
||||
|
||||
## Rollen
|
||||
|
||||
`platform_admin`, `workspace_admin`, `space_manager`, `editor`, `viewer`, `auditor`.
|
||||
|
||||
## Application scopes
|
||||
|
||||
Voorbeelden: `search`, `context`, `answer`, `documents:read`, `citations:read`, `feedback:write`, `sources:sync`.
|
||||
|
||||
## Effective-space algorithm
|
||||
|
||||
```text
|
||||
effective = requested spaces
|
||||
∩ explicit grants for principal/application
|
||||
∩ active spaces in the same workspace
|
||||
∩ spaces compatible with operation and provider policy
|
||||
```
|
||||
|
||||
Een lege requested set betekent alleen de configured defaults van de application, nooit alle grants. Filters worden door de server samengesteld en kunnen niet via raw Qdrantfilterinput worden overschreven.
|
||||
|
||||
## Defence in depth
|
||||
|
||||
- Use-case authorization vóór repository calls.
|
||||
- Workspace-gebonden databasequeries en waar passend PostgreSQL RLS.
|
||||
- Verplichte Qdrant payloadfilters.
|
||||
- Citation/documentread voert opnieuw resourceauthorization uit.
|
||||
- Securitytests proberen IDOR, filterinjectie, inactive records en cross-space leakage.
|
||||
@@ -0,0 +1,47 @@
|
||||
# Domain Model
|
||||
|
||||
## Hoofdaggregaten
|
||||
|
||||
### Workspace
|
||||
Beveiligings- en administratieve grens. Bezit applications, knowledge spaces en policies.
|
||||
|
||||
### Application
|
||||
Project/client dat RAGCore gebruikt. Heeft service accounts, grants, quota en standaardprofielen.
|
||||
|
||||
### KnowledgeSpace
|
||||
Logische kennisgrens met databeleid, retentie, trustvereisten en toegangsgrants.
|
||||
|
||||
### Source
|
||||
Read-only oorsprong en synchronisatieconfiguratie. Voorbeelden: upload, folder, Git of website.
|
||||
|
||||
### Document
|
||||
Stabiele logische identiteit van content door versies heen.
|
||||
|
||||
### DocumentVersion
|
||||
Immutable snapshot met source fingerprint, blob, canonical artifact, status en timestamps.
|
||||
|
||||
### IndexBuild
|
||||
Afgeleide indexering van een set documentversies onder exact één embedding/indexprofiel.
|
||||
|
||||
### RetrievalRun
|
||||
Auditbare uitvoering met caller, effective spaces, profiel, kandidaten en timings.
|
||||
|
||||
### Citation
|
||||
Immutable verwijzing naar documentversion, location, excerptchecksum en source URI.
|
||||
|
||||
### Job
|
||||
Idempotente achtergrondopdracht met type, payloadversie, lease, attempts en events.
|
||||
|
||||
## Identiteiten
|
||||
|
||||
- Extern zichtbare objecten: UUIDv7.
|
||||
- Deterministische chunks/citations: UUIDv5 op immutable inputs.
|
||||
- Geen incrementele database-ID in publieke contracten.
|
||||
|
||||
## Domeinregels
|
||||
|
||||
- Exact één actieve documentversion per document.
|
||||
- Een version wordt nooit inhoudelijk aangepast.
|
||||
- Een indexbuild mengt nooit embeddingmodel/dimensie/profielversies.
|
||||
- Een inactive/deleted/quarantined version is nooit actief zoekbaar.
|
||||
- Een citation blijft naar de gebruikte version verwijzen na latere updates.
|
||||
@@ -0,0 +1,43 @@
|
||||
# State Machines
|
||||
|
||||
## Document version
|
||||
|
||||
```text
|
||||
acquired -> security_checked -> parsed -> normalized -> chunked
|
||||
-> embedded -> indexed -> validated -> published
|
||||
```
|
||||
|
||||
Terminal/alternatief:
|
||||
|
||||
- `quarantined`: securitygate faalde of vereist review;
|
||||
- `failed`: technische fout met retryclassificatie;
|
||||
- `superseded`: was gepubliceerd maar is vervangen;
|
||||
- `retired`: bron verwijderd/retentie verlopen.
|
||||
|
||||
Alle transities zijn expliciet, geaudit en idempotent. `published` vereist dat alle voorafgaande artifacts duurzaam bestaan.
|
||||
|
||||
## Job
|
||||
|
||||
```text
|
||||
pending -> ready -> leased -> running -> succeeded
|
||||
| \-> retry_wait -> ready
|
||||
\-> expired -> ready
|
||||
running -> failed_terminal
|
||||
running -> cancelled
|
||||
```
|
||||
|
||||
## Source sync
|
||||
|
||||
```text
|
||||
idle -> scheduled -> scanning -> applying -> validating -> completed
|
||||
\-> failed
|
||||
```
|
||||
|
||||
## Index build
|
||||
|
||||
```text
|
||||
created -> building -> validating -> ready -> active -> retired
|
||||
\-> failed
|
||||
```
|
||||
|
||||
Aliasactivatie mag alleen van `ready` naar `active`, met rollback naar vorige actieve build.
|
||||
Reference in new issue
Block a user