Frontend App for the Template Editor Backend, creating FHIR Packages for the Terminology Server
103
A Vue 3 + TypeScript + Vite frontend for managing FHIR package versions, branch/workspace-based template editing, and related metadata and changelogs.
This project enables:
<script setup> componentsapi() function
(src/api/http.ts)markeduseTemplatesManagement composable)vue-tsc, SonarQube Scanner@sonar/scanSee ReleaseNotes.md for all information regarding the (newest) releases.
This open source project was developed in cooperation with the German Federal Institute for Drugs and Medical Devices (BfArM) on the basis of Section 355 (12-14) of the German Social Code Book V (SGB V). As part of the projects implementation, the fbeta GmbH and Fraunhofer FOKUS were commissioned to provide software development services.
We would like to thank all parties involved for their constructive and trusted collaboration.
npm install
npm run dev
By default, Vite runs at http://localhost:5173 (port may vary). Hot
Module Reloading is enabled.
| Script | Purpose |
|---|---|
npm run dev | Start development server |
npm run build | Create production build (outputs to dist/) |
npm run preview | Local preview of production build |
npm exec vue-tsc --noEmit | Type check without building |
src/
api/ # API access (http, projects, workspaces)
auth/ # oauth2-proxy redirect/auth state helpers
assets/ # CSS & Images
components/ # UI & form components
composables/ # Reusable state/logic
pages/ # Router pages
router/ # Vue Router configuration
services/ # Service abstractions
theme/ # Naive UI theme overrides
utils/ # Helper functions
validation/ # Validation rules
At runtime, the app reads window.__APP_CONFIG__.
npm run dev), src/config.ts falls back to Vite
env files such as .env and .env.local when values are not present in
window.__APP_CONFIG__.config.js is generated by docker-entrypoint.sh
from environment variables and loaded before the app.You can use the provided .env.example as a template and create a local
.env.local file for your desired runtime values.
| Variable | Purpose | Default |
|---|---|---|
VITE_ZTS_URL | Base URL used for footer links (Impressum, Datenschutz, Kontakt, Barrierefreiheit) | https://terminologien.bfarm.de |
Behavior of API base resolution (src/api/http.ts):
location.origin).Authentication is handled by oauth2-proxy. The frontend does not store access tokens, does not refresh tokens, and does not set an Authorization header. Login redirects to /oauth2/start?rd=...; logout redirects to /oauth2/sign_out?rd=.... API requests use credentials: "include" so the oauth2-proxy session cookie is sent to the proxy.
Example (Local Docker Deployment):
npm run build
docker build -t template-editor-frontend .
docker run --rm -p 8080:8080 \
-e VITE_ZTS_URL=https://terminologien.bfarm.de \
template-editor-frontend
Example (Local Development):
cp .env.example .env.local
# Edit .env.local with desired values
npm run dev
/projects/:projectId/:packageName/versions/new
(mode create)/projects/:projectId/:packageName/versions/:version/:workspace?
(mode edit)createMergeRequest on commit
(commitWorkspace call)Unit tests with Vitest and Vue Test Utils are configured. Run tests with:
npm run test
This runs all tests with coverage reporting. Output is available in coverage/lcov.info
Configuration: sonar-project.properties. Scan with:
npm run sonar-scanner
Key entries in sonar-project.properties:
sonar.sources=srcsonar.coverage.exclusions=**/*.test.ts
Output is located in `dist/`. These files are static and can be served
via any web server (Nginx, Apache, GitHub Pages, Azure Static Web Apps,
Netlify, etc.).
### Static Serving Locally
``` bash
npm run build
| Variable | Default Value | Required | Description |
|---|---|---|---|
VITE_ZTS_URL | https://terminologien.bfarm.de | No | Base URL of the ZTS (Zentraler Terminologie Server). Used to reference the ZTS imprint, privacy policy, contact information, and availability. |
docker run --rm -p 8080:8080 \
-e VITE_ZTS_URL="https://terminologien.bfarm.de" \
template-editor-frontend
If no variable is set, the default value is used.
Build & Run:
docker build -t template-editor-frontend .
If you want to contribute, please check our CONTRIBUTING.md.
Copyright 2026 gematik GmbH
Apache License, Version 2.0
See the LICENSE for the specific language governing permissions and limitations under the License
We take open source license compliance very seriously. We are always striving to achieve compliance at all times and to improve our processes. This software is currently being tested to ensure its technical quality and legal compliance. Your feedback is highly valued. If you find any issues or have any suggestions or comments, or if you see any other ways in which we can improve, please reach out to: [email protected].
Content type
Image
Digest
sha256:436eca471…
Size
6.1 MB
Last updated
5 days ago
docker pull gematik1/template-editor-frontend