{"id":46687534,"url":"https://github.com/informationgrid/ingrid-editor","last_synced_at":"2026-03-09T02:30:49.018Z","repository":{"id":215585713,"uuid":"738202655","full_name":"informationgrid/ingrid-editor","owner":"informationgrid","description":"Maintain your metadata with ease: create, validate, and publish ISO 19115/19119, OGC and INSPIRE compliant metadata — with simple import \u0026 export functionality.","archived":false,"fork":false,"pushed_at":"2026-03-03T14:39:40.000Z","size":47057,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2026-03-03T18:51:37.945Z","etag":null,"topics":["angular","editor","forms","kotlin","metadata","metadata-editor"],"latest_commit_sha":null,"homepage":"https://ingrid-oss.eu/latest/components/ige/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/informationgrid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-02T17:08:04.000Z","updated_at":"2026-03-03T14:39:43.000Z","dependencies_parsed_at":"2024-11-05T13:22:08.737Z","dependency_job_id":"94b0fa0a-04cb-41c3-8ca0-2b40727ca9f1","html_url":"https://github.com/informationgrid/ingrid-editor","commit_stats":null,"previous_names":["informationgrid/ingrid-editor"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/informationgrid/ingrid-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informationgrid%2Fingrid-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informationgrid%2Fingrid-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informationgrid%2Fingrid-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informationgrid%2Fingrid-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/informationgrid","download_url":"https://codeload.github.com/informationgrid/ingrid-editor/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informationgrid%2Fingrid-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30280805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:23:26.802Z","status":"ssl_error","status_checked_at":"2026-03-09T02:22:46.175Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","editor","forms","kotlin","metadata","metadata-editor"],"created_at":"2026-03-09T02:30:47.243Z","updated_at":"2026-03-09T02:30:48.998Z","avatar_url":"https://github.com/informationgrid.png","language":"Kotlin","readme":"# InGrid Editor\n\n\u003cimg src=\"https://ingrid-oss.eu/8.2.0/assets/components/ingrid-plattform.png\" alt=\"InformationGrid illustration\" width=\"480\" align=\"right\"\u003e\n\nThis repository is part of **[InGrid](https://ingrid-oss.eu)**, an open-source solution for building, managing, and exposing metadata-driven information systems.\n\n**About InGrid Editor:**  \nMaintain your metadata with ease: create, validate, and publish ISO 19115/19119, OGC and INSPIRE compliant metadata — with simple import \u0026 export functionality.\n\n[Full documentation](docs/index.adoc)\n\n## Getting started\n\n### Configure the server\n\nThe server uses several spring profiles to be configured for different environments.\n\n- dev =\u003e used for development, which disables keycloak authentication\n- default =\u003e also used for development and is set up in `server/src/develop/resources`\n- mcloud, ... =\u003e profile for customer implementation (import, export, fields, ...)\n\nThe profiles can be set in the startup configuration or in the application.properties under `server/src/main/resources`.\nWe suggest to use the startup configuration to prevent accidentally commit of development changes.\n\nWhen using Keycloak then some properties must be configured. Please also check `application.properties`:\n\n- spring.security.oauth2.client.provider.keycloak.issuer-uri\n- spring.security.oauth2.resourceserver.jwt.issuer-uri\n- keycloak.auth-server-url\n\nYou also need to configure a user with privileged rights in Keycloak, which is needed for the user management. This can be done by setting\n\n- keycloak.backend-user\n- keycloak.backend-user-password\n\nYou can also configure it by these environment variables respectively:\n\n- KEYCLOAK_BACKEND_USER\n- KEYCLOAK_BACKEND_USER_PASSWORD\n\n#### Database\n\nThe application requires a PostgreSQL database instance which is configured in application.properties.\n\nA Docker container to be used in development can be created by running the following command in the `postgres`\ndirectory:\n\n\u003e docker-compose up -d\n\nSee also `postgres/.env` for further configuration.\n\nYou need to manually create an empty database with the name 'ige' .\nThe database gets initialized on startup. Afterward you can map your db data directory in the docker-compose file to\nmake it persistent.\n\n### Start the client and server\n\nFor IntelliJ configuration see the section below.\n\n#### Server\n\nYou can also run the server from command line:\n\n\u003e ./gradlew bootRun --args='--spring.profiles.active=dev,mcloud,uvp,ingrid,elasticsearch'\n\nWith the following command a jar is generated, which contains the whole server including\noptimized frontend application:\n\n\u003e ./gradlew -PbuildProfile=prod clean build\n\n#### Client\n\nInstall dependencies: `yarn`\n\nFor the client just run `npm start` in the frontend directory. When developing for Internet Explorer please\nrun `npm run start-ie11`.\n\n### Setup IntelliJ IDEA\n\n- Open IntelliJ\n- Import project\n  - _If first project in IntelliJ_ Open or Import \u003e Select `build.gradle` \u003e Open as Project \u003e OK\n  - _Else_ File \u003e New \u003e Project from Existing Sources... \u003e Select `build.gradle` \u003e OK\n- Create **server run configuration**\n\n  - **Java 17 SDK** is required\n  - Run \u003e Edit Configurations \u003e Add New Configuration \u003e Kotlin, and apply the following step by step:\n    - Name: IgeServerKt\n    - VM options: `-Dspring.profiles.active=dev,mcloud,uvp,ingrid,elasticsearch`\n    - Use classpath of module: `ige-ng.server.main`\n    - Main class: `de.ingrid.igeserver.IgeServerKt`  \n      (The file should automatically appear in the search dialog. When not, choose manually _\n      server/src/main/java/de/ingrid/igeserver/IgeServer.kt_)\n    - JRE: `path/to/java-17-jdk`\n    - Shorten command line: `JAR manifest`\n\n- Install **frontend packages**\n  - Open a shell in root directory of the project\n  - Install _yarn_ if not installed yet: `sudo npm -g i yarn`\n  - Install packages: `yarn --cwd ./frontend`\n- Create **frontend run configuration**\n  - Run \u003e Edit Configurations \u003e + (new configuration) \u003e\n    - _community edition_ Shell Script\n      - Script path: _path/to/npm_\n      - Script options: `start`\n      - Working directory: _path/to/frontend_\n      - Interpreter path: _empty_\n    - _ultimate edition_ npm\n      - It just works (Andre)\n- Choose an active profile  \n  The profile `mcloud` might be active by default when starting the frontend interface. Choose your target profile for\n  development through the following steps:\n  - Start backend and frontend and navigate to frontend home page\n  - Click on the three-dots icon in the top right corner and choose `Allgemein`\n  - Navigate to `Katalogverwaltung` and add a new catalog with the target profile\n  - Activate your newly created catalog\n\nYou are all set. Run server and frontend with the appropriate run configuration.\n\n### Update dependencies\n\nTo get a list of new versions of our dependencies you can run the following command:\n\nFor the server:\n\n```shell\n./gradlew :server:dependencyUpdates\n```\n\nDo not forget to update the lock file for the dependencies. This can be done with the following command:\n\n```shell\n./gradlew -PbuildProfile=prod -Plock :server:dependencies --write-locks\n```\n\nFor the frontend:\n\n```shell\ncd frontend \u0026\u0026 yarn upgrade-interactive\n```\n\n## Apache Configuration\n\nFor the apache configuration use the following settings:\n\n```\nlocation /ige-server/ {\n    add_header 'Access-Control-Allow-Origin' *;\n    add_header 'Access-Control-Allow-Credentials' 'true';\n    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT,DELETE, OPTIONS';\n    add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';\n    proxy_pass http://192.168.0.238:8111/;\n}\n```\n\nTo get the swagger-api json documentation go to http://localhost:8550/v3/api-docs. The UI version can be accessed\nwith http://localhost:8550/swagger-ui.html, where you also can test the API.\n\n# Tests\n\nFor end-to-end tests with Cypress check out the README.md inside `frontend/e2e` directory.\n\n# Release\n\n## Update changelog\n\nTBD\n\n## Release a new version\n\n- Set an annotated tag to the latest commit which represents the release\n  - use this format `\u003cmajor\u003e.\u003cminor\u003e.\u003cbugfix\u003e`, e.g. 1.3.0\n- push tag (with commit) to remote, which will trigger a new build in Jenkins\n\n# Jenkins Setup\n\nThe following behaviours for the Jenkins project have to be applied:\n\n- Advanced clone behaviours\n  - to fetch tags so that the correct version is calculated\n- Check out to matching local branch\n  - to get branch information for creating correct tag for docker image\n\n# FAQ\n\n## Error after login: ERR_TOO_MANY_REDIRECTS\n\nA problem occurs when running Keycloak and Application in a docker container on your local machine. Then it's important\nthat the access to the keycloak instance is the same for the backend as in the frontend in the browser, which happens\nactually on the local machine (not inside docker). Therefore, you need to configure `/etc/hosts` file or under windows `\nc:\\Windows\\System32\\Drivers\\etc\\hosts` and add the following entry:\n\n\u003e 127.0.0.1 keycloak\n\nIn your docker-compose file you would then use for your app the environment variable \"KEYCLOAK_URL=http://keycloak:8080\"\nto access keycloak in the container. Moreover, make sure the port mapping is the same \"8080:8080\" otherwise keycloak\nwon't be able to map correctly.\n\n## Add a new keycloak user\n\nWhen adding a new keycloak user, make sure to assign the correct roles: ige-user (needed!) and optional ige-super-admin\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformationgrid%2Fingrid-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformationgrid%2Fingrid-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformationgrid%2Fingrid-editor/lists"}