{"id":40115928,"url":"https://github.com/dlcs/iiif-presentation","last_synced_at":"2026-01-19T12:10:09.998Z","repository":{"id":253957071,"uuid":"832605218","full_name":"dlcs/iiif-presentation","owner":"dlcs","description":"Allows for the creation and management of IIIF manifests","archived":false,"fork":false,"pushed_at":"2026-01-13T11:45:53.000Z","size":2563,"stargazers_count":0,"open_issues_count":75,"forks_count":0,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2026-01-13T13:15:36.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlcs.png","metadata":{"files":{"readme":"README.md","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":"2024-07-23T11:03:13.000Z","updated_at":"2026-01-13T10:13:04.000Z","dependencies_parsed_at":"2024-11-14T16:22:25.518Z","dependency_job_id":"714bfc27-a6a1-40b5-9ead-ee792f920a61","html_url":"https://github.com/dlcs/iiif-presentation","commit_stats":null,"previous_names":["dlcs/iiif-presentation"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/dlcs/iiif-presentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcs%2Fiiif-presentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcs%2Fiiif-presentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcs%2Fiiif-presentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcs%2Fiiif-presentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlcs","download_url":"https://codeload.github.com/dlcs/iiif-presentation/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcs%2Fiiif-presentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28567863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"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":[],"created_at":"2026-01-19T12:10:08.360Z","updated_at":"2026-01-19T12:10:09.991Z","avatar_url":"https://github.com/dlcs.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IIIF Presentation\n\nAllows for the creation and management of IIIF Manifests and Collections.\n\n## Local Development\n\nThere is a docker-compose file for running resources required for local development.\n\n```bash\n# create .env file (1 time only)\ncp .env.dist .env\n\n# run via docker-compose\ndocker compose -f docker-compose.local.yml up\n```\n\n### Database\n\nmigrations can be applied by setting the app setting `\"RunMigrations\": true` in the API and then inital data can be seeded from the [create_root script](/scripts/create_root.sql) in the scripts folder.\n\nMigrations can be added with the command\n\n```bash\ndotnet ef migrations add \"\u003cmigration name\u003e\" -p Repository -s API\n```\n\nif you would like to view the SQL the migration will produce, you can use the following command:\n\n```bash\ndotnet ef migrations script -i -o .\\migrate.sql -p Repository -s API\n```\n\n### DLCS Named Query\n\nAs part of handling assets in canvas paintings, items are ingested via the DLCS.  In order to track items that have been ingested, a new global named query needs to be added to the DLCS to track manifests.  This can be done in 2 ways, as follows:\n\n1. POST to the named query endpoint:\n\n**NOTE:** This is required to be done as the admin customer using the DLCS API\n\n```\nPOST {{baseUrl}}/customers/1/namedQueries\n\n{\n    \"name\": \"manifest-query\",\n    \"template\": \"manifest=p1\",\n    \"global\": true\n}\n```\n\n2. Directly into the DLCS database\n\n```sql\nINSERT INTO \"NamedQueries\" (\"Id\", \"Customer\", \"Name\", \"Global\", \"Template\")\nVALUES (gen_random_uuid(), 1, 'manifest-query', true, 'manifest=p1')\n```\n\n**NOTE:** the presentation API assumes the name of this named query is `manifest-query` by default, so if this is changed the presentation will need an updated setting to track.\n\n\n### Architecture\n\nThe IIIF Presentation solution is made up of a series of C# projects, scripts and databases this section is a quick discussion of the code make-up and architecture for future reference\n\n#### C# Projects\n\n| name | description |\n|---|---|\n| Utils/Migrator | Used to update the database when there is a pending migration that needs to be applied.  The API can also do this when configured |\n| API | Contains the Web API application that users interact with |\n| AWS | Module that contains calls and helper functions that interact with AWS |\n| BackgroundHandler | Contains anything that needs to occur after actions from third-party services have completed, such as interactions with Protagonist |\n| Core | Low-level module that provides helper functions to all projects  |\n| DLCS | Contains calling code for the DLCS to allow images to be ingested and retrieved |\n| Models | POCO's used throughout the solution |\n| Repository | Used primarily to provide access to the database context, as well as various helper functions and some data access classes |\n| Services | Contains functions that are shared by running applications only, such as the API and BackgroundHandler |\n\nThe general hierarchy of dependencies from lowest to highest are as follows:\n\n|Hierarchy|\n|---|\n| Core, Models |\n| AWS, Repository, DLCS |\n| Services |\n| API, BackgroundHandler |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlcs%2Fiiif-presentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlcs%2Fiiif-presentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlcs%2Fiiif-presentation/lists"}