{"id":20710972,"url":"https://github.com/entur/irkalla","last_synced_at":"2026-05-19T10:01:19.588Z","repository":{"id":26171209,"uuid":"90352815","full_name":"entur/irkalla","owner":"entur","description":"Will distribute information about stop change between tiamat, chouette and abzu. ","archived":false,"fork":false,"pushed_at":"2024-04-09T20:56:38.000Z","size":522,"stargazers_count":0,"open_issues_count":12,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-10T00:42:16.042Z","etag":null,"topics":["abuzu","chouette","java-11","ror","spring-boot","stopplaces","tiamat"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/entur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2017-05-05T08:09:22.000Z","updated_at":"2024-04-15T03:57:10.828Z","dependencies_parsed_at":"2023-10-23T03:30:56.996Z","dependency_job_id":"7d1dc169-c06b-44ee-93f5-fe7887e23811","html_url":"https://github.com/entur/irkalla","commit_stats":null,"previous_names":[],"tags_count":297,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entur%2Firkalla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entur%2Firkalla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entur%2Firkalla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entur%2Firkalla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entur","download_url":"https://codeload.github.com/entur/irkalla/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242981913,"owners_count":20216499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["abuzu","chouette","java-11","ror","spring-boot","stopplaces","tiamat"],"created_at":"2024-11-17T02:13:40.368Z","updated_at":"2026-05-19T10:01:19.581Z","avatar_url":"https://github.com/entur.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# irkalla [![Build and push](https://github.com/entur/irkalla/actions/workflows/push.yml/badge.svg?branch=master)](https://github.com/entur/irkalla/actions/workflows/push.yml)\n\nIrkalla is a Spring Boot integration service that synchronizes stop place data from the [Norwegian Stop Place Register](https://stoppested.entur.org) into the [Routes database](https://rutedb.dev.entur.org/).\n\nIt monitors [Tiamat](https://github.com/entur/tiamat) for stop place changes and:\n- Replicates changes to [Chouette](https://github.com/entur/chouette) via its REST API (NeTEx format, delta and full sync)\n- Sends CRUD event notifications to [Nabu](https://github.com/entur/nabu) via Google Pub/Sub\n- Publishes stop place changelog events to Kafka (Avro schema, with Confluent Schema Registry)\n- Persists sync state in Google Cloud Storage to support resumable synchronization\n\n### Kafka event\n\nEach stop place change produces a `StopPlaceChangelogEvent` on the configured topic:\n\n| Field | Type | Description |\n|---|---|---|\n| `stopPlaceId` | string | NeTEx id (e.g. `NSR:StopPlace:1234`) |\n| `stopPlaceVersion` | long | Stop place version number |\n| `stopPlaceChanged` | timestamp-millis (nullable) | When the change occurred |\n| `eventType` | enum | `CREATE`, `UPDATE`, `REMOVE`, or `DELETE` |\n\n`REMOVE` means the stop place was deactivated; `DELETE` means it was permanently terminated.\n\nRelevant configuration:\n\n```properties\nirkalla.kafka.topic.event=ror-stop-places-updated\ncamel.component.kafka.brokers=localhost:9092\ncamel.component.kafka.schema-registry-u-r-l=http://localhost:8082\n```\n\nKafka publishing can be disabled with the `no-kafka` Spring profile.\n\n\n## Build\n```bash\nmvn clean install\n```\n\n## Run locally (without Kubernetes)\n\n```properties\nserver.port=10501\nserver.admin.host=0.0.0.0\nserver.admin.port=11501\nserver.context-path=/irkalla/\n\nirkalla.security.user-context-service=full-access\n\ntiamat.url=http://tiamat:2888\nchouette.url=http://localhost:8080\n\nrutebanken.kubernetes.enabled=false\nchouette.sync.stop.place.autoStartup=true\n```\n\n## Security\nAn authorization service implementation must be selected.\nThe following implementation gives full access to all authenticated users:\n\n```properties\nirkalla.security.user-context-service=full-access\n```\n\nThe following implementation enables OAuth2 token-based authorization:\n```properties\nirkalla.security.user-context-service=token-based\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentur%2Firkalla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentur%2Firkalla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentur%2Firkalla/lists"}