4.7 KiB
NDC Module Studio
Текущий living catalog эволюционирует в Module Studio без создания второго визуального приложения. Существующие разделы остаются Visual Library; рядом живут Page Library и Applications. Первый вертикальный срез не подключает Engine, Cesium, Authentik, Hub или Deploy.
Page Template contract v0.1
Канонические TypeScript-контракты и manifests находятся в @nodedc/page-patterns, машинно-читаемый реестр — в registry/pages.json.
Первый шаблон Map Page 0.1.0 формально фиксирует:
- template identity и pinned version;
- стартовую страницу и navigation defaults;
- разрешённые feature flags
Inspector,Toolbar,Assistant; - runtime-neutral slots
points,traces,routes,zones,selection,commands,assistant; - template-owned actions.
Шаблон не содержит Cesium token, Engine workflow, React component tree или свободные координаты элементов. Renderer/Cesium adapter и Capability Bindings являются отдельными следующими слоями.
Application Manifest v0.1
Каноническая JSON Schema: registry/schemas/application-manifest-v0.1.schema.json.
Manifest фиксирует:
- identity, slug, draft status и версию;
- ссылку на Design Profile и Dark/Light;
- хотя бы одну страницу и pinned page-template version;
- navigation visibility;
- только заранее разрешённые feature flags;
- favicon source;
- server-controlled timestamps.
Manifest не хранит runtime credentials, capability bindings, arbitrary component tree, свободные координаты элементов или deployment secrets.
Draft lifecycle
Catalog server предоставляет минимальный временный API:
GET /api/applications— список drafts;GET /api/page-templates— получить канонический page registry;POST /api/applications— создать draft из явно выбранныхtemplateIdиtemplateVersion;GET /api/applications/:id— открыть draft;PUT /api/applications/:id— атомарно сохранить draft.
Файлы находятся в runtime-data/applications и исключены из Git. Этот store доказывает lifecycle create → save → reload → open; целевой production store позже принадлежит Platform application-core.
Согласованный UX Application Projects
- круглая кнопка
+в заголовке Applications открывает модалку создания модуля; - текущий модуль выбирается через Hub-style searchable selector, а не через плоский список проектов;
- root модуля содержит metadata, ссылку на один pinned Design Profile и Application Composition;
- Dark/Light, favicon, Glass и прочие визуальные параметры не настраиваются внутри модуля;
- две равные колонки
Доступные страницы / Конфигурация приложенияработают только с готовыми Page Templates; - drag-and-drop меняет состав и порядок ссылок на шаблоны, но не создаёт свободный canvas;
- после сохранения страницы появляются в левой навигации и открывают визуальный preview;
- режимы
Настройка / Предпросмотрразделяют Studio controls и поведение будущего приложения; - удаление draft выполняется только через destructive confirmation modal.
Design Profile lifecycle
Visual Library использует отдельный Hub-style selector профилей. Общая кнопка Save открывает каноническую модалку Сохранить / Сохранить как новый. Приложение хранит только pinned profile id + version + theme; media, favicon и material settings принадлежат Design Profile.
Временный catalog server предоставляет:
GET /api/design-profiles;GET /api/design-profiles/:id;POST /api/design-profiles;PUT /api/design-profiles/:id;DELETE /api/applications/:idс переносом draft в локальное deleted-storage.