{"id":30019623,"url":"https://github.com/veupathdb/vdi-service","last_synced_at":"2026-05-26T16:06:05.772Z","repository":{"id":65387192,"uuid":"575990672","full_name":"VEuPathDB/vdi-service","owner":"VEuPathDB","description":"VEuPathDB Dataset Installer","archived":false,"fork":false,"pushed_at":"2026-01-23T19:18:50.000Z","size":19758,"stargazers_count":0,"open_issues_count":31,"forks_count":0,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-01-24T09:10:53.861Z","etag":null,"topics":["vdi"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VEuPathDB.png","metadata":{"files":{"readme":"readme.adoc","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2022-12-08T18:56:05.000Z","updated_at":"2026-01-23T19:18:47.000Z","dependencies_parsed_at":"2023-10-23T19:25:30.623Z","dependency_job_id":"5497b783-9d85-4c33-9ac0-c6b2303b2de0","html_url":"https://github.com/VEuPathDB/vdi-service","commit_stats":null,"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/VEuPathDB/vdi-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fvdi-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fvdi-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fvdi-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fvdi-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VEuPathDB","download_url":"https://codeload.github.com/VEuPathDB/vdi-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fvdi-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28886948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"ssl_error","status_checked_at":"2026-01-29T21:06:42.160Z","response_time":59,"last_error":"SSL_read: 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":["vdi"],"created_at":"2025-08-06T01:20:06.145Z","updated_at":"2026-05-26T16:06:05.759Z","avatar_url":"https://github.com/VEuPathDB.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"= VEuPathDB Dataset Installer Service (VDI)\n:source-highlighter: highlightjs\n:toc:\n:toclevels: 3\n\n:docs-root: https://veupathdb.github.io/vdi-service\n:latest-docs: {docs-root}/latest\n:confluence: https://veupathdb.atlassian.net/wiki/spaces\n\nifdef::env-github[]\n:tip-caption: :bulb:\n:note-caption: :information_source:\n:important-caption: :heavy_exclamation_mark:\n:caution-caption: :fire:\n:warning-caption: :warning:\nendif::[]\n\nifndef::env-github[]\n:icons: font\nendif::[]\n\n== Links\n\n=== Compose Stack \u0026 Configuration\n\n[unstyled]\n* https://github.com/VEuPathDB/vdi-compose-stack\n\n=== Documentation \u0026 Schema\n\nService configuration and REST API documentation in addition to JSON schema\nfiles are generated on commit and tag, then published to GitHub pages.\n\nlink:https://veupathdb.github.io/vdi-service/[*Published Documentation Index*]\n\n\n== Operation\n\n* link:docs/logging.md[Logging]\n\n\n== Development\n\n=== Repository Structure\n\n.Component Source\n* link:project/conventions/[Gradle Build Conventions]\n* link:project/common/[Shared Components]\n** link:project/common/config/src/main/json/schema[Config File JSON Schema]\n* link:project/core/[Core VDI Service Components]\n** link:project/core/module/rest-service[REST Service]\n** link:project/core/module/lane[Dataset Processing Lanes]\n** link:project/core/module/daemon[Background Processes]\n** link:project/core/lib/db/application[App DB Queries]\n** link:project/core/lib/dataset/reconciler[Reconciler Core]\n* link:project/plugin-server/[VDI Plugin Handler Server]\n* link:stack-db/definition[Internal Cache DB DDL]\n\n=== Building VDI Components\n\n==== Docker Images\n\n.VDI Core Server Image\n[source, shell]\n----\nmake build-image\n----\n\n.Internal Cache DB Image\n[source, shell]\n----\nmake build-db\n----\n\n==== Source Compilation\n\n.Regenerate RAML-Based Java Code\n[source, shell]\n----\nmake raml-gen\n----\n\n.Compile VDI Core Server\n[source, shell]\n----\nmake build-core-server\n----\n\n.Compile Plugin Server\n[source, shell]\n----\nmake build-plugin-server\n----\n\n=== Common Tasks\n\n==== Release a New Version\n\nThe core service and plugin server are versioned together, however they are\npresently built differently.\n\n===== Plugin Server\n\nWhen pushing up a new git tag, a\nlink:.github/workflows/plugin-server-release.yml[GitHub workflow] will\nautomatically be triggered to build and release the plugin server.  That\nworkflow will then open pull requests on each of the individual plugin\nrepositories to update their copies of the server to the newest version.\n\n===== Core Server\n\nThe core server docker image build and push to DockerHub is handled in\nhttps://ci.apidb.org/job/vdi-service/view/tags/[Jenkins].\n\n==== Update Dependencies\n\nDependency version updates are automatically suggested once per week by\nhttps://github.com/dependabot[GitHub's Dependabot], however if manual updates\nare needed, the JVM dependencies for the full stack are declared in the\nlink:gradle/libs.versions.toml[dependency catalog]. +\n(ref https://docs.gradle.org/current/userguide/version_catalogs.html[Gradle Version Catalogs])\n\n==== Update Cache DB Schema\n\n===== Relevant Locations\n\n* link:stack-db/definition[Cache DB Schema Definitions]\n* link:stack-db/migrations/src/main/sql/db-migrations[Version Migration SQL]\n* link:project/core/lib/db/internal[Database JVM Code (Queries \u0026 Wrappers)]\n\n===== Making a Schema Change\n\n1. Make the changes to the stack-db schema definition.\n2. Add a new migration directory containing migration scripts to update existing\ndatabase instances in the stack-db migrations.\n3. Update the impacted queries, database managers, and POJO types in the\n`core.lib.db.internal` subproject.\n\n===== Migrations: Additional Explanation\n\nPhysically, a migration is a directory full of queries used to apply the changes\nnecessary for a target database schema version.  The directories are named after\nthe version that they will migrate the database schema to, e.g. a directory\nnamed `012` would be expected to migrate the database schema to version 12.  The\ndirectories will be checked in ascending numeric order, only being used if the\ndatabase schema version is less than the version indicated by the directory\nname.\n\n[IMPORTANT]\nVDI does not update the recorded db schema version itself.  The migration is\nexpected to perform that update, preferably as its final step/statement.\n\nThe migration scripts are baked into the service jar as resources.\n\nOn startup, VDI will test the stack-internal cache-db to fetch the current db\nschema version.  VDI will then iterate through the migration directories,\nexecuting the SQL scripts contained in any directory whose numeric name is\ngreater than the current schema version.\n\n[CAUTION]\nVDI will not notice or apply migration scripts that have been altered in schema\nversions less than or equal to the current db schema version.\n\n\n\n== License\n\nCopyright 2020 VEuPathDB\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License.  You may obtain a copy of the\nLicense at link:http://www.apache.org/licenses/LICENSE-2.0[].\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied.  See the License for the\nspecific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveupathdb%2Fvdi-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveupathdb%2Fvdi-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveupathdb%2Fvdi-service/lists"}