{"id":30696093,"url":"https://github.com/ttab/elephant-replicant","last_synced_at":"2025-09-02T07:35:28.774Z","repository":{"id":307669804,"uuid":"1029754414","full_name":"ttab/elephant-replicant","owner":"ttab","description":"Replicates data to another Elephant environment","archived":false,"fork":false,"pushed_at":"2025-09-01T09:44:33.000Z","size":1438,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T11:50:22.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-31T14:17:48.000Z","updated_at":"2025-09-01T09:43:42.000Z","dependencies_parsed_at":"2025-08-01T14:43:52.144Z","dependency_job_id":"68abf62c-f351-41a6-973f-0e6acb1fdca5","html_url":"https://github.com/ttab/elephant-replicant","commit_stats":null,"previous_names":["ttab/elephant-replicant"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ttab/elephant-replicant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Felephant-replicant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Felephant-replicant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Felephant-replicant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Felephant-replicant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttab","download_url":"https://codeload.github.com/ttab/elephant-replicant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Felephant-replicant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273250375,"owners_count":25072167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-02T07:35:25.578Z","updated_at":"2025-09-02T07:35:28.735Z","avatar_url":"https://github.com/ttab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elephant Replicant\n\n\u003cp\u003e\n  \u003cimg src=\"https://github.com/ttab/elephant-replicant/raw/main/docs/elephant-replicant.png?raw=true\" width=\"256\" alt=\"Elephant Replicant\"\u003e\n\u003c/p\u003e\n\nReplicates data to another Elephant environment. The replicant uses optimistic locking to prevent overwrites of documents that have been modified in the destination. This is not replication as a method of providing a backup or standby instance, rather it's a solution for keeping a stage or QA environment updated with relevant data.\n\nACL:s will always be replicated.\n\nAttachments will only be replicated if `-all-attachments` is set or if they have been explicitly enabled by document type and attachment name using `-include-attachments`.\n\n## Example configuration\n\nConfiguration for running replication to a local repository instance:\n\n``` shell\nADDR=:1280\nPROFILE_ADDR=:1281\n\nIGNORE_TYPES=core/article+meta,tt/wire,tt/wire-provider,tt/wire-source\nIGNORE_SUBS=core://application/elephant-wires\n#INCLUDE_ATTACHMENTS=image.core/image,laygout.tt/print-layout\nALL_ATTACHMENTS=true\n\n# Replicate from prod\nREPOSITORY_ENDPOINT=https://repository.api.tt.ecms.se\nOIDC_CONFIG=https://login.tt.se/realms/elephant/.well-known/openid-configuration\nCLIENT_ID=replicant-send\nCLIENT_SECRET=xoxo\n\n# Replicate from stage\n# REPOSITORY_ENDPOINT=https://repository.stage.tt.se\n# OIDC_CONFIG=https://login.stage.tt.se/realms/elephant/.well-known/openid-configuration\n# CLIENT_ID=replicant-send\n# CLIENT_SECRET=xoxo\n\nTARGET_REPOSITORY_ENDPOINT=http://localhost:1080\nTARGET_OIDC_CONFIG=https://login.stage.tt.se/realms/elephant/.well-known/openid-configuration\nTARGET_CLIENT_ID=replicant-receive\nTARGET_CLIENT_SECRET=xoxo\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttab%2Felephant-replicant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttab%2Felephant-replicant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttab%2Felephant-replicant/lists"}