9b91aa39a6
Puppet modules can only be proxied from a remote Forge; there is nowhere to publish internal modules for puppet module install, r10k and g10k. - add puppet local uploads at <owner>-<module>-<version>.tar.gz, rejecting existing versions - record each release's metadata.json, md5 and sha256 in a puppet_metadata table, streaming the tarball under size caps - serve Forge v3 /v3/modules, paginated /v3/releases, /v3/releases/<slug> and /v3/files - add an e2e-docker case driving real r10k and puppet module install - document local puppet in README and UI usage snippets Reviewed-on: #145 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
16 lines
505 B
SQL
16 lines
505 B
SQL
CREATE TABLE IF NOT EXISTS puppet_metadata (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
repo_name TEXT NOT NULL,
|
|
file_path TEXT NOT NULL,
|
|
content_hash TEXT NOT NULL,
|
|
slug TEXT NOT NULL,
|
|
version TEXT NOT NULL,
|
|
metadata_json TEXT NOT NULL,
|
|
file_size BIGINT NOT NULL DEFAULT 0,
|
|
file_md5 TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
UNIQUE(repo_name, file_path)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_puppet_metadata_repo_slug ON puppet_metadata(repo_name, slug);
|