diff --git a/docs/tech/architecture/definitions/upgrade.md b/docs/tech/architecture/definitions/upgrade.md new file mode 100644 index 0000000000000000000000000000000000000000..22d31c5f0072d998fbfe7ad2266950fbfbaa0d87 --- /dev/null +++ b/docs/tech/architecture/definitions/upgrade.md @@ -0,0 +1,39 @@ +# How to upgrade definition version? + +If you want to upgrade the current definition to a new version, use the following [CHANGELOG](CHANGELOG.md). + +## How to proceed: + +1. Take your current definition, and in `config.yml`, check the version. + +2. Change the version in `config.yml` to a new version. + +3. Use the [CHANGELOG](CHANGELOG.md) and start making changes step by step from your current version to the newest version that is compatible with IXP. + +4. Make one single change at a time. + +5. Be sure to make the change for all the concerning files and their attributes before proceeding with the following change. + +6. Each version contains information about changes and a structured description of affected files and their arguments. + +7. Note that not every change is reflected in the files, some changes are only concerned with the behaviour of certain definition aspect rather than syntax change in the YAML files. + +8. Lastly, check the new version against [definition documentation](README.md) to see if the arguments in the files are the same. + +9. Zip the definition and upload it to the IXP for the last validation. + +10. **Done.** Enjoy your upgraded version! + +## Example: + +* Current version: **0.8.0** +* New version: **0.9.0** + +1. In the [CHANGELOG](CHANGELOG.md) in the section **0.9.0** the only change is removal of field `auto` in `injects.yml`. +2. Open `injects.yml`. Remove field `auto` from every inject category. +3. Save the file. +4. Check the `injects.yml` against `injects.yml` structure in the [definition documentation](README.md). +5. Create a new .zip archive and upload it to the IXP. +6. The upload process will check the definition for errors. + +**You have successfully upgraded the definition version.** diff --git a/docs/tech/architecture/overview.md b/docs/tech/architecture/overview.md index bd6a19c84283b21095657e3cb13d0f16fa03a00c..684bbd950bd6c74e2c9bdadca9f769b1cde951e8 100644 --- a/docs/tech/architecture/overview.md +++ b/docs/tech/architecture/overview.md @@ -38,7 +38,7 @@ It is composed out of these parts: * Exercise Definitions: The exercise definitions module stores templates and definitions for different types of exercises. These definitions include details such as injects, emails and tools. It also checks and ensures that definitions are correctly configured and set up. - For a more in-depth explanation of definitions, please refer to [definitions architecture.](definitions.md) + For a more in-depth explanation of definitions, please refer to [definitions documentation](definitions/README.md). * Running Exercise: This module manages the execution and runtime aspects of tabletop exercises, including tracking the progress of ongoing exercises and managing the flow of injects. * Authentication: Handles user authentication and authorization, ensuring secure access to the platform's functionalities. diff --git a/docs/tech/tech_overview.md b/docs/tech/tech_overview.md index 0fcbfdbcd16cb4046dcaf342baebddb5651f2846..7beacf521f7a7907d81bfd252eafb8969898d91b 100644 --- a/docs/tech/tech_overview.md +++ b/docs/tech/tech_overview.md @@ -34,7 +34,7 @@ Each part of this section is designed to help developers, system administrators, This document gives a high-level overview of the architecture of the IXP, describing the main components, their interactions, and the overall system design. It includes diagrams and explanations to help you understand how the platform is structured and how the different parts work together. -- [Definitions](architecture/definitions.md): +- [Definitions](architecture/definitions/README.md): A detailed description of the key components and concepts within the IXP. This section serves as a glossary, helping you understand specific terms and their meanings in the context of the platform. diff --git a/mkdocs.yml b/mkdocs.yml index 57975776f7f43c9c6cf7066e1261c93e0ff7c37f..8bcb3818820bfd87f60495cbdd78076f3fd41d0f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,7 +16,10 @@ nav: - Installation: tech/installation.md - System architecture: - Overview: tech/architecture/overview.md - - Definition documentation: tech/architecture/definitions.md + - Definition documentation: + - Overview: tech/architecture/definitions/README.md + - Upgrade definition: tech/architecture/definitions/upgrade.md + - CHANGELOG: tech/architecture/definitions/CHANGELOG.md - Authorization and User Management: tech/security.md - API Documentation: - Overview: tech/api/overview.md diff --git a/utilities.sh b/utilities.sh index 8ff053b936b27d7154d307248d2c5643b8a46d2a..b93e4eb411b913b1de2fe0fc5c230010f978c873 100755 --- a/utilities.sh +++ b/utilities.sh @@ -12,7 +12,8 @@ mkdir -p docs/tech mkdir -p files-from-repos # Copy files to the respective directories -cp ./backend/definitions/README.md ./docs/tech/architecture/definitions.md +cp ./backend/definitions/README.md ./docs/tech/architecture/definitions/README.md +cp ./backend/definitions/CHANGELOG.md ./docs/tech/architecture/definitions/CHANGELOG.md cp ./backend/openapi.yml ./docs/tech/api/openapi.yml cp ./frontend/docker/nginx-deployment/README.md ./files-from-repos/nginx-README.md cp ./showcase-definition/assets/definition.zip ./files-from-repos/showcase-definition.zip