@@ -16,28 +16,27 @@ flowchart TD
1616
1717 end
1818
19+ subgraph dandi_cli_repo["<a href='https://github.com/dandi/dandi-cli'>dandi-cli</a>"]
20+ CLI["CLI & Library<br>validation logic<br/>(Python)"]
21+ end
22+
1923 subgraph dandi_archive_repo["<a href='https://github.com/dandi/dandi-archive/'>dandi-archive</a>"]
2024 Meditor["Web UI<br/>Metadata Editor<br/>(meditor; Vue)"]
2125 API["Archive API<br/>(Python; DJANGO)"]
22- SchemaEndpoint["Schema API Endpoint<br/>(JSONSchema)"]
2326 Storage[("DB (Postgresql)")]
2427 end
2528
26- subgraph dandi_cli_repo["<a href='https://github.com/dandi/dandi-cli'>dandi-cli</a>"]
27- CLI["CLI & Library<br>validation logic<br/>(Python)"]
28- end
29-
3029 %% main flow
3130 Pydantic -->|"serialize into<br/>(CI)"| JSONSchema
3231 Pydantic -->|used to validate| CLI
3332 Pydantic -->|used to validate| API
3433
35- API -->|serialize at runtime| SchemaEndpoint
36- SchemaEndpoint -->|used to produce| Meditor
37- SchemaEndpoint -->|used to validate| Meditor
38-
34+ JSONSchema -->|used to produce| Meditor
35+ JSONSchema -->|used to validate| Meditor
3936 Meditor -->|submits metadata| API
37+
4038 CLI -->|used to upload & submit metadata| API
39+
4140 API <-->|metadata JSON| Storage
4241
4342 %% styling
@@ -47,8 +46,8 @@ flowchart TD
4746 classDef data fill:#fff3e0,stroke:#e65100,stroke-width:1px;
4847 JSONSchema@{ shape: docs }
4948
50- class dandi_schema_repo,dandi_cli_repo,dandi_archive_repo repo;
51- class Pydantic,CLI,API,SchemaEndpoint code;
49+ class dandi_schema_repo,schema_repo, dandi_cli_repo,dandi_archive_repo repo;
50+ class Pydantic,CLI,API code;
5251 class JSONSchema,Storage data;
5352 class Meditor ui;
5453```
@@ -143,6 +142,11 @@ flowchart TD
143142 Pydantic[" Pydantic Models" ]
144143 end
145144
145+ subgraph schema_repo[" <a href='https://github.com/dandi/schema/'>dandi/schema</a>" ]
146+ JSONSchema[" JSONSchema<br>serializations" ]
147+
148+ end
149+
146150 subgraph dandi_archive_repo[" <a href='https://github.com/dandi/dandi-archive/'>dandi-archive</a>" ]
147151 Meditor[" Web UI<br/>Metadata Editor<br/>(meditor; Vue)" ]
148152 API [" Archive API<br/>(Python; DJANGO)" ]
@@ -155,6 +159,7 @@ flowchart TD
155159 end
156160
157161 %% main flow
162+ Pydantic -- > | " serialize into<br/>(CI)" | JSONSchema
158163 Pydantic -- > | used to validate| CLI
159164 Pydantic -- > | used to validate| API
160165
@@ -171,10 +176,11 @@ flowchart TD
171176 classDef code fill:# e1f5fe,stroke:#0277bd,stroke-width:1px;
172177 classDef ui fill:# e8f5e9,stroke:#2e7d32,stroke-width:1px;
173178 classDef data fill:# fff3e0,stroke:#e65100,stroke-width:1px;
179+ JSONSchema@ { shape: docs }
174180
175181 class dandi_schema_repo,dandi_cli_repo,dandi_archive_repo repo;
176182 class Pydantic,CLI ,API ,SchemaEndpoint code;
177- class Storage data;
183+ class JSONSchema, Storage data;
178184 class Meditor ui;
179185```
180186
0 commit comments