{"id":22475479,"url":"https://github.com/philips/kpr-server","last_synced_at":"2025-06-27T15:08:18.635Z","repository":{"id":66550463,"uuid":"68574276","full_name":"philips/kpr-server","owner":"philips","description":"kubernetes package repository server","archived":false,"fork":false,"pushed_at":"2016-09-20T05:44:53.000Z","size":912,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T17:26:40.964Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/philips.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-19T06:06:10.000Z","updated_at":"2016-09-19T06:06:35.000Z","dependencies_parsed_at":"2023-02-28T13:30:48.638Z","dependency_job_id":null,"html_url":"https://github.com/philips/kpr-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/philips/kpr-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips%2Fkpr-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips%2Fkpr-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips%2Fkpr-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips%2Fkpr-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philips","download_url":"https://codeload.github.com/philips/kpr-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips%2Fkpr-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262279180,"owners_count":23286551,"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":[],"created_at":"2024-12-06T13:17:31.995Z","updated_at":"2025-06-27T15:08:18.612Z","avatar_url":"https://github.com/philips.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KPR Server\n\nKubernetes Package Registry Server is a prototype server to create a\npush/pull/login experience for Kubernetes Packages.\n\n## Theory of Operation\n\nThese objects and URL layouts are closely inspired by the Open Container\nInitiative and the Docker Registry API. The basic idea is that a user request\nfor a name and tag like `example.com/org/app:v1.0.0` is resolved in the\nfollowing order:\n\n```\nNamed Repo -\u003e Tag (or Channel to tag) -\u003e Manifest List -\u003e Manifest -\u003e Package Blob(s)\n```\n\nOnce a name and tag are resolved to a Manifest List all of the objects are\nsimply content-addressable blobs. This means that the manifest list, or any\nother object, can be signed or otherwise addressed directly by their digest.\nThis is how the Open Container Iniative Image Specification works (see the\nimage-layout.md and manifest.md).\n\n### Definitions\n\n- A `package` is a blob (usually tar.gz) that Helm processes to install resources on a cluster. This is built by the developer.\n- A `repo` name like example.com/org/app where a number of tagged packages live. A repo name is in the DNS federated namespace e.g. example.com/org/app\n- A `repo tag` represnts a package release that resolves to a package `manifest` or `manifest list` by digest.\n  - A `manifest` pointing to the package blob by digest. This is built and the digest is optionally signed by the developer.\n  - A `manifest list` pointing to one or more manifests. This is generated and the digest is optionally signed by the developer. This indirection will allow for new versions of the package format or handling different formats like DAB.\n\n## Trying it out\n\nTo try it all out do this:\n\n```\n$ go get -u github.com/philips/kpr-server\n$ kpr-server serve\n$ $GOPATH/src/github.com/philips/kpr-server/test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilips%2Fkpr-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilips%2Fkpr-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilips%2Fkpr-server/lists"}