├── .envrc ├── .github ├── actions │ └── argocd-update │ │ └── action.yml ├── runs-on.yml └── workflows │ ├── builder-images.yml │ ├── cli-release.yml │ ├── cli.yml │ ├── extensions.yaml │ ├── registry.yml │ ├── test-images.yml │ └── trunk-install-test.yml ├── .gitignore ├── CODEOWNERS ├── LICENSE ├── README.md ├── assets ├── architecture.svg ├── trunk-install.gif └── trunk.png ├── cli ├── .gitignore ├── Cargo.toml ├── README-DEV.md ├── README.md ├── images │ ├── c-builder │ │ └── Dockerfile │ └── pgrx-builder │ │ └── Dockerfile ├── src │ ├── commands │ │ ├── build.rs │ │ ├── builders │ │ │ ├── Dockerfile.generic │ │ │ └── Dockerfile.pgrx │ │ ├── categories.rs │ │ ├── containers.rs │ │ ├── generic_build.rs │ │ ├── install.rs │ │ ├── install │ │ │ └── system_dependencies.rs │ │ ├── license.rs │ │ ├── mod.rs │ │ ├── pgrx.rs │ │ ├── publish.rs │ │ └── verify.rs │ ├── config.rs │ ├── control_file.rs │ ├── main.rs │ ├── manifest.rs │ ├── retry.rs │ ├── semver.rs │ ├── sync_utils.rs │ ├── trunk_toml.rs │ ├── tui.rs │ └── v1.rs └── tests │ ├── .gitignore │ ├── artifact-v1 │ └── my_extension-0.0.0.tar.gz │ ├── integration_tests.rs │ ├── test_builders │ ├── Dockerfile.auto_explain │ ├── Dockerfile.http │ └── Dockerfile.pg_stat_statements │ ├── test_dir_field │ ├── Dockerfile │ ├── Trunk.toml │ └── pair-0.1.7.zip │ ├── test_pgrx_extension │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE.txt │ ├── src │ │ └── lib.rs │ └── test_pgrx_extension.control │ ├── test_postgresql_unit │ ├── Dockerfile │ └── Trunk.toml │ └── test_trunk_toml_dirs │ ├── pg_cron │ ├── Dockerfile │ └── Trunk.toml │ ├── pgrx_with_trunk_toml │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE.txt │ ├── Trunk.toml │ ├── pgrx_with_trunk_toml.control │ └── src │ │ └── lib.rs │ ├── pgrx_with_trunk_toml_bad_name │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE.txt │ ├── Trunk.toml │ ├── src │ │ └── lib.rs │ └── test_pgrx_extension.control │ ├── pgrx_with_trunk_toml_bad_version │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE.txt │ ├── Trunk.toml │ ├── src │ │ └── lib.rs │ └── test_pgrx_extension.control │ └── postgis │ ├── Dockerfile │ └── Trunk.toml ├── contrib ├── .gitignore ├── README.md ├── adminpack │ ├── Dockerfile │ └── Trunk.toml ├── age │ ├── Dockerfile │ └── Trunk.toml ├── aggs_for_vecs │ ├── Dockerfile │ └── Trunk.toml ├── amcheck │ ├── Dockerfile │ └── Trunk.toml ├── argm │ ├── Dockerfile │ └── Trunk.toml ├── auth_delay │ ├── Dockerfile │ └── Trunk.toml ├── auto_explain │ ├── Dockerfile │ └── Trunk.toml ├── autoinc │ ├── Dockerfile │ └── Trunk.toml ├── basebackup_to_shell │ ├── Dockerfile │ └── Trunk.toml ├── basic_archive │ ├── Dockerfile │ └── Trunk.toml ├── bloom │ ├── Dockerfile │ ├── Guide.md │ └── Trunk.toml ├── bool_plperl │ ├── Dockerfile │ └── Trunk.toml ├── bool_plperlu │ ├── Dockerfile │ └── Trunk.toml ├── btree_gin │ ├── Dockerfile │ └── Trunk.toml ├── btree_gist │ ├── Dockerfile │ └── Trunk.toml ├── chkpass │ ├── Dockerfile │ └── Trunk.toml ├── citext │ ├── Dockerfile │ └── Trunk.toml ├── citus │ ├── Dockerfile │ └── Trunk.toml ├── clickhouse_fdw │ ├── Dockerfile │ └── Trunk.toml ├── colnames │ ├── Dockerfile │ └── Trunk.toml ├── count_distinct │ ├── Dockerfile │ └── Trunk.toml ├── credcheck │ ├── Dockerfile │ └── Trunk.toml ├── cube │ ├── Dockerfile │ └── Trunk.toml ├── db_migrator │ ├── Dockerfile │ └── Trunk.toml ├── dblink │ ├── Dockerfile │ └── Trunk.toml ├── dict_int │ ├── Dockerfile │ └── Trunk.toml ├── dict_xsyn │ ├── Dockerfile │ └── Trunk.toml ├── duckdb_fdw │ ├── Dockerfile │ └── Trunk.toml ├── earthdistance │ ├── Dockerfile │ └── Trunk.toml ├── emaj │ ├── Dockerfile │ └── Trunk.toml ├── envvar │ ├── Dockerfile │ └── Trunk.toml ├── extra_window_functions │ ├── Dockerfile │ └── Trunk.toml ├── file_fdw │ ├── Dockerfile │ └── Trunk.toml ├── fuzzystrmatch │ ├── Dockerfile │ └── Trunk.toml ├── h3_pg │ ├── Dockerfile │ └── Trunk.toml ├── hostname │ ├── Dockerfile │ └── Trunk.toml ├── hstore │ ├── Dockerfile │ └── Trunk.toml ├── hstore_plperl │ ├── Dockerfile │ └── Trunk.toml ├── hstore_plperlu │ ├── Dockerfile │ └── Trunk.toml ├── hstore_plpython │ ├── Dockerfile │ └── Trunk.toml ├── hydra_columnar │ ├── Dockerfile │ └── Trunk.toml ├── hypopg │ ├── Dockerfile │ └── Trunk.toml ├── icu_ext │ ├── Dockerfile │ └── Trunk.toml ├── index_advisor │ ├── Dockerfile │ └── Trunk.toml ├── insert_username │ ├── Dockerfile │ └── Trunk.toml ├── intagg │ ├── Dockerfile │ └── Trunk.toml ├── intarray │ ├── Dockerfile │ └── Trunk.toml ├── ip4r │ ├── Dockerfile │ └── Trunk.toml ├── isn │ ├── Dockerfile │ └── Trunk.toml ├── jdbc_fdw │ ├── Dockerfile │ └── Trunk.toml ├── jsonb_plperl │ ├── Dockerfile │ └── Trunk.toml ├── jsonb_plperlu │ ├── Dockerfile │ └── Trunk.toml ├── jsonb_plpython │ ├── Dockerfile │ └── Trunk.toml ├── jsonschema │ ├── Dockerfile │ └── Trunk.toml ├── kafka_fdw │ ├── Dockerfile │ └── Trunk.toml ├── lo │ ├── Dockerfile │ └── Trunk.toml ├── lower_quantile │ ├── Dockerfile │ └── Trunk.toml ├── ltree │ ├── Dockerfile │ └── Trunk.toml ├── ltree_plpython │ ├── Dockerfile │ └── Trunk.toml ├── meta │ ├── Dockerfile │ └── Trunk.toml ├── meta_triggers │ ├── Dockerfile │ └── Trunk.toml ├── mobilitydb │ ├── Dockerfile │ └── Trunk.toml ├── moddatetime │ ├── Dockerfile │ └── Trunk.toml ├── multicorn │ ├── Dockerfile │ └── Trunk.toml ├── mysql_fdw │ ├── Dockerfile │ └── Trunk.toml ├── old_snapshot │ ├── Dockerfile │ └── Trunk.toml ├── ora_migrator │ ├── Dockerfile │ └── Trunk.toml ├── oracle_fdw │ ├── Dockerfile │ └── Trunk.toml ├── orafce │ ├── Dockerfile │ └── Trunk.toml ├── pageinspect │ ├── Dockerfile │ └── Trunk.toml ├── parquet_s3_fdw │ ├── Dockerfile │ └── Trunk.toml ├── passwordcheck │ ├── Dockerfile │ └── Trunk.toml ├── periods │ ├── Dockerfile │ └── Trunk.toml ├── permuteseq │ ├── Dockerfile │ └── Trunk.toml ├── pg_analytics │ ├── Dockerfile │ └── Trunk.toml ├── pg_anonymize │ ├── Dockerfile │ └── Trunk.toml ├── pg_base36 │ ├── Dockerfile │ └── Trunk.toml ├── pg_base62 │ ├── Dockerfile │ └── Trunk.toml ├── pg_bigm │ ├── Dockerfile │ └── Trunk.toml ├── pg_buffercache │ ├── Dockerfile │ └── Trunk.toml ├── pg_cron │ ├── Dockerfile │ └── Trunk.toml ├── pg_currency │ ├── Dockerfile │ └── Trunk.toml ├── pg_dbms_job │ ├── Dockerfile │ └── Trunk.toml ├── pg_dirtyread │ ├── Dockerfile │ └── Trunk.toml ├── pg_duckdb │ ├── Dockerfile │ └── Trunk.toml ├── pg_extra_time │ ├── Dockerfile │ └── Trunk.toml ├── pg_failover_slots │ ├── Dockerfile │ └── Trunk.toml ├── pg_financial │ ├── Dockerfile │ └── Trunk.toml ├── pg_freespacemap │ ├── Dockerfile │ └── Trunk.toml ├── pg_graphql │ ├── Dockerfile │ └── Trunk.toml ├── pg_hashids │ ├── Dockerfile │ └── Trunk.toml ├── pg_hint_plan14 │ ├── Dockerfile │ └── Trunk.toml ├── pg_hint_plan15 │ ├── Dockerfile │ └── Trunk.toml ├── pg_hint_plan16 │ ├── Dockerfile │ └── Trunk.toml ├── pg_hint_plan17 │ ├── Dockerfile │ └── Trunk.toml ├── pg_html5_email_address │ ├── Dockerfile │ └── Trunk.toml ├── pg_ivm │ ├── Dockerfile │ └── Trunk.toml ├── pg_jsonschema │ ├── Dockerfile │ └── Trunk.toml ├── pg_mon │ ├── Dockerfile │ └── Trunk.toml ├── pg_net │ ├── Dockerfile │ └── Trunk.toml ├── pg_orphaned │ ├── Dockerfile │ └── Trunk.toml ├── pg_parquet │ ├── Dockerfile │ └── Trunk.toml ├── pg_partman │ ├── Dockerfile │ └── Trunk.toml ├── pg_permissions │ ├── Dockerfile │ └── Trunk.toml ├── pg_prewarm │ ├── Dockerfile │ └── Trunk.toml ├── pg_proctab │ ├── Dockerfile │ └── Trunk.toml ├── pg_quack │ ├── Dockerfile │ └── Trunk.toml ├── pg_qualstats │ ├── Dockerfile │ └── Trunk.toml ├── pg_rational │ ├── Dockerfile │ └── Trunk.toml ├── pg_repack │ ├── Dockerfile │ └── Trunk.toml ├── pg_roaringbitmap │ ├── Dockerfile │ └── Trunk.toml ├── pg_savior │ ├── Dockerfile │ └── Trunk.toml ├── pg_search │ ├── Dockerfile │ └── Trunk.toml ├── pg_semver │ ├── Dockerfile │ └── Trunk.toml ├── pg_show_plans │ ├── Dockerfile │ └── Trunk.toml ├── pg_similarity │ ├── Dockerfile │ └── Trunk.toml ├── pg_smtp_client │ ├── Dockerfile │ └── Trunk.toml ├── pg_sparse │ ├── Dockerfile │ └── Trunk.toml ├── pg_squeeze │ ├── Dockerfile │ └── Trunk.toml ├── pg_stat_kcache │ ├── Dockerfile │ └── Trunk.toml ├── pg_stat_monitor │ ├── Dockerfile │ └── Trunk.toml ├── pg_stat_statements │ ├── Dockerfile │ └── Trunk.toml ├── pg_store_plans │ ├── Dockerfile │ └── Trunk.toml ├── pg_surgery │ ├── Dockerfile │ └── Trunk.toml ├── pg_text_semver │ ├── Dockerfile │ └── Trunk.toml ├── pg_timeit │ ├── Dockerfile │ └── Trunk.toml ├── pg_tle │ ├── Dockerfile │ └── Trunk.toml ├── pg_track_settings │ ├── Dockerfile │ └── Trunk.toml ├── pg_trgm │ ├── Dockerfile │ └── Trunk.toml ├── pg_uuidv7 │ ├── Dockerfile │ └── Trunk.toml ├── pg_visibility │ ├── Dockerfile │ └── Trunk.toml ├── pg_wait_sampling │ ├── Dockerfile │ └── Trunk.toml ├── pg_walinspect │ ├── Dockerfile │ └── Trunk.toml ├── pgaudit14 │ ├── Dockerfile │ └── Trunk.toml ├── pgaudit15 │ ├── Dockerfile │ └── Trunk.toml ├── pgaudit16 │ ├── Dockerfile │ └── Trunk.toml ├── pgaudit17 │ ├── Dockerfile │ └── Trunk.toml ├── pgbouncer_fdw │ ├── Dockerfile │ └── Trunk.toml ├── pgcollection │ ├── Dockerfile │ └── Trunk.toml ├── pgcozy │ ├── Dockerfile │ └── Trunk.toml ├── pgcrypto │ ├── Dockerfile │ └── Trunk.toml ├── pgemailaddr │ ├── Dockerfile │ └── Trunk.toml ├── pgfaceting │ ├── Dockerfile │ └── Trunk.toml ├── pgfincore │ ├── Dockerfile │ └── Trunk.toml ├── pghydro │ ├── Dockerfile │ └── Trunk.toml ├── pgjwt │ ├── Dockerfile │ └── Trunk.toml ├── pgl_ddl_deploy │ ├── Dockerfile │ └── Trunk.toml ├── pglite_fusion │ ├── Dockerfile │ └── Trunk.toml ├── pglogical │ ├── Dockerfile │ └── Trunk.toml ├── pglogical_ticker │ ├── Dockerfile │ └── Trunk.toml ├── pgmonitor │ ├── Dockerfile │ └── Trunk.toml ├── pgq │ ├── Dockerfile │ └── Trunk.toml ├── pgroonga │ ├── Dockerfile │ └── Trunk.toml ├── pgrouting │ ├── Dockerfile │ └── Trunk.toml ├── pgrowlocks │ ├── Dockerfile │ └── Trunk.toml ├── pgsodium │ ├── Dockerfile │ └── Trunk.toml ├── pgsql_http │ ├── Dockerfile │ └── Trunk.toml ├── pgsql_ogr_fdw │ ├── Dockerfile │ └── Trunk.toml ├── pgstattuple │ ├── Dockerfile │ └── Trunk.toml ├── pgtap │ ├── Dockerfile │ └── Trunk.toml ├── pgtelemetry │ ├── Dockerfile │ └── Trunk.toml ├── pgtt │ ├── Dockerfile │ └── Trunk.toml ├── pguri │ ├── Dockerfile │ └── Trunk.toml ├── pgvector │ ├── Dockerfile │ └── Trunk.toml ├── pgxicor │ ├── Dockerfile │ └── Trunk.toml ├── plcoffee │ ├── Dockerfile │ └── Trunk.toml ├── pljava │ ├── Dockerfile │ └── Trunk.toml ├── plperl │ ├── Dockerfile │ └── Trunk.toml ├── plperlu │ ├── Dockerfile │ └── Trunk.toml ├── plpgsql │ ├── Dockerfile │ └── Trunk.toml ├── plpgsql_check │ ├── Dockerfile │ └── Trunk.toml ├── plprofiler │ ├── Dockerfile │ └── Trunk.toml ├── plproxy │ ├── Dockerfile │ └── Trunk.toml ├── plpython3u │ ├── Dockerfile │ └── Trunk.toml ├── plr │ ├── Dockerfile │ └── Trunk.toml ├── plrust │ ├── Dockerfile │ └── Trunk.toml ├── plsh │ ├── Dockerfile │ └── Trunk.toml ├── pltcl │ ├── Dockerfile │ └── Trunk.toml ├── pltclu │ ├── Dockerfile │ └── Trunk.toml ├── plv8 │ ├── Dockerfile │ └── Trunk.toml ├── pointcloud │ ├── Dockerfile │ └── Trunk.toml ├── postgis │ ├── Dockerfile │ └── Trunk.toml ├── postgres_decoderbufs │ ├── Dockerfile │ └── Trunk.toml ├── postgres_fdw │ ├── Dockerfile │ └── Trunk.toml ├── postgresbson │ ├── Dockerfile │ └── Trunk.toml ├── postgresml │ ├── Dockerfile │ └── Trunk.toml ├── postgresql_anonymizer │ ├── Dockerfile │ └── Trunk.toml ├── postgresql_hll │ ├── Dockerfile │ └── Trunk.toml ├── postgresql_logfdw │ ├── Dockerfile │ └── Trunk.toml ├── postgresql_topn │ ├── Dockerfile │ └── Trunk.toml ├── postgresql_unit │ ├── Dockerfile │ └── Trunk.toml ├── powa │ ├── Dockerfile │ └── Trunk.toml ├── prefix │ ├── Dockerfile │ └── Trunk.toml ├── quantile │ ├── Dockerfile │ └── Trunk.toml ├── random │ ├── Dockerfile │ └── Trunk.toml ├── rdkit │ ├── Dockerfile │ └── Trunk.toml ├── redis_fdw │ ├── Dockerfile │ └── Trunk.toml ├── refint │ ├── Dockerfile │ └── Trunk.toml ├── rum │ ├── Dockerfile │ └── Trunk.toml ├── seg │ ├── Dockerfile │ └── Trunk.toml ├── sepgsql │ ├── Dockerfile │ └── Trunk.toml ├── sequential_uuids │ ├── Dockerfile │ └── Trunk.toml ├── set_user │ ├── Dockerfile │ └── Trunk.toml ├── smlar │ ├── Dockerfile │ └── Trunk.toml ├── sqlite_fdw │ ├── Dockerfile │ └── Trunk.toml ├── sslinfo │ ├── Dockerfile │ └── Trunk.toml ├── sslutils │ ├── Dockerfile │ └── Trunk.toml ├── supautils │ ├── Dockerfile │ └── Trunk.toml ├── system_stats │ ├── Dockerfile │ └── Trunk.toml ├── tablefunc │ ├── Dockerfile │ └── Trunk.toml ├── tcn │ ├── Dockerfile │ └── Trunk.toml ├── tdigest │ ├── Dockerfile │ └── Trunk.toml ├── tds_fdw │ ├── Dockerfile │ └── Trunk.toml ├── tembo_ivm │ ├── Dockerfile │ └── Trunk.toml ├── temporal_tables │ ├── Dockerfile │ └── Trunk.toml ├── test_decoding │ ├── Dockerfile │ └── Trunk.toml ├── timescaledb │ ├── Dockerfile │ └── Trunk.toml ├── tsm_system_rows │ ├── Dockerfile │ └── Trunk.toml ├── tsm_system_time │ ├── Dockerfile │ └── Trunk.toml ├── uint128 │ ├── Dockerfile │ └── Trunk.toml ├── unaccent │ ├── Dockerfile │ └── Trunk.toml ├── uuid_ossp │ ├── Dockerfile │ └── Trunk.toml ├── vectorscale │ ├── Dockerfile │ └── Trunk.toml ├── wal2json │ ├── Dockerfile │ └── Trunk.toml ├── wrappers │ ├── Dockerfile │ └── Trunk.toml ├── xml2 │ ├── Dockerfile │ └── Trunk.toml ├── zhparser │ ├── Dockerfile │ └── Trunk.toml └── zson │ ├── Dockerfile │ └── Trunk.toml ├── docs ├── cli │ ├── cli.md │ └── cli_cmnds_build.md ├── index.md ├── registry │ └── registry.md └── ui │ └── ui.md ├── images ├── trunk-test-tembo │ ├── Dockerfile │ ├── postgresql.conf │ └── trunk-install.sh └── trunk-test │ ├── Dockerfile │ ├── README.md │ ├── docker-entrypoint.sh │ ├── postgresql.conf │ └── trunk-install.sh ├── mkdocs.yml ├── pyproject.toml ├── registry ├── .env.sample ├── .github │ └── workflows │ │ └── build-push.yml ├── .gitignore ├── .sqlx │ ├── query-002d293c501005c025256289cb7ef4f89f767c53ad62a544b68cb7e8f6750c96.json │ ├── query-00e47bbd59d3b7c8bf522874ee92efe5d929da89c7a810d6ecda63f91aace768.json │ ├── query-0a50fee432e167aa3029cebb8c6393ec5ef754131301b698199a4fefa43e2e33.json │ ├── query-12ce7de3da92187f4468a89f5e1795da2b0471f90373200a5870448dae264aa0.json │ ├── query-13f5a1bc9134e46f5afd23f334b270a5e0daccd7021955c708aa1554d7aa1b05.json │ ├── query-152d01b0e157fa58129e96f5bd3e7536e393feb12f12adcafadbabebd0918fa9.json │ ├── query-1d305b40cb84e8ed2a3f1ed57a9bc8375387a13936128bf91ae5f30e0ee75d5e.json │ ├── query-1dee7b02e97b471263351d60ab6a3d8a2fe83a4113749e037d246df718457925.json │ ├── query-246a9f7369555b2fbedcc5db3ac5a84ce5c889b227095a07e420b7b0b4a3ea3b.json │ ├── query-248a5a4eece6a88e283e65a41eee6d11e9010ab4c2d815c7cc39cc09ae813a67.json │ ├── query-2898d7f3b57a07860872d2675506faf25583f041b6862d77a3e6fab1dc54d847.json │ ├── query-293879a01947fadc812b0a4edd6e128a33917c8cd66cc4844c1101e95163c0c3.json │ ├── query-2aa8ecff6be8c81144a148b7186424971aba6c06382692a0b26e37b03d68bce8.json │ ├── query-2ecd97b9bf16c6fdbd6fd96122fb24930ffd0c2fc978fd73af9e89847bf92e03.json │ ├── query-322f076984933b14a9c5c813ecdd955684ca03f47dfa6b5fec3bd86dbd8edba1.json │ ├── query-32bf8a72aba8e810d4f1303ea516056784356965be367ec8427c5dd374ea937e.json │ ├── query-36bc3613b2f0f2bf8347edc3ddc1c117a164f45f16195ff92c05f2eb764779bd.json │ ├── query-399e2d821efc414f5ec8e274d588b6e67fbfcb1366d2f637bc6f111d9b778b41.json │ ├── query-3d97358d04299f979123dc42ac48c1dfa5bffb9f042288edd43d43a9c7fec68c.json │ ├── query-3ef18da25f5c0eeee1c92761e66a68d3733eb17380b5c1863097843fdeef0c1e.json │ ├── query-49a41631cfe21efe58022e6e4026e6f3d388d8bb12ac478dbf30addab78d430e.json │ ├── query-4b2365bc80293846957f284d63c2d23a2ac6d2e3629e1f836f12c0eca2dd4339.json │ ├── query-4ba793c5e681f2bec3e50c82ab9ec580a7f76660cee45f585a368758266b781d.json │ ├── query-4db2be5140f4d7c0edebcf62616e8ce97c5479134580a654727fbe4a83435319.json │ ├── query-5650cfabaad409805e475fa8677e93ee489ee6e2f95d811635ec6b6ffbcce688.json │ ├── query-68d793399afe7fff28bd42fa91c4d25389eb5e90a451694d779ef8a8f1125de0.json │ ├── query-6991d9aae9d130b3d209ea5816847f661979e07c07f754c15e9b05eee3d61cb6.json │ ├── query-69ef7c7c79e69f31731a41417a0047562f0806a7c73eb4bb98c9ed554fff3b7c.json │ ├── query-6d236366a29a5dac43d66e0be6e074372fa56b2ef1bac0e375af204c1a43a3f2.json │ ├── query-6fb00641c96791a0649d1d9de69f71f87e00eca5661ad53b234b19fd1d8e7ef9.json │ ├── query-72250de71fdc4e1f66965a25bd6ebf5f4ea5566013706b61c0ba028367102a98.json │ ├── query-756737edb5733514dcb510266ab577703d9cf4cb7f61702d7a4a15962fc8ae87.json │ ├── query-79e13abe94a7d583d810c88d18272123f18672525f3d83254069b0979c35583b.json │ ├── query-7a931ec93bcc1516737bfc65fd24b339401996a7f23891c7770a3b5b5c79ffc2.json │ ├── query-7c0f23131094cf9610841295fd1d44733450affe0f01d42e55204419cd376f7a.json │ ├── query-7d372fca1ed8b3cd12573033e0329361636b95ffb41b9e13be2844755ab37a75.json │ ├── query-7fa6e9c87a3295c5e95d71b9cad78194203613d041aea85816a4a71c3f4ac3df.json │ ├── query-805d20f064e4a323d42c611f4719bd0fa4c152c330ff572609310fa306971468.json │ ├── query-8a3643fa646f1768ce6b3abdc949b6daade8f796a8f2b9a388f436e486425299.json │ ├── query-93dcb7f60cd6ddf42247b883db9771b15507aa0ceda52091c4886f55493a6b59.json │ ├── query-96580469248d5d6ece759276b0bf46cd3444339140cfac659388a846b1584402.json │ ├── query-9921932de47d84b6a79a6f5fb29b77301d8a3a2e9acefbc97612952da86e6887.json │ ├── query-9e637cbebc5b0e977d84dacd9392572be5113b3ccca926e4cfeb3787d9e5a8c2.json │ ├── query-a355d51ccf9b49a96bf62078f00fb982ba11a3026d8b9f120d948b6c5e40d317.json │ ├── query-a58bdc12504edda01f8c370c35cb064147fd14e6767f1ed3939f5bea60bf79fa.json │ ├── query-ac75c8170d5f5bc2fa5c48cdec0ec8899a2cfd1fd679e3656fe95c19650e5bd3.json │ ├── query-b14dd62cf7bee8504f20f10da0b5236a52adf648f945ddd038c6b351dd5a3ee6.json │ ├── query-ba0aacc024a0e656c5294bace29609287aef47b6b35c2ce4bd34765d15f20210.json │ ├── query-bd184a09a0f45acc606a45ef90e0e41c500128881c1284374823f53c978b527d.json │ ├── query-bdd38a42eae77d1ff93284a7a26973190408d533f19a7972bd9932c7204f5e33.json │ ├── query-c014b2d3790420459dc18dae6ab8aef660381253bae7166e00a9ff8fe124f7e0.json │ ├── query-c390e218569ef66621ae5e01addfe5ee1d83cd86496f388846604862bd3510c4.json │ ├── query-da8d71c18c746ac07a83c970bffec92a6ea2380bf8e480122fdd2ada4a3ac616.json │ ├── query-df748c7032fb55c4f9ee6e068de22ab42b54930d824614bd9fe8c8ac98dbe73a.json │ ├── query-e41ccd0b4b07c1761d78d4de2efdba33979114f1b055db3261af653afca8be56.json │ ├── query-f29a9769c67e94ef0eb534c3ea009496dc13426c6d46f545ada1f9ebc9def26b.json │ └── query-f77d6c607d830e7ea1d564c34ec42b998e0c2657f4cdb8a89dd211a29b4a7d65.json ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── Dockerfile.postgres ├── README.md ├── docker-compose.yaml ├── justfile ├── migrations │ ├── 20230402001319_extensions.sql │ ├── 20230402001326_versions.sql │ ├── 20230402002617_versions.sql │ ├── 20230413123400_versions.sql │ ├── 20230503113020_api_tokens.sql │ ├── 20230505011559_extension_owners.sql │ ├── 20230509004025_api_tokens.sql │ ├── 20230509022844_versions.sql │ ├── 20230605170612_categories.sql │ ├── 20230726192933_featured_category.sql │ ├── 20230814162901_extension_name.sql │ ├── 20230821224336_add_system_dependencies_to_versions_table.sql │ ├── 20230825155903_add_shared_preload_libraries_table.sql │ ├── 20230905230634_libraries.sql │ ├── 20230919195237_extensions_detail_vw.sql │ ├── 20230920191655_extensions_detail_vw.sql │ ├── 20231006030851_fill-in-system-deps.sql │ ├── 20231011184807_add-readme-table.sql │ ├── 20231012133409_add-download-count.sql │ ├── 20231017200707_rename-readme-field.sql │ ├── 20231023144549_initial-v1-schema.sql │ ├── 20231025151106_fill_in_v1_trunk_project_and_versions.sql │ ├── 20231025151209_fill_in_v1_extension_versions.sql │ ├── 20231025151340_fix-v1-extension-versions-redundancies.sql │ ├── 20231025205032_fill_in_v1_extension_dependencies.sql │ ├── 20231026130352_fill_in_v1_extensions_loadable_libraries.sql │ ├── 20231121224521_add-v1-postgres-versions.sql │ ├── 20231218173736_add-v1-platform.sql │ ├── 20231218192146_add-v1-control-file.sql │ ├── 20231219033400_add_v1_trunk_project_downloads.sql │ ├── 20231221204029_add-unique-constraints-to-v1-tables.sql │ ├── 20231226145027_add-constraint-to-v1-downloads.sql │ ├── 20240105202943_alter-v1-downloads-constraint.sql │ ├── 20240802164205_add-shared-preload-libraries-unique-constraint.sql │ ├── 20240807190128_add-missing-shared-libraries.sql │ ├── 20241113192924_add-postgresql-17.sql │ └── 20250103230002_libgroonga0.sql ├── postgresql.conf ├── src │ ├── categories.rs │ ├── config.rs │ ├── db_sync.rs │ ├── download.rs │ ├── errors.rs │ ├── extensions.rs │ ├── lib.rs │ ├── main.rs │ ├── openapi.rs │ ├── readme.rs │ ├── repository.rs │ ├── repository │ │ ├── category.rs │ │ ├── extension.rs │ │ └── remove_extension.rs │ ├── routes.rs │ ├── routes │ │ ├── categories.rs │ │ ├── download.rs │ │ ├── extensions.rs │ │ ├── readmes.rs │ │ ├── root.rs │ │ └── token.rs │ ├── server.rs │ ├── token.rs │ ├── uploader.rs │ ├── v1.rs │ ├── v1 │ │ ├── extractor.rs │ │ ├── forms.rs │ │ ├── repository.rs │ │ ├── responses.rs │ │ └── routes.rs │ ├── views.rs │ └── views │ │ ├── extension_publish.rs │ │ └── user_info.rs └── tests │ ├── integration_test.rs │ └── v1_integration_test.rs ├── trunk-auth ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src │ ├── App.test.tsx │ ├── App.tsx │ ├── RequestCard.tsx │ ├── api.ts │ ├── index.css │ ├── index.tsx │ ├── logo.svg │ ├── react-app-env.d.ts │ ├── reportWebVitals.ts │ └── setupTests.ts └── tsconfig.json ├── ui-archive ├── .eslintrc.json ├── .gitignore ├── README.md ├── components │ ├── ExtensionSearchBox │ │ ├── ExtensionSearchBox.module.scss │ │ └── index.tsx │ ├── Footer │ │ ├── Footer.module.scss │ │ └── index.tsx │ ├── Header │ │ ├── Header.module.scss │ │ └── index.tsx │ ├── Hero │ │ ├── Hero.module.scss │ │ └── index.tsx │ └── LoadingSpinner │ │ ├── LoadingSpinner.module.scss │ │ └── index.tsx ├── lib │ ├── fetchExtensions.ts │ ├── formatDate.ts │ └── truncateString.ts ├── next.config.js ├── package-lock.json ├── package.json ├── pages │ ├── _app.tsx │ ├── _document.tsx │ ├── extensions │ │ ├── [extName].tsx │ │ └── extensionDetail.module.scss │ ├── index.module.scss │ ├── index.tsx │ ├── search │ │ ├── index.tsx │ │ └── search.module.scss │ ├── sso-callback.tsx │ └── user │ │ ├── [username].tsx │ │ └── user.module.scss ├── public │ ├── favicon.ico │ └── images │ │ ├── CoreDB.svg │ │ ├── Logo.svg │ │ ├── github.svg │ │ └── trunk_logo.svg ├── styles │ └── globals.scss ├── tsconfig.json └── types.ts └── ui ├── .eslintrc.json ├── .gitignore ├── .prettierrc.json ├── README.md ├── next.config.js ├── package-lock.json ├── package.json ├── public ├── LinkIcon.png ├── OctocatIcon.png ├── TemboElephant.png ├── TrunkLogo.png ├── bg_text.png ├── copy.png ├── favicon.ico ├── information.png ├── og-image.png ├── slack_logo.png └── trunk_logo.png ├── src ├── Components │ ├── Categories │ │ ├── categories.module.scss │ │ └── index.tsx │ ├── ExtGrid │ │ ├── extGrid.module.scss │ │ └── index.tsx │ ├── Footer │ │ ├── footer.module.scss │ │ └── index.tsx │ ├── Header │ │ ├── header.module.scss │ │ └── index.tsx │ ├── Hero │ │ ├── hero.module.scss │ │ └── index.tsx │ ├── InfoIcon │ │ ├── index.tsx │ │ └── info-icon.module.scss │ └── Search │ │ ├── index.tsx │ │ └── search.module.scss ├── formatDate.ts ├── globals.scss ├── hooks │ └── useExtList.ts ├── pages │ ├── _app.tsx │ ├── _document.tsx │ ├── extensions │ │ └── [ext] │ │ │ ├── extension.module.scss │ │ │ └── index.tsx │ ├── index.module.scss │ ├── index.tsx │ └── search │ │ └── index.tsx ├── stringHelpers.ts ├── styles │ └── markdown.css ├── types.ts └── variables.scss └── tsconfig.json /.envrc: -------------------------------------------------------------------------------- 1 | # https://direnv.net 2 | export DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres 3 | -------------------------------------------------------------------------------- /.github/runs-on.yml: -------------------------------------------------------------------------------- 1 | # Inherit from the tembo-io/infrastructure repo 2 | # https://runs-on.com/configuration/repo-config/ 3 | _extends: infrastructure 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | temp.sh 2 | .DS_Store 3 | **/.DS_Store 4 | poetry.lock 5 | site/ 6 | .vscode/ 7 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @theory @vrmiguel 2 | /ui/ @DarrenBaldwin07 @vrmiguel 3 | -------------------------------------------------------------------------------- /assets/trunk-install.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/assets/trunk-install.gif -------------------------------------------------------------------------------- /assets/trunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/assets/trunk.png -------------------------------------------------------------------------------- /cli/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 6 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 7 | Cargo.lock 8 | 9 | # These are backup files generated by rustfmt 10 | **/*.rs.bk 11 | 12 | .trunk/** 13 | .idea 14 | .DS_Store 15 | .env 16 | -------------------------------------------------------------------------------- /cli/src/commands/builders/Dockerfile.generic: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=15 2 | 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | COPY --chown=postgres:postgres . . 6 | 7 | USER root 8 | 9 | RUN make 10 | -------------------------------------------------------------------------------- /cli/src/commands/builders/Dockerfile.pgrx: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=15 2 | ARG PGRX_VERSION=0.8.2 3 | 4 | FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx${PGRX_VERSION} 5 | 6 | ARG PG_VERSION=15 7 | ARG PGRX_VERSION=0.8.2 8 | 9 | WORKDIR /app 10 | 11 | COPY --chown=postgres:postgres . . 12 | 13 | ARG EXTENSION_NAME 14 | ARG EXTENSION_VERSION 15 | 16 | RUN cargo pgrx package 17 | -------------------------------------------------------------------------------- /cli/src/commands/mod.rs: -------------------------------------------------------------------------------- 1 | use async_trait::async_trait; 2 | use tokio_task_manager::Task; 3 | 4 | pub mod build; 5 | pub mod categories; 6 | mod containers; 7 | mod generic_build; 8 | pub mod install; 9 | pub mod license; 10 | mod pgrx; 11 | pub mod publish; 12 | pub mod verify; 13 | 14 | #[async_trait] 15 | pub trait SubCommand { 16 | async fn execute(&self, task: Task) -> Result<(), anyhow::Error>; 17 | } 18 | -------------------------------------------------------------------------------- /cli/src/tui.rs: -------------------------------------------------------------------------------- 1 | pub struct Rgb { 2 | pub r: u8, 3 | pub g: u8, 4 | pub b: u8, 5 | } 6 | 7 | pub const TRUNK_SAND_COLOR: Rgb = Rgb { 8 | r: 255, 9 | g: 247, 10 | b: 240, 11 | }; 12 | 13 | pub fn indent(amount: u32) -> String { 14 | let mut new_amount = String::new(); 15 | 16 | for _ in 0..amount { 17 | new_amount.push('\n'); 18 | } 19 | new_amount 20 | } 21 | -------------------------------------------------------------------------------- /cli/tests/.gitignore: -------------------------------------------------------------------------------- 1 | .trunk 2 | .trunk/** 3 | -------------------------------------------------------------------------------- /cli/tests/artifact-v1/my_extension-0.0.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/cli/tests/artifact-v1/my_extension-0.0.0.tar.gz -------------------------------------------------------------------------------- /cli/tests/test_builders/Dockerfile.http: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # this is the extra library we need to build pgsql-http 5 | USER root 6 | RUN apt-get update && apt-get install -y libcurl4-openssl-dev 7 | 8 | # Clone and build the extension. 9 | # ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/pramsey/pgsql-http.git \ 12 | && make -C pgsql-http 13 | -------------------------------------------------------------------------------- /cli/tests/test_dir_field/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | ADD ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip . 9 | RUN unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && make -C ${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /cli/tests/test_dir_field/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pair" 3 | version = "0.1.7" 4 | repository = "https://github.com/theory/kv-pair/" 5 | license = "PostgreSQL" 6 | description = "A key/value pair data type" 7 | documentation = "https://pgxn.org/dist/pair/doc/pair.html" 8 | categories = ["data_transformations"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | dockerfile = "Dockerfile" 13 | platform = "linux/amd64" 14 | install_command = "make install" 15 | -------------------------------------------------------------------------------- /cli/tests/test_dir_field/pair-0.1.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/cli/tests/test_dir_field/pair-0.1.7.zip -------------------------------------------------------------------------------- /cli/tests/test_pgrx_extension/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.'cfg(target_os="macos")'] 2 | # Postgres symbols won't be available until runtime 3 | rustflags = ["-Clink-arg=-Wl,-undefined,dynamic_lookup"] 4 | -------------------------------------------------------------------------------- /cli/tests/test_pgrx_extension/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | /target 4 | *.iml 5 | **/*.rs.bk 6 | Cargo.lock 7 | Dockerfile 8 | -------------------------------------------------------------------------------- /cli/tests/test_pgrx_extension/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "test_pgrx_extension" 3 | version = "0.0.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [features] 11 | default = ["pg15"] 12 | pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] 13 | pg_test = [] 14 | 15 | [dependencies] 16 | pgrx = "=0.8.0" 17 | 18 | [dev-dependencies] 19 | pgrx-tests = "=0.8.0" 20 | 21 | [profile.dev] 22 | panic = "unwind" 23 | lto = "thin" 24 | 25 | [profile.release] 26 | panic = "unwind" 27 | opt-level = 3 28 | lto = "fat" 29 | codegen-units = 1 30 | -------------------------------------------------------------------------------- /cli/tests/test_pgrx_extension/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Test license file. -------------------------------------------------------------------------------- /cli/tests/test_pgrx_extension/test_pgrx_extension.control: -------------------------------------------------------------------------------- 1 | comment = 'test_pgrx_extension: Created by pgrx' 2 | default_version = '@CARGO_VERSION@' 3 | module_pathname = '$libdir/test_pgrx_extension' 4 | relocatable = false 5 | superuser = false 6 | -------------------------------------------------------------------------------- /cli/tests/test_postgresql_unit/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "postgresql_unit" 3 | version = "7.10.0" 4 | repository = "https://github.com/df7cb/postgresql-unit" 5 | license = "Copyright" 6 | description = "SI Units for PostgreSQL." 7 | documentation = "https://github.com/df7cb/postgresql-unit" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C postgresql-unit install" 18 | # Tell trunk to include unit_prefixes.data and unit_units.data. 19 | include = ["*.data"] 20 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pg_cron/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/citusdata/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.'cfg(target_os="macos")'] 2 | # Postgres symbols won't be available until runtime 3 | rustflags = ["-Clink-arg=-Wl,-undefined,dynamic_lookup"] 4 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | /target 4 | *.iml 5 | **/*.rs.bk 6 | Cargo.lock 7 | Dockerfile 8 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pgrx_with_trunk_toml" 3 | version = "0.0.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [features] 11 | default = ["pg15"] 12 | pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] 13 | pg_test = [] 14 | 15 | [dependencies] 16 | pgrx = "=0.8.0" 17 | 18 | [dev-dependencies] 19 | pgrx-tests = "=0.8.0" 20 | 21 | [profile.dev] 22 | panic = "unwind" 23 | lto = "thin" 24 | 25 | [profile.release] 26 | panic = "unwind" 27 | opt-level = 3 28 | lto = "fat" 29 | codegen-units = 1 30 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Test license file. -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgrx_with_trunk_toml" 3 | extension_name = "extension_name_from_toml" 4 | version = "0.0.0" 5 | repository = "https://github.com/tembo-io/trunk" 6 | license = "PostgreSQL" 7 | categories = [] 8 | loadable_libraries = [ 9 | { library_name = "shared_preload_libraries_from_toml", requires_restart = true, priority = 1 }, 10 | { library_name = "another_shared_preload_library", requires_restart = false, priority = 2 } 11 | ] 12 | 13 | [build] 14 | platform = "linux/amd64" 15 | install_command = "" 16 | 17 | [dependencies] 18 | apt = ["libpq5"] 19 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml/pgrx_with_trunk_toml.control: -------------------------------------------------------------------------------- 1 | comment = 'test_pgrx_extension: Created by pgrx' 2 | default_version = '@CARGO_VERSION@' 3 | module_pathname = '$libdir/test_pgrx_extension' 4 | relocatable = false 5 | superuser = false 6 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.'cfg(target_os="macos")'] 2 | # Postgres symbols won't be available until runtime 3 | rustflags = ["-Clink-arg=-Wl,-undefined,dynamic_lookup"] 4 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | /target 4 | *.iml 5 | **/*.rs.bk 6 | Cargo.lock 7 | Dockerfile 8 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "test_pgrx_extension" 3 | version = "0.0.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [features] 11 | default = ["pg15"] 12 | pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] 13 | pg_test = [] 14 | 15 | [dependencies] 16 | pgrx = "=0.8.0" 17 | 18 | [dev-dependencies] 19 | pgrx-tests = "=0.8.0" 20 | 21 | [profile.dev] 22 | panic = "unwind" 23 | lto = "thin" 24 | 25 | [profile.release] 26 | panic = "unwind" 27 | opt-level = 3 28 | lto = "fat" 29 | codegen-units = 1 30 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Test license file. -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "wrong_name" 3 | version = "0.0.0" 4 | repository = "https://github.com/tembo-io/trunk" 5 | license = "PostgreSQL" 6 | categories = [] 7 | 8 | [build] 9 | platform = "linux/amd64" 10 | install_command = "" 11 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_name/test_pgrx_extension.control: -------------------------------------------------------------------------------- 1 | comment = 'test_pgrx_extension: Created by pgrx' 2 | default_version = '@CARGO_VERSION@' 3 | module_pathname = '$libdir/test_pgrx_extension' 4 | relocatable = false 5 | superuser = false 6 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.'cfg(target_os="macos")'] 2 | # Postgres symbols won't be available until runtime 3 | rustflags = ["-Clink-arg=-Wl,-undefined,dynamic_lookup"] 4 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | /target 4 | *.iml 5 | **/*.rs.bk 6 | Cargo.lock 7 | Dockerfile 8 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "test_pgrx_extension" 3 | version = "0.0.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [features] 11 | default = ["pg15"] 12 | pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] 13 | pg_test = [] 14 | 15 | [dependencies] 16 | pgrx = "=0.8.0" 17 | 18 | [dev-dependencies] 19 | pgrx-tests = "=0.8.0" 20 | 21 | [profile.dev] 22 | panic = "unwind" 23 | lto = "thin" 24 | 25 | [profile.release] 26 | panic = "unwind" 27 | opt-level = 3 28 | lto = "fat" 29 | codegen-units = 1 30 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Test license file. -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "test_pgrx_extension" 3 | version = "0.0.1" 4 | repository = "https://github.com/tembo-io/trunk" 5 | license = "PostgreSQL" 6 | categories = [] 7 | 8 | [build] 9 | platform = "linux/amd64" 10 | install_command = "" 11 | -------------------------------------------------------------------------------- /cli/tests/test_trunk_toml_dirs/pgrx_with_trunk_toml_bad_version/test_pgrx_extension.control: -------------------------------------------------------------------------------- 1 | comment = 'test_pgrx_extension: Created by pgrx' 2 | default_version = '@CARGO_VERSION@' 3 | module_pathname = '$libdir/test_pgrx_extension' 4 | relocatable = false 5 | superuser = false 6 | -------------------------------------------------------------------------------- /contrib/.gitignore: -------------------------------------------------------------------------------- 1 | **/.trunk/** 2 | -------------------------------------------------------------------------------- /contrib/README.md: -------------------------------------------------------------------------------- 1 | # Trunk extensions directory 2 | 3 | ## Adding extensions 4 | 5 | - Install trunk, latest version 6 | - Create a new directory with the name of your extension 7 | - Create a `Dockerfile` and `Trunk.toml` file, use other directories as examples 8 | - Run `trunk build` in your directory to test your build 9 | -------------------------------------------------------------------------------- /contrib/adminpack/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/age/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "age" 3 | version = "1.5.0" 4 | repository = "https://github.com/apache/age" 5 | license = "Apache-2.0" 6 | description = "Leverage a graph database on top of the existing relational database." 7 | homepage = "https://age.apache.org/" 8 | documentation = "https://age.apache.org/age-manual/master/index.html" 9 | categories = ["data_transformations"] 10 | loadable_libraries = [{ library_name = "age", requires_restart = true }] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "cd age && make install" 17 | -------------------------------------------------------------------------------- /contrib/aggs_for_vecs/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/pjungwir/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/amcheck/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/argm/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=b8b2db3 8 | RUN git clone https://github.com/bashtanov/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && git checkout ${RELEASE} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/argm/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "argm" 3 | version = "1.1.2" 4 | repository = "https://github.com/bashtanov/argm" 5 | license = "PostgreSQL" 6 | description = "Argm postgresql extension: argmax/argmin and anyold aggregate functions." 7 | documentation = "https://github.com/bashtanov/argm" 8 | categories = ["query_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C argm install" 18 | -------------------------------------------------------------------------------- /contrib/bloom/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/chkpass/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | # ARG EXTENSION_VERSION 6 | ARG RELEASE=87159fd 7 | RUN git clone https://github.com/lacanoid/${EXTENSION_NAME}.git \ 8 | && cd ${EXTENSION_NAME} \ 9 | && git checkout ${RELEASE} \ 10 | && make 11 | -------------------------------------------------------------------------------- /contrib/chkpass/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "chkpass" 3 | version = "1.0.0" 4 | repository = "https://github.com/lacanoid/chkpass" 5 | license = "" 6 | description = "Stand alone version of chkpass type for PG 11+." 7 | documentation = "https://github.com/lacanoid/chkpass" 8 | categories = ["security"] 9 | 10 | [dependencies] 11 | apt = ["libcrypt1", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C chkpass install" 18 | -------------------------------------------------------------------------------- /contrib/clickhouse_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y \ 8 | cmake \ 9 | libcurl4-openssl-dev \ 10 | uuid-dev 11 | 12 | # Clone and build the extension. 13 | ARG EXTENSION_NAME 14 | ARG EXTENSION_VERSION 15 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/ildus/${EXTENSION_NAME}.git \ 16 | && cmake -S ${EXTENSION_NAME} -B ${EXTENSION_NAME}/build \ 17 | && make -C ${EXTENSION_NAME}/build -j8 18 | -------------------------------------------------------------------------------- /contrib/clickhouse_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "clickhouse_fdw" 3 | version = "1.4.0" 4 | repository = "https://github.com/ildus/clickhouse_fdw" 5 | license = "Apache-2.0" 6 | description = "ClickHouse FDW for PostgreSQL." 7 | documentation = "https://github.com/ildus/clickhouse_fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libstdc++6", "libc6", "libgcc-s1"," libuuid1", "libcurl4"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C clickhouse_fdw/build install" 18 | -------------------------------------------------------------------------------- /contrib/colnames/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O "https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 8 | && unzip "${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 9 | && make -C "${EXTENSION_NAME}-${EXTENSION_VERSION}" 10 | WORKDIR "/app/${EXTENSION_NAME}-${EXTENSION_VERSION}" 11 | -------------------------------------------------------------------------------- /contrib/colnames/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "colnames" 3 | version = "1.7.1" 4 | repository = "https://github.com/theory/colnames" 5 | license = "PostgreSQL" 6 | description = "Lists the column names in a PostgreSQL RECORD value." 7 | categories = ["tooling_admin"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make install" 17 | -------------------------------------------------------------------------------- /contrib/count_distinct/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Download and build extension 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/count_distinct/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "count_distinct" 3 | version = "3.0.2" 4 | repository = "https://github.com/tvondra/count_distinct" 5 | license = "BSD-2-Clause" 6 | description = "An extension with alternative to COUNT(DISTINCT ...) aggregate in PostgreSQL." 7 | documentation = "https://github.com/tvondra/count_distinct" 8 | categories = ["query_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/credcheck/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/HexaCluster/${EXTENSION_NAME}.git \ 12 | && make -C ${EXTENSION_NAME} 13 | -------------------------------------------------------------------------------- /contrib/cube/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/db_migrator/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "RELEASE_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/db_migrator/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "db_migrator" 3 | version = "1.0.0" 4 | repository = "https://github.com/cybertec-postgresql/db_migrator" 5 | license = "Copyright" 6 | description = "Functions for migrating databases from other data sources to PostgreSQL." 7 | homepage = "https://www.cybertec-postgresql.com/en/" 8 | documentation = "https://github.com/cybertec-postgresql/db_migrator" 9 | categories = ["connectors"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C db_migrator install" 16 | -------------------------------------------------------------------------------- /contrib/duckdb_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "duckdb_fdw" 3 | version = "1.1.3" 4 | repository = "https://github.com/alitrack/duckdb_fdw" 5 | license = "MIT" 6 | description = "This PostgreSQL extension implements a Foreign Data Wrapper (FDW) for DuckDB." 7 | homepage = "https://alitrack.com/" 8 | documentation = "https://github.com/alitrack/duckdb_fdw" 9 | categories = ['connectors'] 10 | 11 | [dependencies] 12 | lib = ["libduckdb"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C duckdb_fdw install USE_PGXS=1" 19 | -------------------------------------------------------------------------------- /contrib/emaj/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | 7 | RUN curl -O https://api.pgxn.org/dist/e-maj/${EXTENSION_VERSION}/e-maj-${EXTENSION_VERSION}.zip \ 8 | && unzip e-maj-${EXTENSION_VERSION}.zip \ 9 | && cd e-maj-${EXTENSION_VERSION} \ 10 | && perl -i -pe 's/#directory/directory/' ${EXTENSION_NAME}.control \ 11 | && make 12 | WORKDIR /app/e-maj-${EXTENSION_VERSION} 13 | -------------------------------------------------------------------------------- /contrib/emaj/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "emaj" 3 | version = "4.6.0" 4 | repository = "https://github.com/dalibo/emaj" 5 | license = "GPL-3.0" 6 | description = "Fine-grained write logging and time travel on subsets of the DB" 7 | documentation = "https://emaj.readthedocs.io/en/latest/" 8 | categories = ["auditing_logging", "metrics"] 9 | 10 | [dependencies] 11 | apt = ["libstdc++6", "libgcc-s1", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/envvar/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build extension 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/extra_window_functions/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/xocolatl/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/extra_window_functions/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "extra_window_functions" 3 | version = "1.0.0" 4 | repository = "https://github.com/xocolatl/extra_window_functions" 5 | license = "PostgreSQL" 6 | description = "Extra Window Functions for PostgreSQL." 7 | documentation = "https://github.com/xocolatl/extra_window_functions" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C extra_window_functions install" 18 | -------------------------------------------------------------------------------- /contrib/h3_pg/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y cmake 8 | 9 | # Clone and build the extension. 10 | # ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/zachasme/h3-pg.git \ 13 | && make -C h3-pg -------------------------------------------------------------------------------- /contrib/h3_pg/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "h3_pg" 3 | version = "4.2.2" 4 | repository = "https://github.com/zachasme/h3-pg" 5 | license = "Apache-2.0" 6 | description = "PostgreSQL bindings for H3." 7 | documentation = "https://github.com/zachasme/h3-pg" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C h3-pg install" 18 | -------------------------------------------------------------------------------- /contrib/hostname/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O "https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 8 | && unzip "${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 9 | && make -C "${EXTENSION_NAME}-${EXTENSION_VERSION}" 10 | WORKDIR "/app/${EXTENSION_NAME}-${EXTENSION_VERSION}" 11 | -------------------------------------------------------------------------------- /contrib/hostname/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "hostname" 3 | version = "1.0.4" 4 | repository = "https://github.com/theory/pg-hostname" 5 | license = "PostgreSQL" 6 | description = "Provides a function that returns the host name of the database server." 7 | categories = ["tooling_admin"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make install" 17 | -------------------------------------------------------------------------------- /contrib/hydra_columnar/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libcurl4-openssl-dev \ 9 | liblz4-dev \ 10 | libzstd-dev 11 | 12 | # ARG EXTENSION_NAME 13 | ARG EXTENSION_VERSION 14 | 15 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/hydradatabase/hydra.git \ 16 | && cd hydra/columnar \ 17 | && ./configure \ 18 | && make 19 | -------------------------------------------------------------------------------- /contrib/hydra_columnar/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "hydra_columnar" 3 | version = "1.1.2" 4 | repository = "https://github.com/hydradatabase/hydra" 5 | license = "GNU AGPL" 6 | description = "Columnar storage for Postgres" 7 | homepage = "https://www.hydra.so" 8 | documentation = "https://github.com/hydradatabase/hydra" 9 | categories = ["analytics"] 10 | 11 | [dependencies] 12 | apt = ["libc6", "libzstd1", "liblz4-1"] 13 | 14 | [build] 15 | postgres_version = "16" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C hydra/columnar install" 19 | -------------------------------------------------------------------------------- /contrib/hypopg/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/HypoPG/${EXTENSION_NAME}.git \ 8 | && cd ${EXTENSION_NAME} \ 9 | && make 10 | -------------------------------------------------------------------------------- /contrib/hypopg/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "hypopg" 3 | version = "1.4.1" 4 | repository = "https://github.com/HypoPG/hypopg" 5 | license = "PostgreSQL" 6 | description = "Hypothetical Indexes for PostgreSQL." 7 | documentation = "https://hypopg.readthedocs.io/" 8 | categories = ["index_table_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C hypopg install" 18 | -------------------------------------------------------------------------------- /contrib/icu_ext/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/dverite/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && make 11 | -------------------------------------------------------------------------------- /contrib/icu_ext/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "icu_ext" 3 | version = "1.9.0" 4 | repository = "https://github.com/dverite/icu_ext" 5 | license = "PostgreSQL" 6 | description = "Access ICU functions." 7 | categories = ["data_transformations"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make -C icu_ext install" 14 | -------------------------------------------------------------------------------- /contrib/index_advisor/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/supabase/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && make 11 | -------------------------------------------------------------------------------- /contrib/index_advisor/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "index_advisor" 3 | version = "0.2.0" 4 | repository = "https://github.com/supabase/index_advisor" 5 | license = "PostgreSQL" 6 | description = "A PostgreSQL extension for recommending indexes to improve query performance." 7 | documentation = "https://github.com/supabase/index_advisor" 8 | categories = ["index_table_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C index_advisor install" 18 | -------------------------------------------------------------------------------- /contrib/intagg/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "intagg" 3 | version = "1.1.0" 4 | repository = "https://github.com/postgres/postgres/tree/master/contrib/intagg" 5 | license = "PostgreSQL" 6 | description = "The intagg module provides an integer aggregator and an enumerator." 7 | homepage = "https://www.postgresql.org" 8 | documentation = "https://www.postgresql.org/docs/current/intagg.html" 9 | categories = ["data_transformations"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C postgres/contrib/intagg install USE_PGXS=1" 16 | -------------------------------------------------------------------------------- /contrib/ip4r/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/RhodiumToad/${EXTENSION_NAME}.git \ 8 | && cd ${EXTENSION_NAME} \ 9 | && make 10 | -------------------------------------------------------------------------------- /contrib/ip4r/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "ip4r" 3 | version = "2.4.2" 4 | repository = "https://github.com/RhodiumToad/ip4r" 5 | license = "PostgreSQL" 6 | description = "IPv4/v6 and IPv4/v6 range index type for PostgreSQL." 7 | categories = ["data_transformations"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make -C ip4r install" 17 | -------------------------------------------------------------------------------- /contrib/isn/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/jdbc_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "jdbc_fdw" 3 | version = "1.2.0" 4 | repository = "https://github.com/pgspider/jdbc_fdw" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL Foreign Data Wrapper for JDBC." 7 | documentation = "https://github.com/pgspider/jdbc_fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libpq5", "libc6", "openjdk-18-jre-headless"] 12 | 13 | [build] 14 | postgres_version = "16" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C jdbc_fdw install USE_PGXS=1" 18 | -------------------------------------------------------------------------------- /contrib/kafka_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y librdkafka-dev zlib1g-dev 8 | 9 | ARG EXTENSION_NAME 10 | # ARG EXTENSION_VERSION 11 | ARG RELEASE=c73ab18 12 | RUN git clone https://github.com/adjust/${EXTENSION_NAME}.git \ 13 | && cd ${EXTENSION_NAME} \ 14 | && git checkout ${RELEASE} \ 15 | && make 16 | -------------------------------------------------------------------------------- /contrib/kafka_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "kafka_fdw" 3 | version = "0.0.3" 4 | repository = "https://github.com/adjust/kafka_fdw" 5 | license = "PostgreSQL" 6 | description = "Kafka foreign database wrapper for postresql." 7 | homepage = "https://www.adjust.com/" 8 | documentation = "https://github.com/adjust/kafka_fdw" 9 | categories = ["connectors"] 10 | 11 | [dependencies] 12 | apt = ["librdkafka1", "libc6"] 13 | 14 | [build] 15 | postgres_version = "16" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C kafka_fdw install" 19 | -------------------------------------------------------------------------------- /contrib/lo/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/lower_quantile/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 7 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 9 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 10 | -------------------------------------------------------------------------------- /contrib/lower_quantile/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "lower_quantile" 3 | version = "1.0.3" 4 | repository = "https://github.com/tvondra/lower_quantile" 5 | license = "BSD-2-Clause" 6 | description = "Provides lower_quantile aggregate function." 7 | documentation = "https://github.com/tvondra/lower_quantile" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/ltree/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/meta/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/aquameta/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | # https://github.com/aquameta/meta/pull/39 11 | && printf "requires = 'hstore'\n" >> ${EXTENSION_NAME}.control \ 12 | && make 13 | -------------------------------------------------------------------------------- /contrib/meta/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "meta" 3 | version = "0.3.0" 4 | repository = "https://github.com/aquameta/meta" 5 | license = "BSD-2-Clause" 6 | description = "Normalized, friendlier system catalog for PostgreSQL." 7 | documentation = "https://github.com/aquameta/meta" 8 | categories = ["tooling_admin"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C meta install" 15 | -------------------------------------------------------------------------------- /contrib/meta_triggers/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION=15 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/aquameta/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | # https://github.com/aquameta/meta/pull/39 11 | && printf "requires = 'meta'\n" >> ${EXTENSION_NAME}.control \ 12 | && make 13 | -------------------------------------------------------------------------------- /contrib/meta_triggers/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "meta_triggers" 3 | version = "0.4.0" 4 | repository = "https://github.com/aquameta/meta_triggers" 5 | license = "BSD-2-Clause" 6 | description = "PostgreSQL Extension: Insert, update and delete triggers that make the meta extension writable." 7 | documentation = "https://github.com/aquameta/meta_triggers" 8 | categories = ["tooling_admin"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C meta_triggers install" 15 | -------------------------------------------------------------------------------- /contrib/multicorn/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "multicorn" 3 | version = "3.0.0" 4 | repository = "https://github.com/pgsql-io/multicorn2" 5 | license = "PostgreSQL" 6 | description = "Multicorn is a PostgreSQL extension that allows you to create foreign data wrappers in Python." 7 | homepage = "https://github.com/pgsql-io/multicorn2" 8 | documentation = "https://github.com/pgsql-io/multicorn2/blob/main/README.md" 9 | categories = ["connectors"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C multicorn install" -------------------------------------------------------------------------------- /contrib/mysql_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "mysql_fdw" 3 | version = "1.2.0" 4 | repository = "https://github.com/EnterpriseDB/mysql_fdw" 5 | license = "Copyright" 6 | description = "This PostgreSQL extension implements a Foreign Data Wrapper (FDW) for MySQL." 7 | homepage = "https://www.enterprisedb.com/" 8 | documentation = "https://github.com/EnterpriseDB/mysql_fdw" 9 | categories = ["connectors"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C mysql_fdw install USE_PGXS=1" 19 | -------------------------------------------------------------------------------- /contrib/ora_migrator/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "RELEASE_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/ora_migrator/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "ora_migrator" 3 | version = "1.0.0" 4 | repository = "https://github.com/cybertec-postgresql/ora_migrator" 5 | license = "Copyright" 6 | description = "Tools for Oracle to PostgreSQL migration." 7 | documentation = "https://github.com/cybertec-postgresql/ora_migrator" 8 | categories = ["connectors"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C ora_migrator install" 15 | -------------------------------------------------------------------------------- /contrib/oracle_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "oracle_fdw" 3 | version = "1.2.0" 4 | repository = "https://github.com/laurenz/oracle_fdw" 5 | license = "Copyright" 6 | description = "PostgreSQL Foreign Data Wrapper for Oracle." 7 | documentation = "https://github.com/laurenz/oracle_fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C oracle_fdw install USE_PGXS=1" 18 | -------------------------------------------------------------------------------- /contrib/orafce/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/orafce/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "orafce" 3 | version = "4.14.3" 4 | repository = "https://github.com/orafce/orafce" 5 | license = "0BSD" 6 | description = "Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS." 7 | documentation = "https://github.com/orafce/orafce" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/periods/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/xocolatl/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/periods/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "periods" 3 | version = "1.2.2" 4 | repository = "https://github.com/xocolatl/periods" 5 | license = "PostgreSQL" 6 | description = "This extension recreates the behavior defined in SQL:2016 (originally in SQL:2011) around periods and tables with SYSTEM VERSIONING." 7 | documentation = "https://github.com/xocolatl/periods" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C periods install" 18 | -------------------------------------------------------------------------------- /contrib/permuteseq/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/dverite/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/permuteseq/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "permuteseq" 3 | version = "1.2.2" 4 | repository = "https://github.com/dverite/permuteseq" 5 | license = "PostgreSQL" 6 | description = "Pseudo-randomly permute sequences with a format-preserving encryption on elements." 7 | categories = ["analytics"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make -C permuteseq install" 14 | -------------------------------------------------------------------------------- /contrib/pg_anonymize/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG REVISION=692b354 8 | 9 | # Clone repository and build the extension. 10 | RUN git clone https://github.com/rjuju/${EXTENSION_NAME}.git ${RELEASE} \ 11 | && cd ${EXTENSION_NAME} \ 12 | && git checkout ${REVISION} \ 13 | && make 14 | -------------------------------------------------------------------------------- /contrib/pg_anonymize/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_anonymize" 3 | version = "1.0.0" 4 | repository = "https://github.com/rjuju/pg_anonymize" 5 | license = "GPL-3.0" 6 | description = "PostgreSQL dynamic data anonymization." 7 | documentation = "https://github.com/rjuju/pg_anonymize" 8 | categories = ["security"] 9 | loadable_libraries = [{ library_name = "pg_anonymize", requires_restart = true }] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "15" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_anonymize install" 19 | -------------------------------------------------------------------------------- /contrib/pg_base36/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | 7 | # Extension build dependencies 8 | RUN curl -O https://api.pgxn.org/dist/base36/${EXTENSION_VERSION}/base36-${EXTENSION_VERSION}.zip \ 9 | && unzip base36-${EXTENSION_VERSION}.zip \ 10 | && cd base36-${EXTENSION_VERSION} && make 11 | WORKDIR /app/base36-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_base36/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_base36" 3 | version = "1.1.1" 4 | repository = "https://github.com/adjust/pg-base36" 5 | license = "MIT" 6 | description = "A Base36 extension for PostgreSQL." 7 | categories = ["data_transformations"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make install" 14 | -------------------------------------------------------------------------------- /contrib/pg_base62/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | 7 | # Extension build dependencies 8 | RUN curl -O https://api.pgxn.org/dist/base62/${EXTENSION_VERSION}/base62-${EXTENSION_VERSION}.zip \ 9 | && unzip base62-${EXTENSION_VERSION}.zip \ 10 | && cd base62-${EXTENSION_VERSION} && make 11 | WORKDIR /app/base62-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_base62/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_base62" 3 | version = "0.0.1" 4 | repository = "https://github.com/adjust/pg-base62" 5 | license = "MIT" 6 | description = "A Base62 extension for PostgreSQL." 7 | categories = ["data_transformations"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make install" 14 | -------------------------------------------------------------------------------- /contrib/pg_bigm/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=v1.2-20240606 8 | RUN git clone --depth 1 --branch "${RELEASE}" https://github.com/pgbigm/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} USE_PGXS=1 10 | -------------------------------------------------------------------------------- /contrib/pg_cron/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/citusdata/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_cron/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_cron" 3 | version = "1.6.5" 4 | repository = "https://github.com/citusdata/pg_cron" 5 | license = "PostgreSQL" 6 | description = "Job scheduler for PostgreSQL." 7 | homepage = "https://www.citusdata.com/" 8 | categories = ["orchestration"] 9 | loadable_libraries = [{ library_name = "pg_cron", requires_restart = true }] 10 | 11 | [dependencies] 12 | apt = ["libpq5", "libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_cron install" 19 | -------------------------------------------------------------------------------- /contrib/pg_currency/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | 7 | # Extension build dependencies 8 | RUN curl -O https://api.pgxn.org/dist/currency/${EXTENSION_VERSION}/currency-${EXTENSION_VERSION}.zip \ 9 | && unzip currency-${EXTENSION_VERSION}.zip \ 10 | && cd currency-${EXTENSION_VERSION} && make 11 | WORKDIR /app/currency-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_currency/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_currency" 3 | version = "0.0.4" 4 | repository = "https://github.com/adjust/pg-currency" 5 | license = "MIT" 6 | description = "1 Byte Currency ISO type for PostgreSQL." 7 | homepage = "https://www.adjust.com/" 8 | documentation = "https://github.com/adjust/pg-currency" 9 | categories = ["data_transformations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make install" 19 | -------------------------------------------------------------------------------- /contrib/pg_dbms_job/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/MigOpsRepos/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_dbms_job/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_dbms_job" 3 | version = "1.5.0" 4 | repository = "https://github.com/MigOpsRepos/pg_dbms_job" 5 | license = "PostgreSQL" 6 | description = "Extension to add Oracle DBMS_JOB full compatibility to PostgreSQL." 7 | documentation = "https://github.com/MigOpsRepos/pg_dbms_job" 8 | categories = ["orchestration"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pg_dbms_job install" 15 | -------------------------------------------------------------------------------- /contrib/pg_dirtyread/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/df7cb/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_dirtyread/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_dirtyread" 3 | version = "2.7.0" 4 | repository = "https://github.com/df7cb/pg_dirtyread" 5 | license = "PostgreSQL" 6 | description = "Read dead but unvacuumed tuples from a PostgreSQL relation." 7 | documentation = "https://github.com/df7cb/pg_dirtyread" 8 | categories = ["search"] 9 | 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_dirtyread install" 19 | -------------------------------------------------------------------------------- /contrib/pg_extra_time/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION= 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Download and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_extra_time/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_extra_time" 3 | version = "1.1.2" 4 | repository = "https://github.com/bigsmoke/pg_extra_time" 5 | license = "PostgreSQL" 6 | description = "Additional date time functions." 7 | categories = ["data_transformations"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make install" 14 | -------------------------------------------------------------------------------- /contrib/pg_failover_slots/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/EnterpriseDB/${EXTENSION_NAME}.git \ 12 | && make -C ${EXTENSION_NAME} 13 | -------------------------------------------------------------------------------- /contrib/pg_financial/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/intgr/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_financial/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_financial" 3 | version = "1.0.1" 4 | repository = "https://github.com/intgr/pg_financial" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL extension with functions and aggregates for financial calculations." 7 | documentation = "https://github.com/intgr/pg_financial" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pg_financial install" 18 | -------------------------------------------------------------------------------- /contrib/pg_graphql/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_graphql" 3 | version = "1.5.9" 4 | repository = "https://github.com/supabase/pg_graphql" 5 | license = "Apache-2.0" 6 | description = "pg_graphql adds GraphQL support to your PostgreSQL database." 7 | homepage = "https://supabase.com" 8 | documentation = "https://supabase.github.io/pg_graphql" 9 | categories = ["data_transformations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "cd pg_graphql && cargo pgrx install --release" 19 | -------------------------------------------------------------------------------- /contrib/pg_hashids/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/iCyberon/${EXTENSION_NAME}.git \ 7 | && make -C ${EXTENSION_NAME} 8 | -------------------------------------------------------------------------------- /contrib/pg_hashids/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_hashids" 3 | version = "1.2.1" 4 | repository = "https://github.com/iCyberon/pg_hashids" 5 | license = "MIT" 6 | description = "Hashids is a small open-source library that generates short, unique, non-sequential ids from numbers." 7 | categories = ["data_transformations"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make -C pg_hashids install" 17 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan14/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=14 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "REL14_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/ossc-db/pg_hint_plan.git \ 7 | && make -C pg_hint_plan 8 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan14/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_hint_plan15" 3 | version = "1.4.3" 4 | repository = "https://github.com/ossc-db/pg_hint_plan" 5 | license = "Copyright" 6 | description = "pg_hint_plan makes it possible to tweak PostgreSQL execution plans." 7 | homepage = "http://www.oss.ecl.ntt.co.jp/ossc/" 8 | documentation = "https://github.com/ossc-db/pg_hint_plan" 9 | categories = ["query_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "14" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_hint_plan install" 19 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan15/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=15 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "REL15_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/ossc-db/pg_hint_plan.git \ 7 | && make -C pg_hint_plan 8 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan15/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_hint_plan15" 3 | version = "1.5.2" 4 | repository = "https://github.com/ossc-db/pg_hint_plan" 5 | license = "Copyright" 6 | description = "pg_hint_plan makes it possible to tweak PostgreSQL execution plans." 7 | homepage = "http://www.oss.ecl.ntt.co.jp/ossc/" 8 | documentation = "https://github.com/ossc-db/pg_hint_plan" 9 | categories = ["query_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "15" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_hint_plan install" 19 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan16/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=16 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "REL16_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/ossc-db/pg_hint_plan.git \ 7 | && make -C pg_hint_plan 8 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan16/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_hint_plan16" 3 | version = "1.6.1" 4 | repository = "https://github.com/ossc-db/pg_hint_plan" 5 | license = "Copyright" 6 | description = "pg_hint_plan makes it possible to tweak PostgreSQL execution plans." 7 | homepage = "http://www.oss.ecl.ntt.co.jp/ossc/" 8 | documentation = "https://github.com/ossc-db/pg_hint_plan" 9 | categories = ["query_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "16" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_hint_plan install" 19 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan17/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION=16 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "REL17_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/ossc-db/pg_hint_plan.git \ 7 | && make -C pg_hint_plan 8 | -------------------------------------------------------------------------------- /contrib/pg_hint_plan17/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_hint_plan17" 3 | version = "1.7.0" 4 | repository = "https://github.com/ossc-db/pg_hint_plan" 5 | license = "Copyright" 6 | description = "pg_hint_plan makes it possible to tweak PostgreSQL execution plans." 7 | homepage = "http://www.oss.ecl.ntt.co.jp/ossc/" 8 | documentation = "https://github.com/ossc-db/pg_hint_plan" 9 | categories = ["query_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_hint_plan install" 19 | -------------------------------------------------------------------------------- /contrib/pg_html5_email_address/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | 8 | # Extension build dependencies 9 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 11 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 12 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 13 | -------------------------------------------------------------------------------- /contrib/pg_html5_email_address/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_html5_email_address" 3 | version = "1.2.3" 4 | repository = "https://github.com/bigsmoke/pg_html5_email_address" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL email validation that is consistent with the HTML5 spec." 7 | categories = ["data_transformations"] 8 | 9 | [build] 10 | postgres_version = "17" 11 | platform = "linux/amd64" 12 | dockerfile = "Dockerfile" 13 | install_command = "make install" 14 | -------------------------------------------------------------------------------- /contrib/pg_ivm/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/sraoss/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_ivm/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_ivm" 3 | version = "1.10.0" 4 | repository = "https://github.com/sraoss/pg_ivm" 5 | license = "PostgreSQL" 6 | description = "IVM (Incremental View Maintenance) implementation as a PostgreSQL extension" 7 | homepage = "https://www.sraoss.co.jp/index_en/" 8 | documentation = "https://github.com/sraoss/pg_ivm" 9 | categories = ["change_data_capture"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_ivm install" 19 | -------------------------------------------------------------------------------- /contrib/pg_jsonschema/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.6 3 | 4 | ARG PG_VERSION 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | 8 | USER root 9 | RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ 10 | && /root/.cargo/bin/rustup default stable \ 11 | && git clone --depth 1 --branch v${EXTENSION_VERSION} https://github.com/supabase/${EXTENSION_NAME}.git \ 12 | && cd ${EXTENSION_NAME} \ 13 | && cargo pgrx init --pg${PG_VERSION}=/usr/bin/pg_config \ 14 | && cargo pgrx package 15 | -------------------------------------------------------------------------------- /contrib/pg_mon/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | # ARG EXTENSION_VERSION 6 | ARG RELEASE=e496268 7 | RUN git clone https://github.com/RafiaSabih/${EXTENSION_NAME}.git \ 8 | && cd ${EXTENSION_NAME} \ 9 | && git checkout ${RELEASE} \ 10 | && make 11 | -------------------------------------------------------------------------------- /contrib/pg_mon/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_mon" 3 | version = "1.0.0" 4 | repository = "https://github.com/RafiaSabih/pg_mon" 5 | license = "MIT" 6 | description = "PostgreSQL extension to enhance query monitoring." 7 | documentation = "https://github.com/RafiaSabih/pg_mon" 8 | categories = ["query_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pg_mon install" 18 | -------------------------------------------------------------------------------- /contrib/pg_net/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Install dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libcurl4-openssl-dev 7 | 8 | ARG EXTENSION_NAME 9 | ARG EXTENSION_VERSION 10 | 11 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/supabase/${EXTENSION_NAME}.git \ 12 | && cd ${EXTENSION_NAME} \ 13 | && make 14 | -------------------------------------------------------------------------------- /contrib/pg_orphaned/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=62a222f 8 | RUN git clone https://github.com/bdrouvot/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && git checkout ${RELEASE} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/pg_orphaned/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_orphaned" 3 | version = "1.0.0" 4 | repository = "https://github.com/bdrouvot/pg_orphaned" 5 | license = "PostgreSQL" 6 | description = "Functions relating to orphaned files." 7 | documentation = "https://github.com/bdrouvot/pg_orphaned" 8 | categories = ["data_transformations"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pg_orphaned install" 15 | -------------------------------------------------------------------------------- /contrib/pg_partman/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/pg_partman/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_partman" 3 | version = "5.2.4" 4 | repository = "https://github.com/pgpartman/pg_partman" 5 | license = "PostgreSQL" 6 | description = "Extension to manage partitioned tables by time or ID." 7 | documentation = "https://github.com/pgpartman/pg_partman" 8 | categories = ["featured", "orchestration"] 9 | preload_libraries = ["pg_partman_bgw"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make install" 19 | -------------------------------------------------------------------------------- /contrib/pg_permissions/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "REL_$(perl -E 'print shift =~ s/[.]0$//r =~ s/[.]/_/gr' "${EXTENSION_VERSION}")" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_permissions/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_permissions" 3 | version = "1.3.0" 4 | repository = "https://github.com/cybertec-postgresql/pg_permissions" 5 | license = "Copyright" 6 | description = "A simple set of views to see ALL permissions in a PostgreSQL database." 7 | homepage = "https://www.cybertec-postgresql.com/en/" 8 | documentation = "https://github.com/cybertec-postgresql/pg_permissions" 9 | categories = ["tooling_admin"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C pg_permissions install" 16 | -------------------------------------------------------------------------------- /contrib/pg_proctab/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_proctab" 3 | version = "0.0.12" 4 | repository = "https://gitlab.com/pg_proctab/pg_proctab" 5 | license = "Copyright" 6 | description = "Access operating system process table." 7 | homepage = "https://pg_proctab.gitlab.io/" 8 | documentation = "https://gitlab.com/pg_proctab/pg_proctab" 9 | categories = ["metrics"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make install USE_PGXS=1" 19 | -------------------------------------------------------------------------------- /contrib/pg_quack/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/hydradatabase/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_quack/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_quack" 3 | version = "0.0.1" 4 | repository = "https://github.com/hydradatabase/pg_quack" 5 | license = "Apache-2.0" 6 | description = "PostgreSQL but it's really DuckDB " 7 | homepage = "https://www.hydra.so" 8 | documentation = "https://github.com/hydradatabase/pg_quack" 9 | categories = ["connectors"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "15" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_quack install" 19 | -------------------------------------------------------------------------------- /contrib/pg_qualstats/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/powa-team/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_rational/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/begriffs/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_rational/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_rational" 3 | version = "0.0.2" 4 | repository = "https://github.com/begriffs/pg_rational" 5 | license = "MIT" 6 | description = "Precise fractional arithmetic for PostgreSQL." 7 | documentation = "https://github.com/begriffs/pg_rational" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pg_rational install" 18 | -------------------------------------------------------------------------------- /contrib/pg_repack/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_repack" 3 | version = "1.5.2" 4 | repository = "https://github.com/reorg/pg_repack" 5 | license = "BSD-3-Clause" 6 | description = "pg_repack is a PostgreSQL extension which lets you remove bloat from tables and indexes, and optionally restore the physical order of clustered indexes." 7 | documentation = "https://reorg.github.io/pg_repack/" 8 | categories = ["index_table_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/pg_roaringbitmap/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_roaringbitmap/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_roaringbitmap" 3 | version = "0.5.4" 4 | repository = "https://github.com/ChenHuajun/pg_roaringbitmap" 5 | license = "Apache-2.0" 6 | description = "Support for Roaring Bitmaps." 7 | documentation = "https://github.com/ChenHuajun/pg_roaringbitmap" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/pg_savior/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=0b85ec4 8 | RUN git clone https://github.com/viggy28/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && git checkout ${RELEASE} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/pg_semver/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | # ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/semver/${EXTENSION_VERSION}/semver-${EXTENSION_VERSION}.zip \ 8 | && unzip semver-${EXTENSION_VERSION}.zip \ 9 | && cd semver-${EXTENSION_VERSION} && make 10 | WORKDIR /app/semver-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/pg_semver/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_semver" 3 | version = "0.40.0" 4 | repository = "https://github.com/theory/pg-semver" 5 | license = "PostgreSQL" 6 | description = "A semantic version data type for PostgreSQL." 7 | documentation = "https://github.com/theory/pg-semver" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/pg_show_plans/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_similarity/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "pg_similarity_$(perl -E 'print shift =~ s/[.]0$//r =~ s/[.]/_/gr' "${EXTENSION_VERSION}")" https://github.com/eulerto/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} USE_PGXS=1 9 | -------------------------------------------------------------------------------- /contrib/pg_similarity/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_similarity" 3 | version = "1.0.0" 4 | repository = "https://github.com/eulerto/pg_similarity" 5 | license = "BSD-3-Clause" 6 | description = "Support similarity queries." 7 | documentation = "https://github.com/eulerto/pg_similarity" 8 | categories = ["search"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pg_similarity USE_PGXS=1 install" 18 | -------------------------------------------------------------------------------- /contrib/pg_smtp_client/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.7 3 | 4 | ARG PG_VERSION 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | 8 | USER root 9 | RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ 10 | && /root/.cargo/bin/rustup default stable \ 11 | && git clone --depth 1 --branch v${EXTENSION_VERSION} https://github.com/brianpursley/${EXTENSION_NAME}.git \ 12 | && cd ${EXTENSION_NAME} \ 13 | && cargo pgrx init --pg${PG_VERSION}=/usr/bin/pg_config \ 14 | && cargo pgrx package 15 | -------------------------------------------------------------------------------- /contrib/pg_sparse/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | USER root 5 | 6 | 7 | # Clone and build the extension. 8 | ARG EXTENSION_NAME 9 | ARG EXTENSION_VERSION 10 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/paradedb/paradedb.git \ 11 | && make -C paradedb/${EXTENSION_NAME} USE_PGXS=1 OPTFLAGS="" 12 | -------------------------------------------------------------------------------- /contrib/pg_sparse/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_sparse" 3 | version = "0.4.2" 4 | repository = "https://github.com/paradedb/paradedb/tree/v0.6.1/pg_sparse" 5 | license = "AGPL-3.0" 6 | description = "Sparse Vector Similarity Search Inside Postgres" 7 | homepage = "https://www.paradedb.com/" 8 | documentation = "https://docs.paradedb.com/blog/introducing_sparse" 9 | categories = ["search"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C paradedb/pg_sparse install USE_PGXS=1" 19 | -------------------------------------------------------------------------------- /contrib/pg_squeeze/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "REL$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pg_squeeze/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_squeeze" 3 | version = "1.8.0" 4 | repository = "https://github.com/cybertec-postgresql/pg_squeeze" 5 | license = "Copyright" 6 | description = "A PostgreSQL extension for automatic bloat cleanup." 7 | homepage = "https://www.cybertec-postgresql.com/en/" 8 | documentation = "https://github.com/cybertec-postgresql/pg_squeeze" 9 | categories = ["index_table_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_squeeze install" 19 | -------------------------------------------------------------------------------- /contrib/pg_stat_kcache/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "REL$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/powa-team/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pg_stat_monitor/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && make -C ${EXTENSION_NAME}-${EXTENSION_VERSION} USE_PGXS=1 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_store_plans/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/ossc-db/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} USE_PGXS=1 9 | -------------------------------------------------------------------------------- /contrib/pg_store_plans/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_store_plans" 3 | version = "1.8.0" 4 | repository = "https://github.com/ossc-db/pg_store_plans" 5 | license = "Copyright" 6 | description = "Track plan statistics of all SQL statements executed." 7 | documentation = "https://ossc-db.github.io/pg_store_plans/" 8 | categories = ["metrics"] 9 | loadable_libraries = [{ library_name = "pg_store_plans", requires_restart = true }] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C pg_store_plans install USE_PGXS=1" 16 | -------------------------------------------------------------------------------- /contrib/pg_text_semver/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_text_semver/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_text_semver" 3 | version = "1.2.1" 4 | repository = "https://github.com/bigsmoke/pg_text_semver" 5 | license = "Copyright" 6 | description = "PostgreSQL semantic versioning extension, with comparison functions and operators." 7 | documentation = "https://github.com/bigsmoke/pg_text_semver" 8 | categories = ["data_transformations"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make install" 15 | -------------------------------------------------------------------------------- /contrib/pg_timeit/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | # ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=d83ab65 8 | RUN git clone https://github.com/joelonsql/pg-timeit.git \ 9 | && cd pg-timeit \ 10 | && git checkout ${RELEASE} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/pg_timeit/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_timeit" 3 | version = "1.0.0" 4 | repository = "https://github.com/joelonsql/pg-timeit" 5 | license = "MIT" 6 | description = "PostgreSQL extension that provides high-accuracy timing of SQL expressions." 7 | documentation = "https://github.com/joelonsql/pg-timeit" 8 | categories = ["metrics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pg-timeit install" 18 | -------------------------------------------------------------------------------- /contrib/pg_tle/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/aws/${EXTENSION_NAME}.git \ 12 | && make -C ${EXTENSION_NAME} 13 | -------------------------------------------------------------------------------- /contrib/pg_tle/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_tle" 3 | version = "1.2.0" 4 | repository = "https://github.com/aws/pg_tle" 5 | license = "Apache-2.0" 6 | description = "Framework for building trusted language extensions for PostgreSQL." 7 | homepage = "https://aws.amazon.com/" 8 | documentation = "https://github.com/aws/pg_tle/tree/main/docs" 9 | categories = ["procedural_languages"] 10 | preload_libraries = ["pg_tle"] 11 | 12 | [dependencies] 13 | apt = ["libc6"] 14 | 15 | [build] 16 | postgres_version = "17" 17 | platform = "linux/amd64" 18 | dockerfile = "Dockerfile" 19 | install_command = "make -C pg_tle install" 20 | -------------------------------------------------------------------------------- /contrib/pg_track_settings/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_track_settings/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_track_settings" 3 | version = "2.1.2" 4 | repository = "https://github.com/rjuju/pg_track_settings" 5 | license = "PostgreSQL" 6 | description = "Keep track of postgresql settings modification." 7 | documentation = "https://github.com/rjuju/pg_track_settings" 8 | categories = ["auditing_logging"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make install" 15 | -------------------------------------------------------------------------------- /contrib/pg_uuidv7/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/pg_uuidv7/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_uuidv7" 3 | version = "1.6.0" 4 | repository = "https://github.com/fboulnois/pg_uuidv7" 5 | license = "MPL-2.0" 6 | description = "Create valid version 7 UUIDs in Postgres." 7 | documentation = "https://github.com/fboulnois/pg_uuidv7" 8 | categories = ["data_transformations"] 9 | preload_libraries = ["pg_uuidv7"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "15" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make install" 19 | -------------------------------------------------------------------------------- /contrib/pg_wait_sampling/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/postgrespro/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} USE_PGXS=1 10 | -------------------------------------------------------------------------------- /contrib/pg_wait_sampling/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pg_wait_sampling" 3 | version = "1.1.6" 4 | repository = "https://github.com/postgrespro/pg_wait_sampling" 5 | license = "PostgreSQL" 6 | description = "Sampling based statistics of wait events." 7 | documentation = "https://github.com/postgrespro/pg_wait_sampling" 8 | categories = ["metrics"] 9 | preload_libraries = ["pg_wait_sampling"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pg_wait_sampling USE_PGXS=1 install" 19 | -------------------------------------------------------------------------------- /contrib/pgaudit14/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 12 | && make -C ${EXTENSION_NAME} USE_PGXS=1 13 | -------------------------------------------------------------------------------- /contrib/pgaudit15/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 12 | && make -C ${EXTENSION_NAME} USE_PGXS=1 13 | -------------------------------------------------------------------------------- /contrib/pgaudit16/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | # ARG EXTENSION_VERSION 11 | ARG PG_VERSION 12 | RUN git clone --depth 1 --branch "${PG_VERSION}.0" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 13 | && make -C ${EXTENSION_NAME} USE_PGXS=1 14 | -------------------------------------------------------------------------------- /contrib/pgaudit17/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libkrb5-dev 7 | 8 | # Clone and build the extension. 9 | ARG EXTENSION_NAME 10 | # ARG EXTENSION_VERSION 11 | ARG PG_VERSION 12 | RUN git clone --depth 1 --branch "${PG_VERSION}.0" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 13 | && make -C ${EXTENSION_NAME} USE_PGXS=1 14 | -------------------------------------------------------------------------------- /contrib/pgbouncer_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/CrunchyData/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgbouncer_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgbouncer_fdw" 3 | version = "1.2.0" 4 | repository = "https://github.com/CrunchyData/pgbouncer_fdw" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL Foreign Data Wrapper to Connect to pgbouncer." 7 | homepage = "https://www.crunchydata.com/" 8 | documentation = "https://access.crunchydata.com/documentation/pgbouncer_fdw/latest/" 9 | categories = ["connectors"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C pgbouncer_fdw install" 16 | -------------------------------------------------------------------------------- /contrib/pgcollection/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O "https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 8 | && unzip "${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 9 | && make -C "${EXTENSION_NAME}-${EXTENSION_VERSION}" USE_PGXS=1 10 | WORKDIR "/app/${EXTENSION_NAME}-${EXTENSION_VERSION}" 11 | -------------------------------------------------------------------------------- /contrib/pgcollection/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgcollection" 3 | version = "0.9.0" 4 | repository = "https://github.com/aws/pgcollection" 5 | license = "Apache-2.0" 6 | description = "pgcollection is a memory optimized data type for PostgreSQL used as a high performance data structure inside PL/pgSQL functions to create associative arrays." 7 | categories = ["data_transformations"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make install" 17 | -------------------------------------------------------------------------------- /contrib/pgcozy/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | # ARG EXTENSION_VERSION 8 | ARG RELEASE=1f36036 9 | RUN git clone https://github.com/vventirozos/${EXTENSION_NAME}.git \ 10 | && cd ${EXTENSION_NAME} \ 11 | && git checkout ${RELEASE} \ 12 | && make 13 | -------------------------------------------------------------------------------- /contrib/pgcozy/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgcozy" 3 | version = "1.0.0" 4 | repository = "https://github.com/vventirozos/pgcozy" 5 | license = "PostgreSQL" 6 | description = "Extension for pre-warming shared buffers according to previous pg_buffercache snapshots for PostgreSQL." 7 | documentation = "https://github.com/vventirozos/pgcozy" 8 | categories = ["index_table_optimizations"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pgcozy install" 15 | -------------------------------------------------------------------------------- /contrib/pgemailaddr/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | # ARG EXTENSION_VERSION 8 | ARG RELEASE=77266f2 9 | RUN git clone https://github.com/petere/${EXTENSION_NAME}.git \ 10 | && cd ${EXTENSION_NAME} \ 11 | && git checkout ${RELEASE} \ 12 | && make 13 | -------------------------------------------------------------------------------- /contrib/pgemailaddr/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgemailaddr" 3 | version = "1.0.0" 4 | repository = "https://github.com/petere/pgemailaddr" 5 | license = "PostgreSQL" 6 | description = "Email address type for PostgreSQL." 7 | documentation = "https://github.com/petere/pgemailaddr" 8 | categories = ["data_transformations"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pgemailaddr install" 15 | -------------------------------------------------------------------------------- /contrib/pgfaceting/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgfaceting/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgfaceting" 3 | version = "0.2.0" 4 | repository = "https://github.com/cybertec-postgresql/pgfaceting" 5 | license = "BSD-3-Clause" 6 | description = "Faceted query acceleration for PostgreSQL using roaring bitmap." 7 | documentation = "https://github.com/cybertec-postgresql/pgfaceting" 8 | categories = ["search"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgfaceting install" 18 | -------------------------------------------------------------------------------- /contrib/pgfincore/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/klando/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pgfincore/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgfincore" 3 | version = "1.3.1" 4 | repository = "https://github.com/klando/pgfincore" 5 | license = "Copyright" 6 | description = "Use mincore to explore linux (or BSD) cache memory." 7 | documentation = "https://github.com/klando/pgfincore" 8 | categories = ["tooling_admin"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgfincore install" 18 | -------------------------------------------------------------------------------- /contrib/pghydro/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v.$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 8 | && printf "EXTENSION = pghydro\nDATA = \$(wildcard pghydro--*.sql)\nPGXS := \$(shell pg_config --pgxs)\ninclude \$(PGXS)\n" > ${EXTENSION_NAME}/Makefile \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pghydro/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pghydro" 3 | version = "6.6.0" 4 | repository = "https://github.com/pghydro/pghydro" 5 | license = "GPL-2.0" 6 | description = "Provide drainage network analysis functionality to PostGIS." 7 | documentation = "https://github.com/pghydro/pghydro" 8 | categories = ["data_transformations"] 9 | preload_libraries = ["pghydro, postgis"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C pghydro install" 16 | -------------------------------------------------------------------------------- /contrib/pgjwt/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | # ARG EXTENSION_VERSION 8 | ARG RELEASE=f3d82fd 9 | RUN git clone https://github.com/michelp/${EXTENSION_NAME}.git \ 10 | && cd ${EXTENSION_NAME} \ 11 | && git checkout ${RELEASE} \ 12 | && make 13 | -------------------------------------------------------------------------------- /contrib/pgjwt/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgjwt" 3 | version = "0.2.0" 4 | repository = "https://github.com/michelp/pgjwt" 5 | license = "MIT" 6 | description = "PostgreSQL implementation of JWT (JSON Web Tokens)." 7 | documentation = "https://github.com/michelp/pgjwt" 8 | categories = ["security"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pgjwt install" 15 | -------------------------------------------------------------------------------- /contrib/pgl_ddl_deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/enova/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgl_ddl_deploy/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgl_ddl_deploy" 3 | version = "2.2.1" 4 | repository = "https://github.com/enova/pgl_ddl_deploy" 5 | license = "MIT" 6 | description = "Transparent Logical DDL Replication." 7 | documentation = "https://github.com/enova/pgl_ddl_deploy" 8 | categories = ["orchestration"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pgl_ddl_deploy install" 15 | -------------------------------------------------------------------------------- /contrib/pglite_fusion/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pglite_fusion" 3 | version = "0.0.5" 4 | repository = "https://github.com/frectonz/pglite-fusion" 5 | license = "MIT" 6 | description = "Embed an SQLite database in your PostgreSQL table." 7 | documentation = "https://github.com/okbob/plpgsql_check" 8 | categories = ["connectors", "data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "cargo pgrx install --release" 18 | -------------------------------------------------------------------------------- /contrib/pglogical/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pglogical" 3 | version = "2.4.5" 4 | repository = "https://github.com/2ndQuadrant/pglogical" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL Logical Replication." 7 | documentation = "https://github.com/2ndQuadrant/pglogical" 8 | categories = ["change_data_capture"] 9 | loadable_libraries = [{ library_name = "pglogical", requires_restart = true }] 10 | 11 | [dependencies] 12 | apt = ["libpq5", "libc6"] 13 | 14 | [build] 15 | postgres_version = "15" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pglogical install" 19 | -------------------------------------------------------------------------------- /contrib/pglogical_ticker/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/enova/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgmonitor/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/CrunchyData/${EXTENSION_NAME}-extension.git \ 9 | && make -C ${EXTENSION_NAME}-extension 10 | -------------------------------------------------------------------------------- /contrib/pgmonitor/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgmonitor" 3 | version = "2.0.0" 4 | repository = "https://github.com/CrunchyData/pgmonitor-extension.git" 5 | license = "Apache-2.0" 6 | description = "PostgreSQL extension that provides a means to collect metrics that can be used by an external collection source." 7 | documentation = "https://github.com/CrunchyData/pgmonitor-extension.git" 8 | categories = ["metrics"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make -C pgmonitor-extension install" 15 | -------------------------------------------------------------------------------- /contrib/pgq/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgq/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgq" 3 | version = "3.5.1" 4 | repository = "https://github.com/pgq/pgq" 5 | license = "ISC" 6 | description = "Generic Queue for PostgreSQL." 7 | documentation = "https://github.com/pgq/pgq" 8 | categories = ["orchestration"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgq install" 18 | -------------------------------------------------------------------------------- /contrib/pgroonga/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgroonga" 3 | version = "4.0.0" 4 | repository = "https://github.com/pgroonga/pgroonga" 5 | license = "PostgreSQL" 6 | description = "PGroonga makes PostgreSQL fast full text search platform for all languages." 7 | documentation = "https://pgroonga.github.io/" 8 | categories = ["search"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/pgrouting/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Install the dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | cmake \ 9 | libboost-all-dev \ 10 | python3-sphinx 11 | 12 | # Clone and build the extension. 13 | ARG EXTENSION_NAME 14 | ARG EXTENSION_VERSION 15 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 16 | && cmake -S ${EXTENSION_NAME} -B ${EXTENSION_NAME}/build \ 17 | && make -C ${EXTENSION_NAME}/build -j8 18 | -------------------------------------------------------------------------------- /contrib/pgsodium/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y libsodium-dev 8 | 9 | # Clone and build the extension. 10 | ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/michelp/${EXTENSION_NAME}.git \ 13 | && make -C ${EXTENSION_NAME} 14 | -------------------------------------------------------------------------------- /contrib/pgsodium/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgsodium" 3 | version = "3.1.9" 4 | repository = "https://github.com/michelp/pgsodium" 5 | license = "Copyright" 6 | description = "Modern cryptography for PostgreSQL using libsodium." 7 | documentation = "https://github.com/michelp/pgsodium" 8 | categories = ["security"] 9 | 10 | [dependencies] 11 | apt = ["libsodium23", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgsodium install" 18 | -------------------------------------------------------------------------------- /contrib/pgsql_http/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y libcurl4-openssl-dev 7 | 8 | # Clone and build the extension. 9 | # ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/pramsey/pgsql-http.git \ 12 | && make -C pgsql-http 13 | -------------------------------------------------------------------------------- /contrib/pgsql_http/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgsql_http" 3 | version = "1.6.3" 4 | repository = "https://github.com/pramsey/pgsql-http" 5 | license = "MIT" 6 | description = "HTTP client for PostgreSQL, retrieve a web page from inside the database." 7 | documentation = "https://github.com/pramsey/pgsql-http" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6", "libcurl4"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgsql-http install" 18 | -------------------------------------------------------------------------------- /contrib/pgsql_ogr_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION=15 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | USER root 5 | 6 | # Extension build dependencies 7 | RUN apt-get update && apt-get install -y libgdal-dev 8 | 9 | # Clone and build the extension. 10 | # ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/pramsey/pgsql-ogr-fdw.git \ 13 | && make -C pgsql-ogr-fdw 14 | -------------------------------------------------------------------------------- /contrib/pgsql_ogr_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgsql_ogr_fdw" 3 | version = "1.1.5" 4 | repository = "https://github.com/pramsey/pgsql-ogr-fdw" 5 | license = "MIT" 6 | description = "PostgreSQL foreign data wrapper for OGR." 7 | documentation = "https://github.com/pramsey/pgsql-ogr-fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libgdal30", "libc6"] 12 | 13 | [build] 14 | postgres_version = "15" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgsql-ogr-fdw install" 18 | -------------------------------------------------------------------------------- /contrib/pgtap/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/pgtap/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgtap" 3 | version = "1.3.3" 4 | repository = "https://github.com/theory/pgtap" 5 | license = "Copyright" 6 | description = "Unit testing for PostgreSQL." 7 | homepage = "https://pgtap.org/" 8 | documentation = "https://pgtap.org/documentation.html" 9 | categories = ["tooling_admin"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make install" 16 | -------------------------------------------------------------------------------- /contrib/pgtelemetry/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/pgtt/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/darold/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/pgtt/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgtt" 3 | version = "4.1.0" 4 | repository = "https://github.com/darold/pgtt" 5 | license = "ISC" 6 | description = "Extension to add Global Temporary Tables feature to PostgreSQL." 7 | documentation = "https://github.com/darold/pgtt" 8 | categories = ["index_table_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pgtt install" 18 | -------------------------------------------------------------------------------- /contrib/pguri/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pguri" 3 | version = "1.0.0" 4 | repository = "https://github.com/petere/pguri" 5 | license = "Copyright" 6 | description = "uri type for PostgreSQL." 7 | documentation = "https://github.com/petere/pguri" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["liburiparser1", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C pguri install" 18 | -------------------------------------------------------------------------------- /contrib/pgvector/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/pgvector/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgvector" 3 | version = "0.8.0" 4 | repository = "https://github.com/pgvector/pgvector" 5 | license = "PostgreSQL" 6 | description = "Open-source vector similarity search for Postgres" 7 | homepage = "https://github.com/pgvector/pgvector" 8 | documentation = "https://github.com/pgvector/pgvector" 9 | categories = ["featured", "machine_learning"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pgvector install" 19 | -------------------------------------------------------------------------------- /contrib/pgxicor/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Download and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O "https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 8 | && unzip "${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 9 | && make -C "${EXTENSION_NAME}-${EXTENSION_VERSION}" 10 | WORKDIR "/app/${EXTENSION_NAME}-${EXTENSION_VERSION}" 11 | -------------------------------------------------------------------------------- /contrib/pgxicor/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pgxicor" 3 | version = "0.1.0" 4 | repository = "https://github.com/Florents-Tselai/pgxicor" 5 | license = "GPL-2.0" 6 | description = "XI (ξ) Correlation Coefficient in Postgres." 7 | categories = ["analytics"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make install" 17 | -------------------------------------------------------------------------------- /contrib/plcoffee/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plcoffee" 3 | version = "3.1.10" 4 | repository = "https://github.com/plv8/plv8" 5 | license = "Copyright" 6 | description = "PL/CoffeeScript (v8) trusted procedural language" 7 | documentation = "https://plv8.github.io/" 8 | categories = ["procedural_languages"] 9 | 10 | [dependencies] 11 | apt = ["libstdc++6", "libgcc-s1", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "cd plv8 && make install" 18 | -------------------------------------------------------------------------------- /contrib/pljava/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pljava" 3 | version = "1.6.9" 4 | repository = "https://github.com/tada/pljava" 5 | license = "BSD-3-Clause" 6 | description = "Java Procedural Language for PostgreSQL" 7 | documentation = "https://tada.github.io/pljava/" 8 | categories = ["procedural_languages"] 9 | 10 | [dependencies] 11 | apt = ["libc6", "openjdk-11-jdk"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "java -jar pljava/pljava-packaging/target/pljava-pg17.jar" 18 | include = ["*.jar"] 19 | -------------------------------------------------------------------------------- /contrib/plpgsql_check/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Download and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/plpgsql_check/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plpgsql_check" 3 | version = "2.8.1" 4 | repository = "https://github.com/okbob/plpgsql_check" 5 | license = "Copyright" 6 | description = "Linter tool for the PostgreSQL language plpgsql." 7 | documentation = "https://github.com/okbob/plpgsql_check" 8 | categories = ["debugging"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/plprofiler/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plprofiler" 3 | version = "4.2.5" 4 | repository = "https://github.com/bigsql/plprofiler" 5 | license = "Copyright" 6 | description = "The plprofiler is an extension for the PostgreSQL database system to create performance profiles of PL/pgSQL functions and stored procedures." 7 | documentation = "https://github.com/bigsql/plprofiler" 8 | categories = ["metrics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C plprofiler USE_PGXS=1 install" 18 | -------------------------------------------------------------------------------- /contrib/plproxy/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y bison 8 | 9 | # Clone and build the extension. 10 | ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 13 | && make -C ${EXTENSION_NAME} 14 | -------------------------------------------------------------------------------- /contrib/plproxy/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plproxy" 3 | version = "2.11.0" 4 | repository = "https://github.com/plproxy/plproxy" 5 | license = "Copyright" 6 | description = "PL/Proxy development." 7 | homepage = "https://plproxy.github.io/" 8 | documentation = "https://plproxy.github.io/syntax.html" 9 | categories = ["procedural_languages"] 10 | 11 | [dependencies] 12 | apt = ["libpq5", "libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C plproxy install" 19 | -------------------------------------------------------------------------------- /contrib/plr/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y r-base-dev 8 | 9 | 10 | # Clone and build the extension. 11 | ARG EXTENSION_NAME 12 | ARG EXTENSION_VERSION 13 | RUN git clone --depth 1 --branch "REL$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/postgres-${EXTENSION_NAME}/${EXTENSION_NAME}.git \ 14 | && make -C ${EXTENSION_NAME} USE_PGXS=1 15 | -------------------------------------------------------------------------------- /contrib/plr/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plr" 3 | version = "8.4.7" 4 | repository = "https://github.com/postgres-plr/plr" 5 | license = "GPL-2.0" 6 | description = "R Procedural Language for PostgreSQL" 7 | documentation = "https://github.com/postgres-plr/plr/blob/master/userguide.md" 8 | categories = ["procedural_languages"] 9 | 10 | [dependencies] 11 | apt = ["libc6", "r-base-core"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C plr USE_PGXS=1 install" 18 | -------------------------------------------------------------------------------- /contrib/plsh/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | # ARG EXTENSION_VERSION 8 | ARG RELEASE=1.20220917 9 | RUN git clone --depth 1 --branch "${RELEASE}" https://github.com/petere/${EXTENSION_NAME}.git \ 10 | && cd ${EXTENSION_NAME} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/plsh/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plsh" 3 | version = "2.0.0" 4 | repository = "https://github.com/petere/plsh" 5 | license = "Copyright" 6 | description = "PL/sh is a procedural language handler for PostgreSQL that allows you to write stored procedures in a shell of your choice." 7 | documentation = "https://github.com/petere/plsh" 8 | categories = ["procedural_languages"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C plsh install" 18 | -------------------------------------------------------------------------------- /contrib/plv8/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} \ 10 | && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/plv8/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "plv8" 3 | version = "3.2.3" 4 | repository = "https://github.com/plv8/plv8" 5 | license = "Copyright" 6 | description = "A procedural language in JavaScript powered by V8" 7 | documentation = "https://plv8.github.io/" 8 | categories = ["procedural_languages"] 9 | 10 | [dependencies] 11 | apt = ["libstdc++6", "libgcc-s1", "libc6"] 12 | 13 | [build] 14 | postgres_version = "15" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/pointcloud/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "pointcloud" 3 | version = "1.2.5" 4 | repository = "https://github.com/pgpointcloud/pointcloud/" 5 | license = "Copyright" 6 | description = "A PostgreSQL extension for storing point cloud (LIDAR) data." 7 | documentation = "https://pgpointcloud.github.io/pointcloud/" 8 | categories = ["data_transformations"] 9 | preload_libraries = ["postgis"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C pointcloud install" 19 | -------------------------------------------------------------------------------- /contrib/postgres_decoderbufs/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y libprotobuf-c-dev 8 | 9 | # Clone and build the extension. 10 | ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}.Final" https://github.com/debezium/postgres-decoderbufs.git ${EXTENSION_NAME} \ 13 | && make -C ${EXTENSION_NAME} 14 | -------------------------------------------------------------------------------- /contrib/postgresql_anonymizer/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://gitlab.com/dalibo/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/postgresql_hll/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/citusdata/postgresql-hll.git ${EXTENSION_NAME} \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/postgresql_hll/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "postgresql_hll" 3 | version = "2.18.0" 4 | repository = "https://github.com/citusdata/postgresql-hll" 5 | license = "Apache-2.0" 6 | description = "HyperLogLog data structures as a native data type." 7 | homepage = "https://www.citusdata.com/" 8 | documentation = "https://github.com/citusdata/postgresql-hll" 9 | categories = ["analytics"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C postgresql_hll install" 19 | -------------------------------------------------------------------------------- /contrib/postgresql_logfdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | # ARG EXTENSION_VERSION 7 | ARG RELEASE=a6d7f62 8 | RUN git clone https://github.com/aws/postgresql-logfdw.git ${EXTENSION_NAME} \ 9 | && cd ${EXTENSION_NAME} \ 10 | && git checkout ${RELEASE} \ 11 | && make USE_PGXS=1 12 | -------------------------------------------------------------------------------- /contrib/postgresql_logfdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "postgresql_logfdw" 3 | version = "1.4.0" 4 | repository = "https://github.com/aws/postgresql-logfdw" 5 | license = "Apache-2.0" 6 | description = "Foreign-data wrapper for Postgres log file access." 7 | documentation = "https://github.com/aws/postgresql-logfdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "15" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C postgresql_logfdw USE_PGXS=1 install" 18 | -------------------------------------------------------------------------------- /contrib/postgresql_topn/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/citusdata/postgresql-topn.git ${EXTENSION_NAME} \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/postgresql_unit/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "postgresql_unit" 3 | version = "7.10.0" 4 | repository = "https://github.com/df7cb/postgresql-unit" 5 | license = "Copyright" 6 | description = "SI Units for PostgreSQL." 7 | documentation = "https://github.com/df7cb/postgresql-unit" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C postgresql-unit install" 18 | # Tell trunk to include unit_prefixes.data and unit_units.data. 19 | include = ["*.data"] 20 | -------------------------------------------------------------------------------- /contrib/powa/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "powa" 3 | version = "5.0.2" 4 | repository = "https://github.com/powa-team/powa-archivist" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL Workload Analyser-core." 7 | homepage = "https://powa.readthedocs.io/en/latest/" 8 | documentation = "https://powa.readthedocs.io/en/latest/" 9 | categories = ["metrics"] 10 | 11 | [build] 12 | postgres_version = "17" 13 | platform = "linux/amd64" 14 | dockerfile = "Dockerfile" 15 | install_command = "make -C powa install" 16 | -------------------------------------------------------------------------------- /contrib/prefix/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/dimitri/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/prefix/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "prefix" 3 | version = "1.2.9" 4 | repository = "https://github.com/dimitri/prefix" 5 | license = "PostgreSQL" 6 | description = "Prefix Range module for PostgreSQL." 7 | documentation = "https://github.com/dimitri/prefix" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "15" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C prefix install" 18 | -------------------------------------------------------------------------------- /contrib/quantile/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 8 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 10 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 11 | -------------------------------------------------------------------------------- /contrib/quantile/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "quantile" 3 | version = "1.1.8" 4 | repository = "https://github.com/tvondra/quantile" 5 | license = "BSD-2-Clause" 6 | description = "This extension provides three simple aggregate functions to compute quantiles." 7 | documentation = "https://github.com/tvondra/quantile" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/random/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | ARG EXTENSION_NAME 6 | ARG RELEASE=51418d2 7 | RUN git clone https://github.com/tvondra/${EXTENSION_NAME}.git \ 8 | && cd ${EXTENSION_NAME} \ 9 | && git checkout ${RELEASE} \ 10 | && make 11 | -------------------------------------------------------------------------------- /contrib/random/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "random" 3 | version = "1.0.0" 4 | repository = "https://github.com/tvondra/random" 5 | license = "PostgreSQL" 6 | description = "Random data generator extension." 7 | documentation = "https://github.com/tvondra/random" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C random install" 18 | -------------------------------------------------------------------------------- /contrib/redis_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y libhiredis-dev 8 | 9 | # Clone and build the extension. 10 | ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | ARG PG_VERSION 13 | RUN git clone --depth 1 --branch "REL_${PG_VERSION}_STABLE" https://github.com/pg-redis-fdw/${EXTENSION_NAME}.git \ 14 | && make -C ${EXTENSION_NAME} 15 | -------------------------------------------------------------------------------- /contrib/redis_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "redis_fdw" 3 | version = "1.0.0" 4 | repository = "https://github.com/pg-redis-fdw/redis_fdw" 5 | license = "PostgreSQL" 6 | description = "A PostgreSQL foreign data wrapper for Redis." 7 | documentation = "https://github.com/pg-redis-fdw/redis_fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libc6", "libhiredis0.14"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C redis_fdw install" 18 | -------------------------------------------------------------------------------- /contrib/rum/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "rum" 3 | version = "1.3.14" 4 | repository = "https://github.com/postgrespro/rum" 5 | license = "PostgreSQL" 6 | description = "The rum module provides an access method to work with a RUM index." 7 | homepage = "https://postgrespro.com/" 8 | documentation = "https://postgrespro.com/docs/enterprise/13/rum" 9 | categories = ["index_table_optimizations"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C rum USE_PGXS=1 install" 19 | -------------------------------------------------------------------------------- /contrib/seg/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/sequential_uuids/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/sequential_uuids/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "sequential_uuids" 3 | version = "1.0.3" 4 | repository = "https://github.com/tvondra/sequential-uuids" 5 | license = "MIT" 6 | description = "Generator of sequential UUIDs." 7 | documentation = "https://github.com/tvondra/sequential-uuids" 8 | categories = ["index_table_optimizations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/set_user/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "REL$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/pgaudit/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/smlar/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "smlar" 3 | version = "1.0.0" 4 | repository = "http://sigaev.ru/git/gitweb.cgi?p=smlar.git;a=commit;h=6259352edd179544c6f0e7c81bb68dcb81317f8c" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL extension for an effective similarity search" 7 | documentation = "http://sigaev.ru/git/gitweb.cgi?p=smlar.git;a=blob;f=README;h=8fa81c51d749cc714e52257a15edf547f0b26edf;hb=HEAD" 8 | categories = ["search"] 9 | 10 | [build] 11 | postgres_version = "17" 12 | platform = "linux/amd64" 13 | dockerfile = "Dockerfile" 14 | install_command = "make USE_PGXS=1 install" 15 | -------------------------------------------------------------------------------- /contrib/sqlite_fdw/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Install build dependencies. 5 | USER root 6 | RUN apt-get update && apt-get install -y libsqlite3-dev 7 | 8 | # Download and build the extension. 9 | ARG EXTENSION_NAME 10 | ARG EXTENSION_VERSION 11 | RUN curl -O "https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 12 | && unzip "${EXTENSION_NAME}-${EXTENSION_VERSION}.zip" \ 13 | && make -C "${EXTENSION_NAME}-${EXTENSION_VERSION}" USE_PGXS=1 14 | WORKDIR "/app/${EXTENSION_NAME}-${EXTENSION_VERSION}" 15 | -------------------------------------------------------------------------------- /contrib/sqlite_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "sqlite_fdw" 3 | version = "2.5.0" 4 | repository = "https://github.com/pgspider/sqlite_fdw" 5 | license = "PostgreSQL" 6 | description = "SQLite Foreign Data Wrapper for PostgreSQL." 7 | categories = ["connectors"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make install USE_PGXS=1" 17 | -------------------------------------------------------------------------------- /contrib/sslutils/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/EnterpriseDB/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/sslutils/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "sslutils" 3 | version = "1.4.0" 4 | repository = "https://github.com/EnterpriseDB/sslutils" 5 | license = "PostgreSQL" 6 | description = "A Postgres extension for managing SSL certificates through SQL." 7 | homepage = "https://www.enterprisedb.com/" 8 | documentation = "https://github.com/EnterpriseDB/sslutils" 9 | categories = ["security"] 10 | 11 | [dependencies] 12 | apt = ["libssl3", "openssl", "libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C sslutils install" 19 | -------------------------------------------------------------------------------- /contrib/supautils/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/supabase/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/system_stats/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v$(perl -E 'print shift =~ s/[.]0$//gr' "${EXTENSION_VERSION}")" https://github.com/EnterpriseDB/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/system_stats/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "system_stats" 3 | version = "3.2.0" 4 | repository = "https://github.com/EnterpriseDB/system_stats" 5 | license = "Copyright" 6 | description = "Expose system metrics such as CPU, memory and disk information." 7 | documentation = "https://github.com/EnterpriseDB/system_stats" 8 | categories = ["metrics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C system_stats install" 18 | -------------------------------------------------------------------------------- /contrib/tcn/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/tdigest/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/tvondra/${EXTENSION_NAME}.git \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/tdigest/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "tdigest" 3 | version = "1.4.3" 4 | repository = "https://github.com/tvondra/tdigest" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL extension for estimating percentiles using t-digest." 7 | documentation = "https://github.com/tvondra/tdigest" 8 | categories = ["analytics"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C tdigest install" 18 | -------------------------------------------------------------------------------- /contrib/tds_fdw/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "tds_fdw" 3 | version = "2.0.4" 4 | repository = "https://github.com/tds-fdw/tds_fdw" 5 | license = "Copyright" 6 | description = "A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)." 7 | documentation = "https://github.com/tds-fdw/tds_fdw" 8 | categories = ["connectors"] 9 | 10 | [dependencies] 11 | apt = ["libsybdb5", "libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C tds_fdw USE_PGXS=1 install" 18 | -------------------------------------------------------------------------------- /contrib/tembo_ivm/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/tembo-io/pg_ivm.git ${EXTENSION_NAME} \ 8 | && make -C ${EXTENSION_NAME} 9 | -------------------------------------------------------------------------------- /contrib/tembo_ivm/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "tembo_ivm" 3 | version = "1.9.1" 4 | repository = "https://github.com/tembo-io/pg_ivm" 5 | license = "PostgreSQL" 6 | description = "IVM (Incremental View Maintenance) implementation with Partitioned Support" 7 | homepage = "https://www.sraoss.co.jp/index_en/" 8 | documentation = "https://github.com/tembo-io/pg_ivm" 9 | categories = ["change_data_capture"] 10 | 11 | [dependencies] 12 | apt = ["libc6"] 13 | 14 | [build] 15 | postgres_version = "17" 16 | platform = "linux/amd64" 17 | dockerfile = "Dockerfile" 18 | install_command = "make -C tembo_ivm install" 19 | -------------------------------------------------------------------------------- /contrib/temporal_tables/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Clone and build the extension. 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/arkhipov/${EXTENSION_NAME}.git \ 9 | && make -C ${EXTENSION_NAME} 10 | -------------------------------------------------------------------------------- /contrib/temporal_tables/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "temporal_tables" 3 | version = "1.2.2" 4 | repository = "https://github.com/arkhipov/temporal_tables" 5 | license = "BSD-2-Clause" 6 | description = "Temporal Tables PostgreSQL Extension." 7 | documentation = "https://github.com/arkhipov/temporal_tables" 8 | categories = ["auditing_logging"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C temporal_tables install" 18 | -------------------------------------------------------------------------------- /contrib/timescaledb/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Extension build dependencies 6 | USER root 7 | RUN apt-get update && apt-get install -y cmake libkrb5-dev 8 | 9 | # Clone and build the extension. 10 | ARG EXTENSION_NAME 11 | ARG EXTENSION_VERSION 12 | RUN git clone --depth 1 --branch "${EXTENSION_VERSION}" https://github.com/timescale/${EXTENSION_NAME}.git \ 13 | && cd ${EXTENSION_NAME} \ 14 | && ./bootstrap -DAPACHE_ONLY=1 \ 15 | && make -C build 16 | -------------------------------------------------------------------------------- /contrib/uint128/Dockerfile: -------------------------------------------------------------------------------- 1 | # Set PostgreSQL version 2 | ARG PG_VERSION 3 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 4 | 5 | # Download and build extension 6 | ARG EXTENSION_NAME 7 | ARG EXTENSION_VERSION 8 | RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 9 | && unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \ 10 | && cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make 11 | WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION} 12 | -------------------------------------------------------------------------------- /contrib/uint128/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "uint128" 3 | version = "1.0.1" 4 | repository = "https://github.com/pg-uint/pg-uint128" 5 | license = "PostgreSQL" 6 | description = "Unsigned integer data types for PostgreSQL." 7 | documentation = "https://pgxn.org/dist/uint128/" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make install" 18 | -------------------------------------------------------------------------------- /contrib/wal2json/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION= 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | ARG EXTENSION_NAME 5 | ARG EXTENSION_VERSION 6 | RUN git clone --depth 1 --branch "wal2json_$(perl -E 'print shift =~ s/[.]0$//r =~ s/[.]/_/gr' "${EXTENSION_VERSION}")" https://github.com/eulerto/${EXTENSION_NAME}.git \ 7 | && make -C ${EXTENSION_NAME} 8 | -------------------------------------------------------------------------------- /contrib/wal2json/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "wal2json" 3 | version = "2.6.0" 4 | repository = "https://github.com/eulerto/wal2json" 5 | license = "BSD-3-Clause" 6 | description = "wal2json is an output plugin for logical decoding." 7 | categories = ["change_data_capture"] 8 | 9 | [dependencies] 10 | apt = ["libc6"] 11 | 12 | [build] 13 | postgres_version = "17" 14 | platform = "linux/amd64" 15 | dockerfile = "Dockerfile" 16 | install_command = "make -C wal2json install" 17 | -------------------------------------------------------------------------------- /contrib/xml2/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Extension build dependencies 5 | USER root 6 | RUN apt-get update && apt-get install -y \ 7 | build-essential \ 8 | libreadline-dev \ 9 | zlib1g-dev \ 10 | flex bison \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | libssl-dev \ 14 | libxml2-utils \ 15 | xsltproc \ 16 | ccache 17 | 18 | # Clone repository and build extension. 19 | ARG EXTENSION_NAME 20 | ARG PG_RELEASE 21 | RUN git clone --depth 1 --branch "${PG_RELEASE}" https://github.com/postgres/postgres.git \ 22 | && make -C postgres/contrib/${EXTENSION_NAME} USE_PGXS=1 23 | -------------------------------------------------------------------------------- /contrib/zhparser/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "zhparser" 3 | version = "2.2.0" 4 | repository = "https://github.com/amutu/zhparser" 5 | license = "PostgreSQL" 6 | description = "PostgreSQL extension for full-text search of Chinese language." 7 | documentation = "https://github.com/amutu/zhparser" 8 | categories = ["search"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C zhparser install" 18 | -------------------------------------------------------------------------------- /contrib/zson/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PG_VERSION 2 | FROM quay.io/coredb/c-builder:pg${PG_VERSION} 3 | 4 | # Clone and build the extension. 5 | ARG EXTENSION_NAME 6 | ARG EXTENSION_VERSION 7 | ARG RELEASE=e214c79 8 | RUN git clone https://github.com/postgrespro/${EXTENSION_NAME}.git \ 9 | && cd ${EXTENSION_NAME} \ 10 | && git checkout ${RELEASE} \ 11 | && make 12 | -------------------------------------------------------------------------------- /contrib/zson/Trunk.toml: -------------------------------------------------------------------------------- 1 | [extension] 2 | name = "zson" 3 | version = "1.1.0" 4 | repository = "https://github.com/postgrespro/zson" 5 | license = "PostgreSQL" 6 | description = "An extension for transparent JSONB compression" 7 | homepage = "https://github.com/postgrespro/zson" 8 | categories = ["data_transformations"] 9 | 10 | [dependencies] 11 | apt = ["libc6"] 12 | 13 | [build] 14 | postgres_version = "17" 15 | platform = "linux/amd64" 16 | dockerfile = "Dockerfile" 17 | install_command = "make -C zson install" 18 | -------------------------------------------------------------------------------- /docs/cli/cli.md: -------------------------------------------------------------------------------- 1 | --8<-- "cli/README.md" -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --8<-- "README.md" -------------------------------------------------------------------------------- /docs/registry/registry.md: -------------------------------------------------------------------------------- 1 | --8<-- "registry/README.md" -------------------------------------------------------------------------------- /docs/ui/ui.md: -------------------------------------------------------------------------------- 1 | --8<-- "ui/README.md" -------------------------------------------------------------------------------- /images/trunk-test-tembo/postgresql.conf: -------------------------------------------------------------------------------- 1 | listen_addresses = '*' 2 | cron.database_name = 'postgres' 3 | -------------------------------------------------------------------------------- /images/trunk-test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/images/trunk-test/README.md -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "trunk" 3 | version = "0.1.0" 4 | description = "Dependencies for Trunk MkDocs" 5 | authors = ["Coredb Admin "] 6 | readme = "README.md" 7 | 8 | [tool.poetry.dependencies] 9 | python = "^3.10" 10 | markdown-include = "^0.8.1" 11 | mkdocs = "^1.4.2" 12 | mkdocs-material = "^7.3.6" 13 | mdx-include = "^1.4.1" 14 | mkdocs-markdownextradata-plugin = "^0.2.4" 15 | mkdocstrings = "^0.16.2" 16 | MarkupSafe = "2.0.1" 17 | Jinja2 = "<3.0.0" 18 | pymdown-extensions = "^9.9.2" 19 | 20 | [build-system] 21 | requires = ["poetry-core"] 22 | build-backend = "poetry.core.masonry.api" 23 | -------------------------------------------------------------------------------- /registry/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .env 3 | .idea 4 | .idea/** 5 | -------------------------------------------------------------------------------- /registry/.sqlx/query-00e47bbd59d3b7c8bf522874ee92efe5d929da89c7a810d6ecda63f91aace768.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "DELETE FROM extensions\n WHERE id = $1", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int8" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "00e47bbd59d3b7c8bf522874ee92efe5d929da89c7a810d6ecda63f91aace768" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-1d305b40cb84e8ed2a3f1ed57a9bc8375387a13936128bf91ae5f30e0ee75d5e.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n UPDATE categories\n SET extension_count = extension_count - 1\n WHERE id = $1\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int8" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "1d305b40cb84e8ed2a3f1ed57a9bc8375387a13936128bf91ae5f30e0ee75d5e" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-1dee7b02e97b471263351d60ab6a3d8a2fe83a4113749e037d246df718457925.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n UPDATE categories\n SET extension_count = extension_count + 1\n WHERE id = $1\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int8" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "1dee7b02e97b471263351d60ab6a3d8a2fe83a4113749e037d246df718457925" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-246a9f7369555b2fbedcc5db3ac5a84ce5c889b227095a07e420b7b0b4a3ea3b.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n INSERT INTO extensions_categories(extension_id, category_id)\n VALUES ($1, $2)\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4", 9 | "Int4" 10 | ] 11 | }, 12 | "nullable": [] 13 | }, 14 | "hash": "246a9f7369555b2fbedcc5db3ac5a84ce5c889b227095a07e420b7b0b4a3ea3b" 15 | } 16 | -------------------------------------------------------------------------------- /registry/.sqlx/query-2898d7f3b57a07860872d2675506faf25583f041b6862d77a3e6fab1dc54d847.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT name FROM shared_preload_libraries", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "name", 9 | "type_info": "Varchar" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [] 14 | }, 15 | "nullable": [ 16 | false 17 | ] 18 | }, 19 | "hash": "2898d7f3b57a07860872d2675506faf25583f041b6862d77a3e6fab1dc54d847" 20 | } 21 | -------------------------------------------------------------------------------- /registry/.sqlx/query-293879a01947fadc812b0a4edd6e128a33917c8cd66cc4844c1101e95163c0c3.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT id FROM categories WHERE slug = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "id", 9 | "type_info": "Int8" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Text" 15 | ] 16 | }, 17 | "nullable": [ 18 | false 19 | ] 20 | }, 21 | "hash": "293879a01947fadc812b0a4edd6e128a33917c8cd66cc4844c1101e95163c0c3" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-36bc3613b2f0f2bf8347edc3ddc1c117a164f45f16195ff92c05f2eb764779bd.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT license FROM versions WHERE extension_id = $1 AND num = $2;", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "license", 9 | "type_info": "Varchar" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Int4", 15 | "Text" 16 | ] 17 | }, 18 | "nullable": [ 19 | true 20 | ] 21 | }, 22 | "hash": "36bc3613b2f0f2bf8347edc3ddc1c117a164f45f16195ff92c05f2eb764779bd" 23 | } 24 | -------------------------------------------------------------------------------- /registry/.sqlx/query-399e2d821efc414f5ec8e274d588b6e67fbfcb1366d2f637bc6f111d9b778b41.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT name FROM categories WHERE id = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "name", 9 | "type_info": "Varchar" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Int8" 15 | ] 16 | }, 17 | "nullable": [ 18 | false 19 | ] 20 | }, 21 | "hash": "399e2d821efc414f5ec8e274d588b6e67fbfcb1366d2f637bc6f111d9b778b41" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-49a41631cfe21efe58022e6e4026e6f3d388d8bb12ac478dbf30addab78d430e.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT category_id FROM extensions_categories WHERE extension_id = $1;", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "category_id", 9 | "type_info": "Int4" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Int4" 15 | ] 16 | }, 17 | "nullable": [ 18 | false 19 | ] 20 | }, 21 | "hash": "49a41631cfe21efe58022e6e4026e6f3d388d8bb12ac478dbf30addab78d430e" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-5650cfabaad409805e475fa8677e93ee489ee6e2f95d811635ec6b6ffbcce688.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT id FROM extensions WHERE name = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "id", 9 | "type_info": "Int8" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Text" 15 | ] 16 | }, 17 | "nullable": [ 18 | false 19 | ] 20 | }, 21 | "hash": "5650cfabaad409805e475fa8677e93ee489ee6e2f95d811635ec6b6ffbcce688" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-6991d9aae9d130b3d209ea5816847f661979e07c07f754c15e9b05eee3d61cb6.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT extension_id FROM versions WHERE extension_name = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "extension_id", 9 | "type_info": "Int4" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Text" 15 | ] 16 | }, 17 | "nullable": [ 18 | true 19 | ] 20 | }, 21 | "hash": "6991d9aae9d130b3d209ea5816847f661979e07c07f754c15e9b05eee3d61cb6" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-6d236366a29a5dac43d66e0be6e074372fa56b2ef1bac0e375af204c1a43a3f2.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n INSERT INTO extension_owners(extension_id, owner_id, user_name, created_at, created_by)\n VALUES ($1, $2, $3, (now() at time zone 'utc'), $2)\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4", 9 | "Varchar", 10 | "Varchar" 11 | ] 12 | }, 13 | "nullable": [] 14 | }, 15 | "hash": "6d236366a29a5dac43d66e0be6e074372fa56b2ef1bac0e375af204c1a43a3f2" 16 | } 17 | -------------------------------------------------------------------------------- /registry/.sqlx/query-756737edb5733514dcb510266ab577703d9cf4cb7f61702d7a4a15962fc8ae87.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT name FROM extensions WHERE id = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "name", 9 | "type_info": "Varchar" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Int8" 15 | ] 16 | }, 17 | "nullable": [ 18 | true 19 | ] 20 | }, 21 | "hash": "756737edb5733514dcb510266ab577703d9cf4cb7f61702d7a4a15962fc8ae87" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-7fa6e9c87a3295c5e95d71b9cad78194203613d041aea85816a4a71c3f4ac3df.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "INSERT INTO v1.trunk_project (name) \n VALUES ($1)\n ON CONFLICT (name) DO NOTHING", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Text" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "7fa6e9c87a3295c5e95d71b9cad78194203613d041aea85816a4a71c3f4ac3df" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-805d20f064e4a323d42c611f4719bd0fa4c152c330ff572609310fa306971468.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n INSERT INTO api_tokens(user_id, user_name, token, created_at)\n VALUES ($1, $2, $3, (now() at time zone 'utc'))\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Varchar", 9 | "Varchar", 10 | "Bytea" 11 | ] 12 | }, 13 | "nullable": [] 14 | }, 15 | "hash": "805d20f064e4a323d42c611f4719bd0fa4c152c330ff572609310fa306971468" 16 | } 17 | -------------------------------------------------------------------------------- /registry/.sqlx/query-8a3643fa646f1768ce6b3abdc949b6daade8f796a8f2b9a388f436e486425299.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n DELETE FROM extensions_categories\n WHERE extension_id = $1\n AND category_id = $2\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4", 9 | "Int4" 10 | ] 11 | }, 12 | "nullable": [] 13 | }, 14 | "hash": "8a3643fa646f1768ce6b3abdc949b6daade8f796a8f2b9a388f436e486425299" 15 | } 16 | -------------------------------------------------------------------------------- /registry/.sqlx/query-93dcb7f60cd6ddf42247b883db9771b15507aa0ceda52091c4886f55493a6b59.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "SELECT category_id FROM extensions_categories WHERE extension_id = $1", 4 | "describe": { 5 | "columns": [ 6 | { 7 | "ordinal": 0, 8 | "name": "category_id", 9 | "type_info": "Int4" 10 | } 11 | ], 12 | "parameters": { 13 | "Left": [ 14 | "Int4" 15 | ] 16 | }, 17 | "nullable": [ 18 | false 19 | ] 20 | }, 21 | "hash": "93dcb7f60cd6ddf42247b883db9771b15507aa0ceda52091c4886f55493a6b59" 22 | } 23 | -------------------------------------------------------------------------------- /registry/.sqlx/query-9e637cbebc5b0e977d84dacd9392572be5113b3ccca926e4cfeb3787d9e5a8c2.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "INSERT INTO readmes (extension_id, readme)\n VALUES ($1, $2)\n ON CONFLICT (extension_id)\n DO UPDATE SET readme = excluded.readme", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4", 9 | "Text" 10 | ] 11 | }, 12 | "nullable": [] 13 | }, 14 | "hash": "9e637cbebc5b0e977d84dacd9392572be5113b3ccca926e4cfeb3787d9e5a8c2" 15 | } 16 | -------------------------------------------------------------------------------- /registry/.sqlx/query-a355d51ccf9b49a96bf62078f00fb982ba11a3026d8b9f120d948b6c5e40d317.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "DELETE FROM versions\n WHERE extension_id = $1", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "a355d51ccf9b49a96bf62078f00fb982ba11a3026d8b9f120d948b6c5e40d317" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-bd184a09a0f45acc606a45ef90e0e41c500128881c1284374823f53c978b527d.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "INSERT INTO shared_preload_libraries(name)\n VALUES ($1)\n ON CONFLICT (name) DO NOTHING;", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Varchar" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "bd184a09a0f45acc606a45ef90e0e41c500128881c1284374823f53c978b527d" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-bdd38a42eae77d1ff93284a7a26973190408d533f19a7972bd9932c7204f5e33.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "DELETE FROM extension_owners\n WHERE extension_id = $1", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "bdd38a42eae77d1ff93284a7a26973190408d533f19a7972bd9932c7204f5e33" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-f29a9769c67e94ef0eb534c3ea009496dc13426c6d46f545ada1f9ebc9def26b.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "\n UPDATE categories\n SET extension_count = extension_count + 1\n WHERE id = $1\n ", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int8" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "f29a9769c67e94ef0eb534c3ea009496dc13426c6d46f545ada1f9ebc9def26b" 14 | } 15 | -------------------------------------------------------------------------------- /registry/.sqlx/query-f77d6c607d830e7ea1d564c34ec42b998e0c2657f4cdb8a89dd211a29b4a7d65.json: -------------------------------------------------------------------------------- 1 | { 2 | "db_name": "PostgreSQL", 3 | "query": "UPDATE versions\n SET download_count = download_count + 1\n WHERE extension_id = $1", 4 | "describe": { 5 | "columns": [], 6 | "parameters": { 7 | "Left": [ 8 | "Int4" 9 | ] 10 | }, 11 | "nullable": [] 12 | }, 13 | "hash": "f77d6c607d830e7ea1d564c34ec42b998e0c2657f4cdb8a89dd211a29b4a7d65" 14 | } 15 | -------------------------------------------------------------------------------- /registry/Dockerfile.postgres: -------------------------------------------------------------------------------- 1 | FROM quay.io/tembo/tembo-pg-cnpg:latest 2 | 3 | USER root 4 | 5 | RUN chown -R postgres:postgres $PGDATA && \ 6 | chmod -R 0700 $PGDATA 7 | ENV PGDATA /var/lib/postgresql/data2 8 | RUN mkdir -p $PGDATA 9 | RUN chown -R postgres:postgres $PGDATA && \ 10 | chmod -R 0700 $PGDATA 11 | USER postgres 12 | RUN pg_ctl init 13 | # Set permissive authentication 14 | RUN echo "host all all 0.0.0.0/0 trust" >> ${PGDATA}/pg_hba.conf 15 | COPY postgresql.conf ${PGDATA}/postgresql.conf 16 | 17 | -------------------------------------------------------------------------------- /registry/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | local-tembo: 5 | container_name: trunk-registry-pg 6 | build: 7 | context: . 8 | dockerfile: Dockerfile.postgres 9 | ports: 10 | - "5432:5432" 11 | 12 | -------------------------------------------------------------------------------- /registry/migrations/20230402001319_extensions.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS extensions ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name VARCHAR, 4 | updated_at TIMESTAMP, 5 | created_at TIMESTAMP, 6 | downloads INT4, 7 | description VARCHAR, 8 | homepage VARCHAR, 9 | documentation VARCHAR, 10 | repository VARCHAR 11 | ); 12 | -------------------------------------------------------------------------------- /registry/migrations/20230402001326_versions.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS versions ( 2 | id BIGSERIAL PRIMARY KEY, 3 | extension_id INT4, 4 | num VARCHAR, 5 | updated_at TIMESTAMP, 6 | created_at TIMESTAMP, 7 | downloads INT4, 8 | features JSONB, 9 | yanked BOOL, 10 | license VARCHAR, 11 | extension_size INT4, 12 | published_by INT4, 13 | checksum BPCHAR(64), 14 | links VARCHAR 15 | ); 16 | -------------------------------------------------------------------------------- /registry/migrations/20230402002617_versions.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE versions 2 | ADD CONSTRAINT fk_extension_id 3 | FOREIGN KEY (extension_id) 4 | REFERENCES extensions(id); 5 | -------------------------------------------------------------------------------- /registry/migrations/20230503113020_api_tokens.sql: -------------------------------------------------------------------------------- 1 | -- Add table api_tokens 2 | CREATE TABLE IF NOT EXISTS api_tokens ( 3 | id BIGSERIAL PRIMARY KEY, 4 | user_id VARCHAR, 5 | token BYTEA, 6 | name VARCHAR, 7 | created_at TIMESTAMP, 8 | last_used_at TIMESTAMP 9 | ); 10 | -------------------------------------------------------------------------------- /registry/migrations/20230505011559_extension_owners.sql: -------------------------------------------------------------------------------- 1 | -- Add table extension_owners 2 | CREATE TABLE IF NOT EXISTS extension_owners ( 3 | extension_id INT4 NOT NULL, 4 | owner_id VARCHAR NOT NULL, 5 | created_at TIMESTAMP, 6 | created_by VARCHAR, 7 | deleted BOOL NOT NULL DEFAULT false 8 | ); 9 | -------------------------------------------------------------------------------- /registry/migrations/20230509004025_api_tokens.sql: -------------------------------------------------------------------------------- 1 | -- Add user_name column to api_tokens 2 | ALTER TABLE api_tokens 3 | ADD COLUMN user_name VARCHAR; 4 | UPDATE api_tokens SET user_name = '' WHERE user_name IS NULL; 5 | 6 | ALTER TABLE api_tokens 7 | ALTER COLUMN user_name SET NOT NULL; 8 | 9 | -- Add user_name column to extension_owners 10 | ALTER TABLE extension_owners 11 | ADD COLUMN user_name VARCHAR; 12 | UPDATE extension_owners SET user_name = '' WHERE user_name IS NULL; 13 | 14 | ALTER TABLE extension_owners 15 | ALTER COLUMN user_name SET NOT NULL; -------------------------------------------------------------------------------- /registry/migrations/20230509022844_versions.sql: -------------------------------------------------------------------------------- 1 | -- Change published_by column type to VARCHAR 2 | ALTER TABLE versions 3 | ALTER COLUMN published_by TYPE VARCHAR; 4 | -------------------------------------------------------------------------------- /registry/migrations/20230726192933_featured_category.sql: -------------------------------------------------------------------------------- 1 | -- Add featured category definition 2 | INSERT INTO categories(name, slug, description, created_at) 3 | VALUES ('Featured', 'featured', 'Featured extension.', current_timestamp); 4 | -------------------------------------------------------------------------------- /registry/migrations/20230814162901_extension_name.sql: -------------------------------------------------------------------------------- 1 | -- Add extension_name column to versions table 2 | ALTER TABLE versions 3 | ADD COLUMN extension_name VARCHAR; 4 | UPDATE versions SET extension_name = e.name FROM extensions e WHERE versions.extension_id = e.id AND versions.extension_name IS NULL; 5 | -------------------------------------------------------------------------------- /registry/migrations/20230821224336_add_system_dependencies_to_versions_table.sql: -------------------------------------------------------------------------------- 1 | -- Add migration script here 2 | 3 | ALTER TABLE versions 4 | ADD COLUMN system_dependencies jsonb; -------------------------------------------------------------------------------- /registry/migrations/20230905230634_libraries.sql: -------------------------------------------------------------------------------- 1 | -- Add libraries column to versions table 2 | ALTER TABLE versions 3 | ADD COLUMN libraries jsonb; 4 | -------------------------------------------------------------------------------- /registry/migrations/20231011184807_add-readme-table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS readmes ( 2 | id BIGSERIAL PRIMARY KEY, 3 | extension_id INT4 UNIQUE NOT NULL, 4 | readme_html TEXT NOT NULL 5 | ); 6 | -------------------------------------------------------------------------------- /registry/migrations/20231012133409_add-download-count.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE versions 2 | ADD COLUMN download_count integer NOT NULL DEFAULT 0; 3 | 4 | UPDATE versions 5 | SET download_count = COALESCE(downloads, 0); 6 | 7 | ALTER TABLE versions 8 | DROP COLUMN downloads; 9 | 10 | ALTER TABLE extensions 11 | DROP COLUMN downloads; -------------------------------------------------------------------------------- /registry/migrations/20231017200707_rename-readme-field.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE readmes 2 | RENAME COLUMN readme_html TO readme; -------------------------------------------------------------------------------- /registry/migrations/20231025151106_fill_in_v1_trunk_project_and_versions.sql: -------------------------------------------------------------------------------- 1 | -- Fill in v1.trunk_project using current values for `extensions` 2 | INSERT INTO v1.trunk_project(name) 3 | SELECT DISTINCT name FROM extensions; 4 | 5 | -- Fill in v1.trunk_project_versions using current values from `extensions` and `versions` 6 | INSERT INTO v1.trunk_project_versions(trunk_project_name, version, description, repository_link, documentation_link) 7 | SELECT e.name, v.num, e.description, e.repository, e.documentation 8 | FROM extensions e 9 | JOIN versions v ON e.id = v.extension_id; -------------------------------------------------------------------------------- /registry/migrations/20231218173736_add-v1-platform.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE v1.platform ( 2 | id SERIAL PRIMARY KEY, 3 | platform_name VARCHAR(255) NOT NULL 4 | ); 5 | 6 | INSERT INTO v1.platform (platform_name) VALUES ('linux/amd64'); 7 | INSERT INTO v1.platform (platform_name) VALUES ('linux/arm64'); 8 | -------------------------------------------------------------------------------- /registry/migrations/20231218192146_add-v1-control-file.sql: -------------------------------------------------------------------------------- 1 | -- Create control_file table 2 | CREATE TABLE IF NOT EXISTS v1.control_file 3 | ( 4 | id SERIAL PRIMARY KEY, 5 | extension_version_id int REFERENCES v1.extension_versions(id), 6 | absent boolean DEFAULT false, 7 | content text DEFAULT '' 8 | ); 9 | 10 | -- For each record in v1.extension_versions, create a record in v1.control_file 11 | INSERT INTO v1.control_file (extension_version_id) 12 | SELECT id FROM v1.extension_versions; 13 | -------------------------------------------------------------------------------- /registry/migrations/20231219033400_add_v1_trunk_project_downloads.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE v1.trunk_project_downloads( 2 | id SERIAL PRIMARY KEY, 3 | platform_id int REFERENCES v1.platform(id), 4 | postgres_version_id int REFERENCES v1.postgres_version(id), 5 | trunk_project_version_id int REFERENCES v1.trunk_project_versions(id), 6 | download_url TEXT NOT NULL, 7 | download_count int NOT NULL DEFAULT 0, 8 | sha256 TEXT NOT NULL 9 | ); -------------------------------------------------------------------------------- /registry/migrations/20231226145027_add-constraint-to-v1-downloads.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE v1.trunk_project_downloads 2 | ADD CONSTRAINT unique_downloads UNIQUE (platform_id, postgres_version_id, trunk_project_version_id, download_url); -------------------------------------------------------------------------------- /registry/migrations/20240105202943_alter-v1-downloads-constraint.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE v1.trunk_project_downloads 2 | DROP CONSTRAINT unique_downloads; 3 | 4 | ALTER TABLE v1.trunk_project_downloads 5 | ADD CONSTRAINT unique_downloads UNIQUE (platform_id, postgres_version_id, trunk_project_version_id); -------------------------------------------------------------------------------- /registry/migrations/20240802164205_add-shared-preload-libraries-unique-constraint.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE public.shared_preload_libraries 2 | ADD CONSTRAINT unique_name UNIQUE (name); 3 | -------------------------------------------------------------------------------- /registry/migrations/20241113192924_add-postgresql-17.sql: -------------------------------------------------------------------------------- 1 | -- Add the library for pg_search 2 | INSERT INTO v1.postgres_version(major) VALUES (17); 3 | -------------------------------------------------------------------------------- /registry/migrations/20250103230002_libgroonga0.sql: -------------------------------------------------------------------------------- 1 | -- Add migration script here 2 | UPDATE versions 3 | SET system_dependencies = '{"apt":["libc6"]}'::jsonb 4 | FROM extensions 5 | WHERE extensions.name = 'pgroonga' AND extensions.id = versions.extension_id; 6 | -------------------------------------------------------------------------------- /registry/postgresql.conf: -------------------------------------------------------------------------------- 1 | listen_addresses = '*' 2 | 3 | -------------------------------------------------------------------------------- /registry/src/main.rs: -------------------------------------------------------------------------------- 1 | use crate::server::server; 2 | mod server; 3 | 4 | #[actix_web::main] 5 | async fn main() -> std::io::Result<()> { 6 | tracing_subscriber::fmt().compact().init(); 7 | 8 | server().await 9 | } 10 | -------------------------------------------------------------------------------- /registry/src/routes.rs: -------------------------------------------------------------------------------- 1 | pub mod categories; 2 | pub mod download; 3 | pub mod extensions; 4 | pub mod readmes; 5 | pub mod root; 6 | pub mod token; 7 | -------------------------------------------------------------------------------- /registry/src/routes/root.rs: -------------------------------------------------------------------------------- 1 | use actix_web::{get, HttpResponse, Responder}; 2 | use actix_web_httpauth::extractors::bearer::BearerAuth; 3 | 4 | use crate::errors::ExtensionRegistryError; 5 | 6 | #[get("/")] 7 | pub async fn ok() -> impl Responder { 8 | HttpResponse::Ok().json("ok") 9 | } 10 | 11 | #[tracing::instrument(skip(_auth))] 12 | #[get("/")] 13 | pub async fn auth_ok(_auth: BearerAuth) -> Result { 14 | Ok(HttpResponse::Ok().json("OK")) 15 | } 16 | -------------------------------------------------------------------------------- /registry/src/v1.rs: -------------------------------------------------------------------------------- 1 | pub mod extractor; 2 | pub mod forms; 3 | pub mod repository; 4 | pub mod responses; 5 | pub mod routes; 6 | -------------------------------------------------------------------------------- /registry/src/v1/forms.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /registry/src/v1/responses.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /registry/src/views.rs: -------------------------------------------------------------------------------- 1 | pub mod extension_publish; 2 | pub mod user_info; 3 | -------------------------------------------------------------------------------- /registry/src/views/user_info.rs: -------------------------------------------------------------------------------- 1 | pub struct UserInfo { 2 | pub user_id: String, 3 | pub user_name: String, 4 | } 5 | -------------------------------------------------------------------------------- /trunk-auth/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /trunk-auth/README.md: -------------------------------------------------------------------------------- 1 | # Trunk Auth 2 | 3 | A single-component website to send Clerk-authenticated requests. 4 | 5 | ## Running 6 | 7 | You must set the `REACT_APP_CLERK_PUBLISHABLE_KEY` variable in order for Trunk Auth to work. 8 | 9 | ### `REACT_APP_CLERK_PUBLISHABLE_KEY=... npm start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `npm run build` 18 | 19 | Builds the app for production to the `build` folder. -------------------------------------------------------------------------------- /trunk-auth/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/trunk-auth/public/favicon.ico -------------------------------------------------------------------------------- /trunk-auth/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/trunk-auth/public/logo192.png -------------------------------------------------------------------------------- /trunk-auth/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/trunk-auth/public/logo512.png -------------------------------------------------------------------------------- /trunk-auth/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Trunk Admin", 3 | "name": "Trunk Admin", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /trunk-auth/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /trunk-auth/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render, screen } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | render(); 7 | const linkElement = screen.getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /trunk-auth/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /trunk-auth/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /trunk-auth/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /trunk-auth/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /ui-archive/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /ui-archive/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | -------------------------------------------------------------------------------- /ui-archive/components/Footer/Footer.module.scss: -------------------------------------------------------------------------------- 1 | .footer { 2 | margin: 20px 20px; 3 | display: flex; 4 | justify-content: flex-start; 5 | align-items: center; 6 | text-decoration: none; 7 | } 8 | .text { 9 | font-style: normal; 10 | font-weight: 400; 11 | font-size: 12px; 12 | line-height: 15px; 13 | color: rgba(255, 255, 255, 0.87); 14 | margin: 0 5px; 15 | } 16 | .image { 17 | margin: 0 2px; 18 | } 19 | -------------------------------------------------------------------------------- /ui-archive/lib/fetchExtensions.ts: -------------------------------------------------------------------------------- 1 | const fetchExtensions = async () => { 2 | const apiRes = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}/extensions/all`); 3 | if (!apiRes.ok) { 4 | throw new Error("Error fetching all extensions"); 5 | } 6 | return apiRes.json(); 7 | }; 8 | 9 | export default fetchExtensions; 10 | -------------------------------------------------------------------------------- /ui-archive/lib/formatDate.ts: -------------------------------------------------------------------------------- 1 | import { formatDistanceToNow, parseISO, format } from "date-fns"; 2 | 3 | export function formatDateString(date: String | undefined) { 4 | try { 5 | if (!date) { 6 | return ""; 7 | } 8 | const formatted = format(new Date(date.split(".")[0].replace(/-/g, "/")), "yyyy-MM-dd HH:mm"); 9 | const isoParse = parseISO(`${formatted}Z`); 10 | const formattedDate = formatDistanceToNow(isoParse, { addSuffix: true }); 11 | return formattedDate; 12 | } catch (error) { 13 | return ""; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ui-archive/lib/truncateString.ts: -------------------------------------------------------------------------------- 1 | export function truncateString(str: string, num = 100) { 2 | if (str.length > num) { 3 | return str.slice(0, num) + "..."; 4 | } else { 5 | return str; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ui-archive/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | images: { 5 | remotePatterns: [ 6 | { 7 | protocol: "https", 8 | hostname: "**.images.clerk.dev/**", 9 | }, 10 | { 11 | protocol: "https", 12 | hostname: "**.pgtrunk.io/**", 13 | }, 14 | { 15 | protocol: "https", 16 | hostname: "**.amplifyapp.com/**", 17 | }, 18 | ], 19 | }, 20 | }; 21 | 22 | module.exports = nextConfig; 23 | -------------------------------------------------------------------------------- /ui-archive/pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from "next/document"; 2 | 3 | export default function Document() { 4 | return ( 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /ui-archive/pages/index.module.scss: -------------------------------------------------------------------------------- 1 | .main { 2 | box-sizing: border-box; 3 | background: linear-gradient(103.48deg, #d7036a 2.42%, #ff5c00 73.18%, #ff7a00 98.1%); 4 | display: flex; 5 | flex-direction: column; 6 | justify-content: space-between; 7 | min-width: 100vw; 8 | min-height: 100vh; 9 | width: 100%; 10 | height: 100%; 11 | } 12 | -------------------------------------------------------------------------------- /ui-archive/pages/sso-callback.tsx: -------------------------------------------------------------------------------- 1 | import { AuthenticateWithRedirectCallback } from "@clerk/nextjs"; 2 | 3 | export default function SSOCallBack() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /ui-archive/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui-archive/public/favicon.ico -------------------------------------------------------------------------------- /ui-archive/types.ts: -------------------------------------------------------------------------------- 1 | export interface ExtensionOwner { 2 | userId: string; 3 | userName: string; 4 | } 5 | export interface ExtensionListing { 6 | name: string; 7 | description: string; 8 | author: string; 9 | authorLink: string; 10 | isInstalled?: boolean; 11 | createdAt?: string; 12 | latestVersion?: string; 13 | updatedAt?: string; 14 | homepage?: string; 15 | repository?: string; 16 | license?: string; 17 | owners: ExtensionOwner[]; 18 | fileSize: string; 19 | } 20 | -------------------------------------------------------------------------------- /ui/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /ui/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | .env 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /ui/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "semi": true, 5 | "singleQuote": true, 6 | "bracketSameLine": true 7 | } 8 | -------------------------------------------------------------------------------- /ui/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | /* Do not use this for server-only env vars 5 | * see: https://nextjs.org/docs/pages/api-reference/next-config-js/env 6 | * use this approach instead: https://docs.aws.amazon.com/amplify/latest/userguide/ssr-environment-variables.html 7 | * also see: https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables 8 | */ 9 | env: {}, 10 | }; 11 | 12 | module.exports = nextConfig; 13 | -------------------------------------------------------------------------------- /ui/public/LinkIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/LinkIcon.png -------------------------------------------------------------------------------- /ui/public/OctocatIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/OctocatIcon.png -------------------------------------------------------------------------------- /ui/public/TemboElephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/TemboElephant.png -------------------------------------------------------------------------------- /ui/public/TrunkLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/TrunkLogo.png -------------------------------------------------------------------------------- /ui/public/bg_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/bg_text.png -------------------------------------------------------------------------------- /ui/public/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/copy.png -------------------------------------------------------------------------------- /ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/favicon.ico -------------------------------------------------------------------------------- /ui/public/information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/information.png -------------------------------------------------------------------------------- /ui/public/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/og-image.png -------------------------------------------------------------------------------- /ui/public/slack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/slack_logo.png -------------------------------------------------------------------------------- /ui/public/trunk_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tembo-io/trunk/39b385dbd4e2640e3956006ec4f6b495a0f3c4fc/ui/public/trunk_logo.png -------------------------------------------------------------------------------- /ui/src/Components/Footer/footer.module.scss: -------------------------------------------------------------------------------- 1 | @import "../../variables.scss"; 2 | .footer { 3 | height: 60px; 4 | background-color: black; 5 | display: flex; 6 | flex-direction: row; 7 | justify-content: flex-start; 8 | align-items: center; 9 | padding-left: 10px; 10 | } 11 | .link { 12 | color: $white; 13 | font-family: $inter; 14 | font-size: 1rem; 15 | display: flex; 16 | flex-direction: row; 17 | align-items: baseline; 18 | } 19 | .small { 20 | font-size: 0.7rem; 21 | margin-right: 10px; 22 | } 23 | .image { 24 | margin-right: 5px; 25 | } 26 | -------------------------------------------------------------------------------- /ui/src/formatDate.ts: -------------------------------------------------------------------------------- 1 | import { formatDistanceToNow, parseISO, format } from 'date-fns'; 2 | 3 | export function formatDateString(date: String | undefined) { 4 | try { 5 | if (!date) { 6 | return ''; 7 | } 8 | const formatted = format( 9 | new Date(date.split('.')[0].replace(/-/g, '/')), 10 | 'yyyy-MM-dd HH:mm' 11 | ); 12 | const isoParse = parseISO(`${formatted}Z`); 13 | const formattedDate = formatDistanceToNow(isoParse, { addSuffix: true }); 14 | return formattedDate; 15 | } catch (error) { 16 | return ''; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ui/src/hooks/useExtList.ts: -------------------------------------------------------------------------------- 1 | import useSWR from 'swr'; 2 | 3 | const fetcher = (...args: [RequestInfo, RequestInit]): Promise => 4 | fetch(...args).then((res) => res.json()); 5 | const REGISTRY_URL = 6 | process.env.NEXT_PUBLIC_API_BASE_URL || 'https://registry.pgtrunk.io'; 7 | 8 | export default function useExtList() { 9 | const { data, error, isLoading } = useSWR( 10 | `${REGISTRY_URL}/extensions/all`, 11 | fetcher 12 | ); 13 | 14 | return { 15 | extensions: data, 16 | isLoading, 17 | isError: error, 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /ui/src/pages/index.module.scss: -------------------------------------------------------------------------------- 1 | @import "../variables.scss"; 2 | .main { 3 | position: relative; 4 | min-height: 100vh; 5 | background-color: $light-tan; 6 | width: 100%; 7 | // min-width: 100vw; 8 | } 9 | .body { 10 | display: flex; 11 | flex-direction: row; 12 | align-items: flex-start; 13 | min-height: 100%; 14 | } 15 | -------------------------------------------------------------------------------- /ui/src/pages/search/index.tsx: -------------------------------------------------------------------------------- 1 | export default function Search() { 2 | return

Search

; 3 | } 4 | -------------------------------------------------------------------------------- /ui/src/stringHelpers.ts: -------------------------------------------------------------------------------- 1 | export const truncate = (str: string, n = 100) => { 2 | return str?.length > n ? str?.slice(0, n - 1) + '...' : str; 3 | }; 4 | -------------------------------------------------------------------------------- /ui/src/types.ts: -------------------------------------------------------------------------------- 1 | export type Extension = { 2 | slug: string; 3 | name: string; 4 | description: string; 5 | categories: string[]; 6 | tags: string[]; 7 | owners: Owner[] | null; 8 | license: string; 9 | version: string; 10 | repository?: string; 11 | homepage?: string; 12 | updatedAt: string; 13 | }; 14 | 15 | export type Owner = { 16 | useId: string; 17 | userName: string; 18 | }; 19 | export type Category = { 20 | slug: string; 21 | name: string; 22 | extension_count: number; 23 | }; 24 | 25 | export type CategoriesForGrid = { 26 | [key: string]: { 27 | displayName: string; 28 | }; 29 | }; 30 | --------------------------------------------------------------------------------