No description
  • TypeScript 64.7%
  • Vue 30.9%
  • Shell 3.9%
  • JavaScript 0.2%
  • CSS 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nikolay Groznykh 6143485dc6 Release v0.26.2.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 11:02:15 +03:00
.cursor Add ArchiMate and/or junction icons to the picker. 2026-08-14 18:02:34 +03:00
.githooks feat(infra): phase 2 infrastructure for local and Helm deploy 2026-06-09 14:47:44 +03:00
.github/workflows ci: make workflow GitVerse-compatible 2026-09-24 12:53:52 +03:00
.vscode Init 2026-02-09 11:47:07 +03:00
charts/warchi Release v0.26.2. 2026-10-14 11:02:15 +03:00
config Stabilize large model editor loading. 2026-08-21 08:37:26 +03:00
docs refactor: land structure-reuse stack (waves 1–3 + G1–G4) on master (#12) 2026-09-01 12:19:21 +03:00
infra Release v0.26.2. 2026-10-14 11:02:15 +03:00
public Add ArchiMate and/or junction icons to the picker. 2026-08-14 18:02:34 +03:00
scripts ci: add GitHub Actions workflow running npm run ci:local (#11) 2026-09-01 12:02:27 +03:00
src Release v0.26.0. 2026-10-13 16:45:46 +03:00
tests Restore nested group undo and clear the save indicator. 2026-08-23 00:22:57 +03:00
.dockerignore Implement frontend adaptation for ACL-based sharing with VIEW/EDIT access and improved collaborative editing UX. 2026-02-23 02:15:32 +03:00
.env.example feat: large OEF import via server normalize and chunked batch-save 2026-07-20 22:28:40 +03:00
.env.production Update environment variables, remove unused font links, and add Material Symbols font. 2026-02-18 16:43:42 +03:00
.gitignore Polish the home dashboard layout and quick actions. 2026-08-14 16:59:30 +03:00
.gitlab-ci.yml feat(infra): phase 2 infrastructure for local and Helm deploy 2026-06-09 14:47:44 +03:00
.nvmrc Update Node.js version in build workflow and modify LandingView component 2026-03-15 23:52:57 +03:00
.prettierrc Add HTML sanitization to DocsContent component and update .gitignore 2026-02-19 20:46:41 +03:00
AGENTS.md Fix HTTP clipboard copy and restore the script API help panel. 2026-10-13 16:34:15 +03:00
CHANGELOG.md Release v0.26.2. 2026-10-14 11:02:15 +03:00
CHANGELOG.ru.md Release v0.26.2. 2026-10-14 11:02:15 +03:00
CLAUDE.md fix(security): harden frontend session and markdown handling 2026-07-07 16:52:40 +03:00
CODE_OF_CONDUCT.md Prepare open-source docs and blue/green deployment workflow. 2026-02-23 13:14:21 +03:00
CODE_OF_CONDUCT.ru.md Prepare open-source docs and blue/green deployment workflow. 2026-02-23 13:14:21 +03:00
compose.local.yml fix: stop requiring local papirus for Compose quick-start 2026-07-16 21:12:41 +03:00
CONTRIBUTING.md Move deployment shell scripts into scripts/ and document them. 2026-06-02 23:15:29 +03:00
CONTRIBUTING.ru.md Move deployment shell scripts into scripts/ and document them. 2026-06-02 23:15:29 +03:00
Dockerfile Restore nested group undo and clear the save indicator. 2026-08-23 00:22:57 +03:00
eslint.config.js fix(ci): restore ESLint project coverage for unit tests. 2026-09-21 11:10:59 +03:00
index.html Update environment variables, remove unused font links, and add Material Symbols font. 2026-02-18 16:43:42 +03:00
LICENSE Switch license to MIT 2026-09-24 12:26:53 +03:00
LICENSE.ru.md Switch license to MIT 2026-09-24 12:26:53 +03:00
package-lock.json Release v0.26.2. 2026-10-14 11:02:15 +03:00
package.json Release v0.26.2. 2026-10-14 11:02:15 +03:00
playwright.config.ts refactor: update E2E testing scripts and configurations 2026-03-31 15:43:34 +03:00
README.md Fix HTTP clipboard copy and restore the script API help panel. 2026-10-13 16:34:15 +03:00
README.ru.md Fix HTTP clipboard copy and restore the script API help panel. 2026-10-13 16:34:15 +03:00
SECURITY.md feat: redesign profile layout and improve API keys UX 2026-08-04 17:14:39 +03:00
SECURITY.ru.md feat: redesign profile layout and improve API keys UX 2026-08-04 17:14:39 +03:00
tsconfig.app.json Release v0.25.20. 2026-09-21 10:51:04 +03:00
tsconfig.json Init 2026-02-09 11:47:07 +03:00
tsconfig.node.json Init 2026-02-09 11:47:07 +03:00
tsconfig.vitest.json fix(ci): restore ESLint project coverage for unit tests. 2026-09-21 11:10:59 +03:00
vite-plugin-version.ts feat(infra): phase 2 infrastructure for local and Helm deploy 2026-06-09 14:47:44 +03:00
vite.config.ts feat: add shareable model validation scripts with sandboxed JS run. 2026-07-29 16:34:57 +03:00
warchi.code-workspace chore: add warchi-mcp to multi-root workspace 2026-08-06 11:19:22 +03:00

wArchi

Frontend SPA for architectural modeling workflows: managing models, notations, visual styles, and versioned entities.

Русская версия: README.ru.md

Features

  • Notation editor on top of Papirus canvas (selection, transforms, auto-layout)
  • JSON import/export for notation data
  • Component and relation style customization
  • Custom node shapes with dedicated outline editor
  • Tags, custom attributes, and relation rules editor
  • Versioned models and notations
  • Built-in documentation section (/docs) with guides, hotkeys, FAQ, and changelog
  • Wiki section (/wiki) for entity-linked documentation pages
  • Roles and feature grants: temporary admin role switch, hide node types in the model tree, duplicate report and merge
  • Blue/green deployment support via Helm and deploy.sh

Tech Stack

  • Vue 3 (<script setup>, Composition API)
  • TypeScript (strict mode)
  • Vite
  • Vue Router 5
  • Vitest

Requirements

  • Node.js >=20.19.0 <21 || >=22.12.0 (enforced by engines and the prebuild check)
  • npm 9+
  • Papirus NPM package (@ngroznykh/papirus)

Quick Start

npm install
cp .env.example .env.local
npm run dev

App runs on http://localhost:5173 and proxies /api/* to backend.

NPM Scripts

Command Description
npm run dev Start dev server
npm run lint Run ESLint
npm run lint:fix Auto-fix lint issues
npm run build Type-check and production build
npm run preview Preview built app
npm run test Run unit tests
npm run test:watch Run unit tests in watch mode
npm run ci:local Full quality gate (versions, lint, type-check, tests, build); same as GitHub Actions CI

Deployment (deploy.sh)

./scripts/deploy.sh supports two modes:

  • Legacy: recreates release
  • Blue/Green: deploys inactive color, verifies readiness, optionally switches traffic

Main environment flags:

Variable Default Purpose
NAMESPACE arch Kubernetes namespace
RELEASE_NAME warchi Helm release name
CHART_PATH charts/warchi Helm chart path
VALUES_FILE charts/warchi/values.yaml Values file
BUILD_IMAGE true Build Docker image before deploy
WAIT_TIMEOUT 180 Readiness timeout in seconds
INGRESS_HOST warchi.local Ingress host in output hints
IMAGE_TAG "" Image tag override
BLUE_GREEN false Enable blue/green mode
BG_SWITCH true Switch traffic after green/blue verification
SERVICE_NAME warchi Service used to detect active color

Examples:

./scripts/deploy.sh
BUILD_IMAGE=false ./scripts/deploy.sh
BLUE_GREEN=true BG_SWITCH=true IMAGE_TAG=0.0.22 ./scripts/deploy.sh
BLUE_GREEN=true BG_SWITCH=false IMAGE_TAG=0.0.22 ./scripts/deploy.sh

Environment Variables

Configured via .env.local:

Variable Default Purpose
VITE_API_PROXY_TARGET http://localhost:8080 Backend API URL
VITE_API_BASE_URL empty API base URL
VITE_API_VERSION v1 API version
VITE_MODEL_LIVE_SYNC_MODE hybrid Model live sync mode: ws, poll, or hybrid (WebSocket + polling fallback)
VITE_MODEL_LIVE_POLL_MS 15000 Polling interval (ms) used in poll mode and as fallback in hybrid

Architecture Notes

  • State management uses composables (no global store)
  • API layer is based on typed ApiResult<T> wrappers
  • Entities are versioned and grouped by name
  • Notation editor uses Papirus rendering engine

Documentation

  • In-app documentation section: /docs (overview, models, notations, diagrams, types, shapes, hotkeys, FAQ, changelog)
  • Entity wiki section: /wiki (model, notation, type, and shape linked pages)
  • Documentation content source: src/features/docs/content/*.md
  • Technical plans and implementation notes: docs/*.md

Open Source Readiness

For public release preparation, see:

  • CONTRIBUTING.md
  • SECURITY.md
  • CODE_OF_CONDUCT.md

License

This project is licensed under the MIT License.

Previously it was dual-licensed under AGPL-3.0-or-later with a commercial option; since 2026-09-24 the project is MIT.

See:

  • LICENSE
  • Licensing questions: nikolay@groznykh.ru