- C# 50.3%
- Vue 26.7%
- TypeScript 19.5%
- SCSS 1.4%
- Python 1%
- Other 1.1%
|
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| crawler | ||
| docs | ||
| helm | ||
| Kiss.Bff | ||
| Kiss.Bff.EndToEndTest | ||
| Kiss.Bff.Test | ||
| Kiss.Elastic.Sync | ||
| Kiss.Elastic.Sync.IntegrationTest | ||
| security/docker | ||
| src | ||
| .dockerignore | ||
| .editorconfig | ||
| .env | ||
| .env.local.example | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| .readthedocs.yml | ||
| .runsettings | ||
| .stylelintrc.json | ||
| AUTHORS.md | ||
| CodeCoverage.runsettings | ||
| DECISION-RECORD.md | ||
| deviations.md | ||
| docker-compose.dcproj | ||
| docker-compose.deploy.yaml | ||
| docker-compose.override.yml | ||
| docker-compose.yml | ||
| env.d.ts | ||
| eslint.config.js | ||
| index.html | ||
| KISS-frontend.esproj | ||
| KISS-frontend.sln | ||
| launchSettings.json | ||
| LICENSE.md | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.cjs | ||
| README.md | ||
| security.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.vite-config.json | ||
| tsconfig.vitest.json | ||
| UNIT-TESTS.MD | ||
| vite.config.ts | ||
kiss-frontend
Setup environment variables
Make a copy of .env.local.example, rename it to: .env.local and fill in the required secrets.
NOTE: The example file does not contain all environment variables. A complete overview of all possible variables can be found at: https://kiss-klantinteractie-servicesysteem.readthedocs.io/nl/stable/installation/configuratie.html
Now, you can either run the application from Visual Studio or with docker-compose.
Run from Visual Studio 2022
Setup the environment variables first according to the setup environment variables chapter.
Use these steps to run KISS from visual studio 2022:
-
Make sure you've installed Docker Desktop version 4.19.0 or newer (preferably with WSL2 if using windows) and Visual Studio version 17.5.5 or newer
-
Clone this repo using Visual Studio. The KISS-frontend.sln will automatically be opened.
-
Right-click on Solution 'KISS-frontend' in the Solution Explorer and click Configure Startup Projects
-
Select Multiple startup projects, and set the Action for docker-compose and KISS-frontend to Start. Make sure all other projects are set to None:
Project Action docker-compose Start KISS-frontend Start Kiss.Bff None -
Right-click on docker-compose in the Solution Explorer and click Manage Docker Compose Launch Settings.
-
Make sure the following is set:
Service Name Project Name Action kiss.bff Kiss.Bff Start debugging postgres-db None Start without debugging -
Startup the solution and wait for both the BFF and the frontend to be ready.
(NOTE: initially you might get an error, due to different startup times of individual components. refresh the page after a few moments)
Run with docker-compose
Setup the environment variables in the env.local file first according to the setup environment variables chapter.
To run the front-end and BFF with docker you need a cmd-window opened at the root of this project.
-
Build the KISS-frontend image using the following command:
docker-compose build -
Run the image with its dependencies:
docker-compose up -
Launch a browser and navigate to: http://localhost:7231
Elastic search
KISS uses Elasticsearch directly. The BFF queries the search-* index pattern to search across all configured sources.
Follow these steps to connect your local development environment to an Elastic search instance hosted in Azure/kubernetes:
(Note: before you follow these steps make sure you have the role "Co-Administrator" with the corresponding subscription. if you dont, search in the azure subsription and add in the tab Access Control, your user with the role "Co-Administator". this can be found under the sub tab Classic administrator. otherwise redo the steps below)
- Install and open the Azure CLI.
Run the following commands:
az login(once, and make sure that the account you're logging in with, has a the correct role with the corresponding subscription)az account set --subscription [...your subscription id...](once)az aks get-credentials --resource-group [for example: KISS_Kubernetes_Dev] --name [for example: KISS_Kubernetes_Dev]kubectl config set-context --current --namespace=[for example: kiss-namespace]kubectl port-forward service/kiss-es-http 9200 -n kiss-namespace
Elastic Sync
The Kiss.Elastic.Sync tool syncs structured data sources (VACs, Medewerkers, SDG Producten, SharePoint) into Elasticsearch so they can be searched from KISS.
Prerequisites
- Make sure
.env.localin the root of this repo contains the required Elastic Sync variables. See the full list at: https://kiss-klantinteractie-servicesysteem.readthedocs.io/nl/stable/installation/configuratie.html#kiss-elastic-sync - Set up a port forward for Elasticsearch (see the Elastic search section above).
Running the sync
From the root of this repo:
docker compose build kiss.elastic.sync
Then run the desired sync:
docker compose run --rm kiss.elastic.sync # SDG Producten
docker compose run --rm kiss.elastic.sync vac # VACs
docker compose run --rm kiss.elastic.sync smoelenboek # Medewerkers
docker compose run --rm kiss.elastic.sync sharepoint # SharePoint
Adding Migrations
When adding new migrations to the project, ensure you have the correct startup project selected. You might encounter the following error message if the incorrect project has been selected:
Startup project 'docker-compose' is a Docker project.
Select an ASP.NET Core Web Application as your startup project and try again.
To resolve this, follow these steps:
- In the Solution Explorer, look for the kiss.bff project.
- Right-click on kiss.bff and select Set as StartUp Project.
Now, you should be able to add new migrations. The kiss.bff project contains the migrations, and setting this project as your startup project should resolve the above error.
Make sure to switch back to the original startup project configuration after adding the migrations, if required for your development process.
OIDC authentication (Azure AD)
An OIDC identity provider is required to login to the application. If Azure AD is used as the identity provider, the client secret that is used in the connection must be renewed periodically. A redirectloop after login is an indication that the client secret has expired.
To generate a new client secret on Azure AD:
- Select App registrations and select your application from the list.
- Select Certificates & secrets.
- Select Client secrets, and then Select New client secret.
- Provide a description and a duration. When finished select Add.
- Copy the value of the new client secret to the OIDC_CLIENT_SECRET environment variable in your env.local (OIDC_CLIENT_ID is not affected).
PABC (Platform Autorisatie Beheer Component)
KISS can optionally be connected to PABC for zaaktype-level authorization. When configured, KISS will only show zaken of zaaktypes that the logged-in user is authorized to see based on their functional roles.
See the PABC documentation for configuration and setup instructions.