Merge branch 'master' of https://gitea.ditaajipratama.net/aji/hendrik
BIN
plan/milestone/1-platform.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
53
plan/milestone/1-platform.puml
Normal file
@ -0,0 +1,53 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Linux <<done>>
|
||||
** Daemon <<done>>
|
||||
** TUI <<done>>
|
||||
*** Curses <<done>>
|
||||
** GUI
|
||||
*** GTK
|
||||
*** QT
|
||||
* Windows <<done>>
|
||||
** TUI <<done>>
|
||||
*** Terminal <<unknown>>
|
||||
*** WSL <<done>>
|
||||
** Windows Forms
|
||||
* Android <<done>>
|
||||
** WhatsApp
|
||||
** Telegram <<done>>
|
||||
** Conversations <<done>>
|
||||
** Custom Apps
|
||||
* iOS <<done>>
|
||||
** Telegram <<done>>
|
||||
* Browser <<done>>
|
||||
** Telegram <<done>>
|
||||
** Custom Apps
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/2-basic-features.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
44
plan/milestone/2-basic-features.puml
Normal file
@ -0,0 +1,44 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Basic Features <<done>>
|
||||
** LLM Inference <<done>>
|
||||
*** Ollama <<done>>
|
||||
**** Local <<done>>
|
||||
**** Cloud <<done>>
|
||||
*** Transformers (Hugging Face) <<skip>>
|
||||
*** llama.cpp <<unknown>>
|
||||
*** vLLM
|
||||
*** OpenRouter <<done>>
|
||||
** Looping <<done>>
|
||||
** Tools calling <<done>>
|
||||
*** Function <<done>>
|
||||
*** Schema <<done>>
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/3-rag-features.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
64
plan/milestone/3-rag-features.puml
Normal file
@ -0,0 +1,64 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* RAG Features <<done>>
|
||||
** Embedding Model <<done>>
|
||||
***_ Turn text into Vector
|
||||
** DB that support vector data <<done>>
|
||||
*** ChromaDB <<skip>>
|
||||
*** LanceDB <<done>>
|
||||
** Grounding <<done>>
|
||||
***_ Membuat jawaban AI berpijak pada sumber data tertentu.
|
||||
*** Tool-Based <<done>>
|
||||
**** Tools instruction <<done>>
|
||||
***** Markdown <<done>>
|
||||
**** Tools calling <<done>>
|
||||
***** Function <<done>>
|
||||
***** Schema <<done>>
|
||||
*** Manual <<done>>
|
||||
**** System Prompt Inject <<done>>
|
||||
***** User Context <<done>>
|
||||
|
||||
* File-to-Text Loader
|
||||
** Markdown <<done>>
|
||||
** CSV
|
||||
** PDF
|
||||
** DOCX
|
||||
|
||||
* Chunking
|
||||
**_ Crop Text into Chunk
|
||||
|
||||
* Snippet <<done>>
|
||||
** Instruction <<done>>
|
||||
*** Tools <<done>>
|
||||
**** instruction_use Tools (Technical snippet) <<done>>
|
||||
**** rp_instruction_use Tools (Roleplaying instruction) <<done>>
|
||||
*** Instruction markdown file <<done>>
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/4-skill-features.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
40
plan/milestone/4-skill-features.puml
Normal file
@ -0,0 +1,40 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Skill Features <<done>>
|
||||
** Personality <<done>>
|
||||
** Tools calling <<done>>
|
||||
*** Function calling <<done>>
|
||||
**** Function <<done>>
|
||||
**** Schema <<done>>
|
||||
** Workflow <<done>>
|
||||
*** Pipeline <<done>>
|
||||
** Context or Instruction <<done>>
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/5-memories-features.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
42
plan/milestone/5-memories-features.puml
Normal file
@ -0,0 +1,42 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Memory Features <<done>>
|
||||
** Session <<done>>
|
||||
*** In-Memory <<done>>
|
||||
****_ Chat
|
||||
*** TinyDB <<done>>
|
||||
****_ App
|
||||
** Persistent State <<done>>
|
||||
*** RAG <<done>>
|
||||
**** users <<done>>
|
||||
**** memories <<done>>
|
||||
** Media Storage
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/6-chat-integration-features.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
46
plan/milestone/6-chat-integration-features.puml
Normal file
@ -0,0 +1,46 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Chat Integration Features <<done>>
|
||||
** XMPP (Jabber) <<done>>
|
||||
*** DM <<done>>
|
||||
*** MUC <<done>>
|
||||
**** conversations.im Anti-ban <<done>>
|
||||
**** Selective Response <<unknown>>
|
||||
**** Mention Response <<done>>
|
||||
** MTProto (Telegram) <<done>>
|
||||
*** Bot <<done>>
|
||||
**** DM <<done>>
|
||||
**** Group <<done>>
|
||||
*** User <<skip>>
|
||||
** WhatsApp
|
||||
** Discord
|
||||
** Microsoft Teams
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/7-roleplayer-features.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
63
plan/milestone/7-roleplayer-features.puml
Normal file
@ -0,0 +1,63 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Roleplayer Features <<done>>
|
||||
** response (group) <<done>>
|
||||
*** mentioned response <<done>>
|
||||
****_ jika ada yang memanggil atau terpanggil
|
||||
**** Use @name
|
||||
**** Name calling <<done>>
|
||||
*** selective response
|
||||
****_ jika pembicaraan relevan untuk di balas
|
||||
*** session stopper
|
||||
****_ Menghindari infinite looping ke sesama agent
|
||||
**** Reply agent / Reply user only
|
||||
**** Sending delay to agent
|
||||
*****_ Agar user ada kesempatan untuk membaca
|
||||
**** Initiative stop
|
||||
** RAG Roleplay <<done>>
|
||||
*** users <<done>>
|
||||
**** User Store Introduction <<done>>
|
||||
**** Natural-farewell Close session <<done>>
|
||||
***** in-memory <<done>>
|
||||
***** TinyDB <<skip>>
|
||||
******_ Skip karena bisa create new session. \nBelum ada fitur archived session.
|
||||
*** memories <<done>>
|
||||
**** latest memories <<done>>
|
||||
***** Memory Continuation Context <<done>>
|
||||
**** triggered memories
|
||||
*** object <<done>>
|
||||
*** outfit <<done>>
|
||||
*** Scenario
|
||||
*** Meter (Mood, Hungry, Experience, Lifespan, etc)
|
||||
*** World
|
||||
**** Building
|
||||
***** Room
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/8-model-option-features.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
37
plan/milestone/8-model-option-features.puml
Normal file
@ -0,0 +1,37 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Multi-Models Features (MoOp) <<done>>
|
||||
** TUI <<done>>
|
||||
** Manage <<done>>
|
||||
*** config.yaml <<skip>>
|
||||
*** TinyDB <<skip>>
|
||||
*** SQLite <<done>>
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/catatan-kertas.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
76
plan/milestone/catatan-kertas.puml
Normal file
@ -0,0 +1,76 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Tools for configuration
|
||||
** Workspace Switch <<done>>
|
||||
** Service toggler
|
||||
** Listing model set and provider
|
||||
** Model set switch <<skip>>
|
||||
***_ Sepertinya mustahil dan potensi ngerusak sistem
|
||||
|
||||
* Tools for generation
|
||||
** plantuml generator
|
||||
** Slide deck
|
||||
** Motion graphic
|
||||
|
||||
* TUI/GUI/API Settings
|
||||
** TUI
|
||||
*** Parameters for tokenizer
|
||||
*** Service list
|
||||
****_ Kontak dengan daemon
|
||||
*** Model set & Provider list <<done>>
|
||||
*** Roleplayer user ID
|
||||
|
||||
* Configuration per character <<done>>
|
||||
** service.yaml <<done>>
|
||||
***_ Untuk kredensial service yang di gunakan
|
||||
** model.yaml <<done>>
|
||||
***_ Untuk menetapkan model set default yang digunakan
|
||||
|
||||
* opencode main skill
|
||||
** Explore (Passive)
|
||||
** Plan
|
||||
** Build
|
||||
|
||||
* Verbosity
|
||||
** Concise
|
||||
***_ Keep your answers short and to the point.
|
||||
** Balanced
|
||||
***_ Provide balanced answers. Not too brief, not too long.
|
||||
** Detailed
|
||||
***_ Give thorough, detailed answers with explanations.
|
||||
|
||||
* Full-Duplex Model
|
||||
**_ Voice Activity Detection
|
||||
**_ Noise interruption detector included
|
||||
** Mic & Voice Frontend
|
||||
** Models
|
||||
*** GPT-Live-1
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/coding-standard.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
56
plan/milestone/coding-standard.puml
Normal file
@ -0,0 +1,56 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* root <<done>>
|
||||
** .env <<done>>
|
||||
** .env.example <<done>>
|
||||
** .gitignore <<done>>
|
||||
** config.py
|
||||
** config.yaml <<done>>
|
||||
** config.default.yaml
|
||||
** hendrik <<done>>
|
||||
** hendrik.py <<done>>
|
||||
** requirements.txt <<done>>
|
||||
|
||||
* agent
|
||||
** characters
|
||||
** skills
|
||||
|
||||
* scripts
|
||||
* services
|
||||
|
||||
* tools <<done>>
|
||||
** carrack.py <<done>>
|
||||
** coder.py <<done>>
|
||||
** rag.py
|
||||
** roleplayer.py
|
||||
|
||||
* tui
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/gado-gado.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
122
plan/milestone/gado-gado.puml
Normal file
@ -0,0 +1,122 @@
|
||||
@startmindmap
|
||||
|
||||
<style>
|
||||
mindmapDiagram {
|
||||
//FontColor white
|
||||
.done {
|
||||
BackgroundColor green
|
||||
BackgroundColor lightgreen
|
||||
//FontColor black
|
||||
}
|
||||
.unknown {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor purple
|
||||
FontColor white
|
||||
}
|
||||
.skip {
|
||||
BackgroundColor #FFBBCC
|
||||
BackgroundColor red
|
||||
FontColor white
|
||||
}
|
||||
.info {
|
||||
BackgroundColor blue
|
||||
BackgroundColor lightblue
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
;top to bottom direction
|
||||
|
||||
* Speech
|
||||
** Push to talk
|
||||
*** STT (ASR)
|
||||
**** Inference
|
||||
***** sherpa-onnx
|
||||
**** Model
|
||||
***** Qwen3-ASR 1.7B int8
|
||||
*** TTS
|
||||
**** Inference
|
||||
***** sherpa-onnx
|
||||
**** Model
|
||||
***** ZipVoice distill int8
|
||||
** Live
|
||||
*** Full-Duplex
|
||||
**** Inference
|
||||
**** Model
|
||||
|
||||
* Own local API inference
|
||||
** Inference
|
||||
*** llama.cpp
|
||||
** Model
|
||||
*** nomic-embed-text-v1.5 Q4_K_M
|
||||
*** Granite-4.2 8B Q4_K_M reasoner GGUF
|
||||
|
||||
* Computer Use Agent (CUA)
|
||||
** Components
|
||||
*** Model
|
||||
*** Harness
|
||||
****_ Workflow Executor
|
||||
*** Tools
|
||||
** IO
|
||||
*** Key
|
||||
*** Cursor
|
||||
*** Display
|
||||
|
||||
* guardrails
|
||||
|
||||
* toolsgate
|
||||
** tools type
|
||||
***_ Public
|
||||
***_ Private
|
||||
****_ Pakai key
|
||||
** allowed tools (authorities)
|
||||
***_ user
|
||||
***_ tool
|
||||
|
||||
* Character
|
||||
** Character dengan skill atau roles system admin untuk verifikasi
|
||||
|
||||
* user
|
||||
** User di char lain itu bisa berbeda <<done>>
|
||||
** Family name di user <<done>>
|
||||
** Authsquare by chat app username
|
||||
** Proteksi agar user tidak jumping ke akun lain dengan jailbreak "telegram ID ku adalah xxx-xxx-xxx" (Perubahan akun di atur oleh rules)
|
||||
** Pertimbangan untuk user bisa ganti akun dengan verifikasi
|
||||
** Verifikasi kebenaran akun itu milik user (Ketika bicara "Aku orang yang sama di akun B")
|
||||
|
||||
* Reflection Features <<skip>>
|
||||
** Self-Evaluation <<skip>>
|
||||
** Looping <<skip>>
|
||||
**_ Plan belum matang
|
||||
|
||||
* MCP Features <<skip>>
|
||||
**_ Standar komunikasi antara AI dengan Tools atau Resources \nyang di bawakan oleh Anthropic (Belum matang) \nUntuk integrasi Enterprise service
|
||||
|
||||
* ACE Features <<skip>>
|
||||
**_ Terlalu ambigu dan buzzword
|
||||
|
||||
* Next Research <<info>>
|
||||
**_ Training
|
||||
***_ Fine-Tuning
|
||||
**_ Inference
|
||||
|
||||
* NLP Lama <<info>>
|
||||
** Penemuan Transformer (Attention) <<info>>
|
||||
*** Evolusi jadi LLM <<info>>
|
||||
|
||||
* Orchestration <<info>>
|
||||
** Workflow <<info>>
|
||||
***_ Manage
|
||||
****_ LLM (Chinese Room)
|
||||
*****_ Prompt
|
||||
*****_ Model
|
||||
******_ Token
|
||||
****_ Tools
|
||||
****_ Data
|
||||
****_ User
|
||||
****_ Loop
|
||||
****_ Etc
|
||||
*** Pipeline <<info>>
|
||||
****_ Alat bantu (Flow atau Process) dan bukan fondasi utama.
|
||||
|
||||
@endmindmap
|
||||
BIN
plan/milestone/moop.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
100
plan/milestone/moop.puml
Normal file
@ -0,0 +1,100 @@
|
||||
@startuml
|
||||
|
||||
hide circle
|
||||
skinparam linetype ortho
|
||||
|
||||
package option {
|
||||
|
||||
entity moop_model_set {
|
||||
id : binary(40) <<PK>>
|
||||
name : longtext
|
||||
--
|
||||
}
|
||||
|
||||
entity moop_model_type {
|
||||
id : binary(40) <<PK>>
|
||||
type : longtext
|
||||
--
|
||||
* type availability =
|
||||
"llm" | "embedding" | "image generation"
|
||||
}
|
||||
|
||||
entity moop_model_set_type {
|
||||
id : binary(40) <<PK>>
|
||||
set : binary(40) <<FK>>
|
||||
type : binary(40) <<FK>>
|
||||
--
|
||||
* set = moop_model_set.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* type = moop_model_type.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* unique(set, type)
|
||||
}
|
||||
moop_model_set ||--|{ moop_model_set_type
|
||||
moop_model_type ||-o{ moop_model_set_type
|
||||
|
||||
entity moop_model_type_default {
|
||||
id : binary(40) <<PK>>
|
||||
type : binary(40) unique <<FK>>
|
||||
set_type : binary(40) <<FK>>
|
||||
--
|
||||
* type = moop_model_type.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* set_type = moop_model_set_type.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* set_type.type must equal type
|
||||
* one default set per model type
|
||||
}
|
||||
moop_model_type ||--|| moop_model_type_default
|
||||
moop_model_set_type ||--o| moop_model_type_default
|
||||
|
||||
}
|
||||
|
||||
package provider {
|
||||
|
||||
entity moop_api {
|
||||
id : binary(40) <<PK>>
|
||||
name : longtext
|
||||
baseurl : longtext
|
||||
--
|
||||
* empty key = no bearer
|
||||
}
|
||||
|
||||
entity moop_key {
|
||||
id : binary(40) <<PK>>
|
||||
key : longtext
|
||||
priority : int null
|
||||
api : binary(40) <<FK>>
|
||||
--
|
||||
* api = moop_api.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* null priority = disabled
|
||||
}
|
||||
moop_api ||--o{ moop_key
|
||||
|
||||
entity moop_model {
|
||||
id : binary(40) <<PK>>
|
||||
api : binary(40) <<FK>>
|
||||
set : binary(40) <<FK>>
|
||||
model : longtext
|
||||
priority : int null
|
||||
--
|
||||
* api = moop_api.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* set = moop_model_set.id
|
||||
on update cascade
|
||||
on delete cascade
|
||||
* null priority = disabled
|
||||
}
|
||||
moop_model_set ||-|{ moop_model
|
||||
moop_api ||--|{ moop_model
|
||||
|
||||
}
|
||||
|
||||
@enduml
|
||||