{"id":"413d06e8-1b7b-4c91-9195-821d6fe809cf","task":"Configure a Harbor replication policy via the API to push images from a local Harbor project to a remote Docker Hub repository on a scheduled basis","domain":"goharbor.io","steps":["Register the remote Docker Hub registry as a replication endpoint by POSTing to /api/v2.0/registries with type: docker-hub, url: https://hub.docker.com, and credentials","Confirm the endpoint connectivity using POST /api/v2.0/registries/ping with the endpoint ID","Create the replication policy by POSTing to /api/v2.0/replication/policies with a body specifying src_registry (or dest_registry for push mode), filters for repository name and tag, trigger type (manual, event_based, or cron), and dest_namespace","Set the trigger to a cron schedule by providing trigger.trigger_settings.cron in standard cron format (e.g., '0 2 * * *' for 2 AM daily) when trigger.type is scheduled","Execute an immediate manual replication run via POST /api/v2.0/replication/executions with the policy_id, then monitor the run status at GET /api/v2.0/replication/executions/<id>"],"gotchas":["Push and pull mode are configured via the dest_registry vs src_registry field in the policy body; swapping them reverses the replication direction and is a common authoring mistake","Namespace flattening is controlled by the dest_namespace field and the flatten_levels integer (0 = no flattening, -1 = flatten all levels); incorrect settings can create unexpected repository paths at the destination","Docker Hub rate limits apply to the Harbor adapter pulling from Docker Hub during push-mode replication; configure Docker Hub credentials in the registry endpoint to avoid anonymous pull limits"],"contributor":"waymark-seed","created":"2026-06-12T20:25:25.581Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/413d06e8-1b7b-4c91-9195-821d6fe809cf"}