Releases: DSD-DBS/capella-collab-manager
v3.2.4
What's Changed
Bug fixes
- fix: Trust proxy headers to avoid https -> http redirects by @MoritzWeber0 in #1571
Full Changelog: v3.2.3...v3.2.4
v3.2.3
What's Changed
Internal changes
- build: Auto-generate frontend API client by @MoritzWeber0 in #1547
Full Changelog: v3.2.2...v3.2.3
v3.2.2
What's Changed
Bug fixes
- fix(front): Reload active session in DOM only on change or modification by @dominik003 in #1539
- chore: Improve accessibility for some buttons by @MoritzWeber0 in #1557
Under the hood
- feat: Self-host Roboto and Material Icons font by @MoritzWeber0 in #1563
- build(deps): bump capella-dockerimages from
cebef20
tod1e6e9e
by @dependabot in #1560 - test: Add Stories for file browser and trigger pipeline dialog by @MoritzWeber0 in #1562
- build(deps): bump actions/add-to-project from 1.0.0 to 1.0.1 by @dependabot in #1509
- test: Use a fixed date for session history by @MoritzWeber0 in #1540
- chore: Migrate to Angular standalone components by @dominik003 in #1534
- chore: Update frontend versions by @MoritzWeber0 in #1541
- ci: Remove version pinning of capellambse by @MoritzWeber0 in #1542
- ci: Disable some Actions for dependabot PRs by @MoritzWeber0 in #1543
- build(deps): bump capella-dockerimages from
f3cd697
toc7516a9
by @dependabot in #1544 - build: Fetch missing helm dependencies automatically by @MoritzWeber0 in #1546
- build(deps): bump capella-dockerimages from
c7516a9
tocebef20
by @dependabot in #1551 - build: Bump frontend versions by @MoritzWeber0 in #1558
- build: Reenable 'no-unused-imports' eslint rule by @MoritzWeber0 in #1559
- feat: Add diagram cache stories and combine story objects by @dominik003 in #1549
- refactor: Apply new angular control flow to diagram cache component by @dominik003 in #1550
Full Changelog: v3.2.1...v3.2.2
v3.2.1
What's Changed
- fix: List files in file browser works again by @MoritzWeber0 in #1535
Full Changelog: v3.2.0...v3.2.1
v3.2.0
Breaking changes
- This release is only compatible with Capella Docker images version
>v2.0.0
. Be sure to use the new v2.0.0 images as persistent images BEFORE upgrading to Capella Collaboration Manager v3.2.0. The read-only image should remain on the old version and will be automatically removed when you upgrade to Capella Collaboration Manager v3.2.0. - The internal registry in the
values.yaml
points to the Capella Collaboration Manager registry now (ghcr.io/dsd-dbs/capella-collab-manager
). If you've manually overwritten thedocker.registry.internal
value, make sure to update it! It should point to a valid Docker registry where thebackend
,frontend
,guacamole
andsession-preparation
images can be pulled from. - Read-only images have been removed. Instead, models are loaded with a new provisioning system and mounted into the session container. The behavior is analogous to persistent workspace sessions, except that an empty workspace and the models are mounted.
What's Changed
With this release, read-only sessions start faster. Model loading is now part of the Collaboration Manager, making it possible to provide read-only sessions for more tools in the future.
You can also quickly request previously requested sessions:
Features
- feat: Skip loading of Jupyter file-shares if they don't exist by @MoritzWeber0 in #1456
- feat: Show warning for archived projects by @MoritzWeber0 in #1495
- feat: Add support for model-loading by @MoritzWeber0 in #1469
- feat: Limit the number of models requested by @dominik003 in #1511
- feat: Add cascading deletion of tool natures & versions by @MoritzWeber0 in #1528
- feat(frontend): Add "404 - Not found" page by @MoritzWeber0 in #1520
- feat: Remember last requested sessions locally by @MoritzWeber0 in #1428
- feat: Add provisioning of compatible tool versions by @MoritzWeber0 in #1526
- feat: Disable persistent workspace sessions for specific tools by @MoritzWeber0 in #1522
Bug fixes
- fix: Automount service token to Prometheus by @dominik003 in #1462
- fix(sessions): Don't resolve encodings in sessions proxy by @MoritzWeber0 in #1502
- fix: Don't mount service account token to session containers by @MoritzWeber0 in #1503
- fix: Correctly handle disabling version selection by @dominik003 in #1512
- fix: Add two stages for environment variable resolution by @MoritzWeber0 in #1533
Documentation
- docs(capella): Add description editor workaround via expert view by @MoritzWeber0 in #1457
- docs: Add missing line-break between text & image by @MoritzWeber0 in #1484
- docs: Shorten URLs with duplicate names in path by @MoritzWeber0 in #1470
- docs: Disable font loading from Google fonts by @MoritzWeber0 in #1483
- docs: Describe TeamForCapella commit and commit description options by @MoritzWeber0 in #1485
- feat: Add Storybook with Compodoc integration by @MoritzWeber0 in #1476
- docs: Rename
Profile
toMenu
by @MoritzWeber0 in #1504 - docs(dev): Describe how to add
*.stories.ts
and*.docs.mdx
files by @MoritzWeber0 in #1516 - docs: Add "How to see users connected to the same TeamForCapella repo" by @MoritzWeber0 in #1510
Development
- feat: Add base error model, remove dupe error handlers and registration by @romeonicholas in #1430
- chore: Remove pyease debug helm chart by @dominik003 in #1463
- docs: Add acceptance criteria for pull requests by @MoritzWeber0 in #1468
- build(deps): bump actions/add-to-project from 0.6.1 to 1.0.0 by @dependabot in #1473
- build(deps): bump capella-dockerimages from
08764b7
to695f170
by @dependabot in #1466 - build(deps): bump capella-dockerimages from
695f170
to4a98a7f
by @dependabot in #1488 - build: Switch to ESBuild as builder and Vite as dev-server by @MoritzWeber0 in #1475
- test: Add Story for model-complexity-badge by @MoritzWeber0 in #1489
- build: Update frontend versions by @romeonicholas in #1493
- ci: Automatically publish storybook to Chromatic by @MoritzWeber0 in #1478
- build(deps): bump capella-dockerimages from
4a98a7f
to718fb53
by @dependabot in #1501 - test: Add stories for ProjectMetadata component by @MoritzWeber0 in #1490
- ci: Add PR comment with Storybook preview by @MoritzWeber0 in #1497
- fix(storybook): Remove styling from stories in documentation by @MoritzWeber0 in #1505
- ci: Add Storybook to PR acceptance criteria by @MoritzWeber0 in #1494
- ci: Fix duplicated creation of Storybook comment by @MoritzWeber0 in #1508
- feat(storybook): Add Angular environment for Storybook by @MoritzWeber0 in #1506
- ci: Run Chromatic on 'main' branch by @MoritzWeber0 in #1521
- ci: Add license headers to
.mdx
files automatically by @MoritzWeber0 in #1519 - build(deps): bump helm/kind-action from 1.9.0 to 1.10.0 by @dependabot in #1527
- build: Load environment from .env in Makefile by @MoritzWeber0 in #1529
- build: Create
.env
file if it doesn't exist in Makefile by @MoritzWeber0 in #1530
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
Features
- feat: Add tool info to session deletion dialog by @dominik003 in #1448
- feat: Add colored log messages by @MoritzWeber0 in #1432
- feat: Add support for session pre-authentication by @MoritzWeber0 in #1447
- feat: Disable automatic service account mounting by @MoritzWeber0 in #1414
- feat: Improve readability of log messages by @MoritzWeber0 in #1455
Documentation
- docs: Add troubleshooting section for Capella by @MoritzWeber0 in #1440
- docs: Remove extensions entrypoints from documentation by @MoritzWeber0 in #1453
Internal changes
- build: Update frontend versions by @romeonicholas in #1439
- build(deps-dev): bump capellambse from 0.5.51 to 0.5.52 in /backend by @dependabot in #1436
- build(deps): bump actions/add-to-project from 0.6.0 to 0.6.1 by @dependabot in #1452
- fix: Update user test to eliminate deprecation warning in request by @romeonicholas in #1438
- fix: Remove deprecated interface in authentication by @romeonicholas in #1437
- test: Add tests for HTTP session hook and GET session routes by @MoritzWeber0 in #1449
- feat: Convert config template to pydantic model by @romeonicholas in #1364
- feat: Add new volume type "SecretReferenceVolume" by @MoritzWeber0 in #1451
Full Changelog: v3.0.2...v3.1.0
v3.0.2
What's Changed
Bug fixes
- fix: Pass resources to manually schedules jobs by @MoritzWeber0 in #1431
Full Changelog: v3.0.1...v3.0.2
v3.0.1
What's Changed
Bug fixes
- fix: Allow downgrading from administrator to user by @dominik003 in #1422
- fix(frontend): Remove trailing
/
from backend API requests by @MoritzWeber0 in #1429
Development
- build(deps-dev): bump capellambse from 0.5.47 to 0.5.51 in /backend by @dependabot in #1378
- feat(backup): Remove connection method specific variables by @dominik003 in #1410
- build(deps): bump actions/add-to-project from 0.5.0 to 0.6.0 by @dependabot in #1383
Full Changelog: v3.0.0...v3.0.1
v3.0.0
Overview
This release introduces a new yaml-based tool editor for administrators. The new tool editor doesn't only increase the configuration flexibility, it comes with general web-based tool support, custom resources, better extendibility, predefined environment variables, and different connection methods (#1355).
If a tool offers more than one connection method, the user can select the connection method when requesting a persistent or read-only session. Users of our Capella Docker images can benefit from the new connection method Xpra as alternative to Guacamole.
There were many changes under the hood. We've moved more code into session lifecycle hooks, replaced the Jupyter specific code with a general "http" connection method and removed the Guacamole code from the frontend.
If you're interested in extending the Collaboration Manager with a new tool, have a look at our new documentation page: Configuration of tools
Important notes
The release contains many breaking changes. Please review the changes before updating. The update doesn't cause a downtime and can be installed during daily operation. Running sessions are automatically migrated to the new version and are not interrupted. v3.0.0
of the Collaboration Manager is only compatible with >v1.18.0
of Capella Docker images. Make sure to update the Docker image version before you start the Collaboration Manager update!
Breaking changes
For users
- Project leads can no longer see the session overview. It's reserved to admins from now on.
- It's no longer possible to spawn multiple read-only sessions with the same tool/version. In the future, it will be possible to load a read-only session with models from different projects.
- Until a proper locking mechanism or support for multiple workspaces is implemented, we no longer restrict that a users runs multiple different Eclipse-based sessions at a time. Instead, Eclipse will print an error message in the session. Previously, we assumed that the session is Eclipse-based if it was not Jupyter. This is no longer possible due to the removal of the specific Jupyter implementation.
For developers
- The
"/sessions/{session_id}/guacamole-tokens"
route was removed completely. The route provided the URL to Guacamole and the Guacamole token. The URL is now provided in theGetSessionsResponse
asredirect_url
to make it consistent with other connection methods. The token is now passed as value of theGUAC_AUTH
key in thelocal_storage
dict ofSessionConnectionInformation
, which is the return type of the new route GET/sessions/{session_id}/connection
. - The return type of all session hooks has changed. Instead of a tuple, a typed dict is now returned. This makes backwards compatibility for future updates easier and adds partial returns (not all attributes of the tuple have to be returned).
- The following attributes were removed from the
GetSessionsResponse
:jupyter_uri
(replaced withredirect_url
),guacamole_username
(not exposed anymore, but saved in the database in theconfig
column) andguacamole_connection_id
(not exposed anymore, but saved in the database in theconfig
column). - The POST
/sessions/persistent
and POST/projects/<slug>/sessions/read-only
routes were merged into POST/sessions
. Have a look in the API documentation for the updated interface. - The local development environment works with HTTPS now, reachable via
https://localhost:443
. It can be used to test the compatibility of sessions with TLS edge termination. The development cluster has to be recreated withdelete-cluster
andcreate-cluster
. - The
extensions.jupyter
configuration option was removed, there is no specific public URI for Jupyter anymore. In the local development setup, it has to be removed manually.
Notable changes
For users
- During each session start (persistent or read-only), the user can select a connection method if more than connection method is available for the tool.
- The "Request a session with a persistent workspace" button is now disabled during an active request to avoid accidental creation of multiple sessions.
- The "Request session" button in the read-only dialog is now disabled if no model is selected.
- The "Request a persistent session" button was renamed to "Request a session with a persistent workspace".
- It's possible to open multiple Xpra-based sessions side-by-side in the internal session viewer (e.g. a Capella read-only and persistent session):
- A troubleshooting section for long session request times was added to the documentation by @MoritzWeber0 in #1397
For administrators
- There is significantly more flexibility in defining tools: It's possible to define environment variables, use new pre-defined variables, define cookies for tools, define the exposed ports in the container and create own connection methods.
- There is now general web-based tool support, which means that admins can integrate other web-based tools.
- TeamForCapella metrics about the license usage are available in a new pre-provisioned dashboard in #1387, #1391, #1394 and #1395.
For developers
- Two new session hooks
fetch_session_hook
andsession_connection_hook
have been introduced. Thefetch_session_hook
is executed during fetching of each session (in the GET session routes and after session creation). Thesession_connection_hook
is executed when a user connects to a session (when the new route GET/sessions/<id>/connection
is called). - The
post_session_creation_hook
can now return information on what to store in the frontend local storage. - Session environment variables can be defined per tool in a flexible way using Pythons format syntax. The existing Jupyter environment variables were migrated to the new format.
- All references to Guacamole except the Guacamole status in the Monitoring view are removed from the frontend.
- All Jupyter specific code is removed from the frontend and was replaced with general web-based implementation.
- Guacamole related actions were removed to the Guacamole session hook.
- The
read-only
sessions have no reference to specific projects anymore, allowing to load models from different projects in one session (only via the API currently, not in the frontend). - The
/api/v1/users/current/tokens
endpoint uses a date instead datetime asexpiration_date
.
Small changes
- build: Update frontend versions by @romeonicholas in #1342
- build(deps): bump helm/kind-action from 1.8.0 to 1.9.0 by @dependabot in #1336
- ci: Reenable deprecation ESLint rule by @MoritzWeber0 in #1330
- refactor: Use dataclasses for all SQLAlchemy database classes by @MoritzWeber0 in #1328
- fix: Align projects title in monitoring overview by @MoritzWeber0 in #1343
- build: Update pre-commit versions by @MoritzWeber0 in #1345
- build(deps): bump capella-dockerimages from
614e12e
tocdf5ec7
by @dependabot in #1349 - fix: Add gap between active sessions by @MoritzWeber0 in #1350
- ci: Remove old Jenkins related exclude rule in
pre-commit-config.yml
by @MoritzWeber0 in #1363 - feat: Set tool configuration with YAML by @MoritzWeber0 in #1311
- build: Update frontend versions by @romeonicholas in #1371
- feat: Improve test runtime by only calling
migrate_db
once by @dominik003 in #1258 - ci: Install commitlint locally, not globally by @MoritzWeber0 in #1382
- build: Remove
environment.prod.ts
by @MoritzWeber0 in #1368 - build(deps): bump capella-dockerimages from
cdf5ec7
to4cafe3d
by @dependabot in #1384 - fix: Cut too long tool names by @MoritzWeber0 in #1367
- refactor: Remove usage of bare-except by @MoritzWeber0 in #1388
- feat: Make external links available in development mode by @MoritzWeber0 in #1393
- build(deps): bump azure/setup-helm from 3 to 4 by @dependabot in #1396
- fix: Reenable uvicorn error logger by @MoritzWeber0 in #1386
- fix: Change kubectl package location by @dominik003 in #1400
- chore: Remove PodDisruptionBudgets for Grafana & Prometheus by @MoritzWeber0 in #1392
- feat: Make resources configurable per tool by @MoritzWeber0 in #1344
- fix: Downgrade `fasta...
v2.26.0
Breaking changes
The metadata configuration via the values.yaml
was removed. Instead, the configuration can be set via an interactive YAML editor in the frontend. To update the configuration, navigate to "Menu" -> "Settings" -> "Configuration":
Notable changes
Our API documentation is live! Learn more about the API documentation in the new section of our documentation.
In addition, we removed many legacy components in the frontend as part of this update. This can lead to some smaller changes in the frontend UI. We've tried to keep the changes as small as possible.
Full changelog
Features
- feat: Set global configuration via YAML editor in frontend by @MoritzWeber0 in #1168
- refactor: Optimize some error messages by @MoritzWeber0 in #1321
Bug fixes
- fix: Use wider input fields in project metadata dialog by @MoritzWeber0 in #1241
- fix: Correctly call
psql
in probes by @dominik003 in #1274 - fix: Minimize styling changes affected by Angular upgrade by @romeonicholas in #1317
- fix: Add missing word in Git error message by @MoritzWeber0 in #1325
- fix: Add loading case for "Common projects" by @MoritzWeber0 in #1332
- fix: Update styling to minimize changes from Angular upgrade by @romeonicholas in #1333
- fix: Remove button touch target to prevent scrollbars by @MoritzWeber0 in #1334
Documentation
- docs: Fix documentation according to user feedback by @Paula-Kli in #1206
- docs: Update documentation about T4C token and flow by @Paula-Kli in #1275
- docs: Fix broken links in README by @MoritzWeber0 in #1322
- docs: Expose "API documentation" and restructure users docs by @MoritzWeber0 in #1316
Development
- feat: Change DB Netz ASCII logo to DB InfraGO by @dominik003 in #1262
- build: Update copyright string on docs by @Paula-Kli in #1273
- build: Use
commitlint
to enfore conventional commits by @MoritzWeber0 in #1291 - docs: Enable strict mode by @MoritzWeber0 in #1292
- ci: Extend
commitlint
configuration with conventional commits by @MoritzWeber0 in #1297 - refactor: Make YAML editor reusable by @MoritzWeber0 in #1310
- chore: Apply prettier layout globally by @MoritzWeber0 in #1323
- chore: Remove debug message for job scheduling by @MoritzWeber0 in #1331
- refactor: Enforce mentioning of lifecycle hook interfaces by @MoritzWeber0 in #1329
Dependency updates
- build(deps-dev): bump alembic from 1.12.1 to 1.13.1 in /backend by @dependabot in #1251
- build: Update frontend versions by @Paula-Kli in #1259
- build: Update
pre-commit
versions by @MoritzWeber0 in #1288 - build: Update frontend versions by @Paula-Kli in #1293
- build(deps): bump capella-dockerimages from
b2a8239
to614e12e
by @dependabot in #1269 - build: Auto-update Github Action versions with dependabot by @MoritzWeber0 in #1289
- build(deps): bump actions/add-to-project from 0.3.0 to 0.5.0 by @dependabot in #1298
- build(deps): bump docker/build-push-action from 3 to 5 by @dependabot in #1299
- build(deps-dev): bump capellambse from 0.5.36 to 0.5.47 in /backend by @dependabot in #1300
- build(deps): bump actions/setup-go from 3 to 5 by @dependabot in #1301
- build(deps): bump actions/github-script from 6 to 7 by @dependabot in #1303
- build(deps): bump actions/setup-python from 2 to 5 by @dependabot in #1302
- build(deps): bump helm/kind-action from 1.3.0 to 1.8.0 by @dependabot in #1305
- build(deps): bump docker/login-action from 2 to 3 by @dependabot in #1306
- build(deps): bump actions/checkout from 3 to 4 by @dependabot in #1308
- build(deps): bump actions/setup-node from 3 to 4 by @dependabot in #1307
- build(deps): bump github/codeql-action from 2 to 3 by @dependabot in #1309
- build: Update Angular Material by @Paula-Kli in #1195
- build(deps): bump codecov/codecov-action from 3 to 4 by @dependabot in #1312
Full Changelog: v2.25.1...v2.26.0