{"id":50681159,"url":"https://github.com/codeccoop/http-bridge","last_synced_at":"2026-06-08T19:03:45.618Z","repository":{"id":336132681,"uuid":"1147984948","full_name":"codeccoop/http-bridge","owner":"codeccoop","description":"Bridge WordPress with backends over HTTP","archived":false,"fork":false,"pushed_at":"2026-02-12T13:28:02.000Z","size":420,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T22:14:44.813Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeccoop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-02T12:49:23.000Z","updated_at":"2026-02-12T13:28:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/codeccoop/http-bridge","commit_stats":null,"previous_names":["codeccoop/http-bridge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codeccoop/http-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeccoop%2Fhttp-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeccoop%2Fhttp-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeccoop%2Fhttp-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeccoop%2Fhttp-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeccoop","download_url":"https://codeload.github.com/codeccoop/http-bridge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeccoop%2Fhttp-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34076000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":"2026-06-08T19:03:40.557Z","updated_at":"2026-06-08T19:03:45.608Z","avatar_url":"https://github.com/codeccoop.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"![HTTP Bridge](./assets/icon-256x256.png)\n\nConnect WP with backends over HTTP.\n\n## What's this pluggin for?\n\nThis plugin connects WordPress with backends in a bidirectional way. The idea behind\nthe plugin is to allow CRUD (create, read, update, and delete) operations between\nthe two realms.\n\n## How does it work?\n\nThe plugin offers a high level API to perform HTTP requests from WordPress, as well as,\na bearer authentication system based on JWT to allow remote source control of the\nWordPress instance over its REST API.\n\nThe other core feature offered by the plugin is the _backends_ setting with which you\ncan configure multiple backend connections to connect with and reuse in your instance.\nEach backend can be configured with a set of default headers to perform authentication\nagainst the remote server over the HTTP protocol.\n\n\u003e Bearer authentication extends the WP user system. This means that the backend should\n\u003e know some login credentials to generate access tokens. If your are concerned about\n\u003e security about this login mechanism, you can create custom roles to assign to your\n\u003e backend user to limit its capabilities.\n\n## Installation\n\nDownload the [latest release](https://git.coopdevs.org/codeccoop/wp/plugins/bridges/http-bridge/-/releases/permalink/latest/downloads/plugins/bridges/http-bridge.zip)\nas a zipfile. Once downloaded, go to your site plugins page and upload the zip file as a\nnew plugin, WordPress will handle the rest.\n\n\u003e Go to the [releases](https://git.coopdevs.org/codeccoop/wp/plugins/bridges/http-bridge/-/releases)\n\u003e to find previous versions.\n\nIf you have access to a console on your server, you can install it with `wp-cli` with the\nnext command:\n\n```shell\nwp plugin install https://git.coopdevs.org/codeccoop/wp/plugins/bridges/http-bridge/-/releases/permalink/latest/downloads/plugins/bridges/http-bridge.zip\n```\n\n## Getting started\n\nSee [install](#install) section to learn how to install the plugin. Once installed,\ngo to `Settings \u003e Http Bridge` to configure your backend connections. The settings\npage has two main sections:\n\n1. General\n   - **Whitelist backends**: Controls if HTTP Bridge should block incomming connections\n     to the `wp-bridges` REST API namespace from other sources than the listed on de\n     _backends_ setting.\n   - **Backends**: List of configured backend connections. Each backend needs a unique\n     name, a base URL, and, optional, a map of HTTP headers.\n\n## HTTP requests\n\nHttp Bridge offers a high level API to perform HTTP requests from WordPress with four\nmethods: `http_bridge_get`, `http_bridge_post`, `http_bridge_put` and `http_bridge_delete`.\n\nSee the [documentation](./docs/API.md#methods) for more information about the API.\n\n### Content types\n\nWhen using some HTTP method that supports **body** on the request (POST and PUT), Http\nBridge will try to encode its content for you. You can control how Http Bridge encode\nyour data on the body with the header `Content-Type`. If this header isn't present,\nHttp Bridge will encode your data as JSON string. Supported content types are\n`application/json`, `application/x-www-form-urlencoded` and `multipart/form-data`.\n\n\u003e If your requests needs to transfer files, Http Bridge will switch to the `multipart/form-data`\n\u003e encoding schema, the only that supports binary data transfers.\n\nIf you want to use some other encoding schema, you should encode your data and transform\nit to string before pass it to Http Bridge. When the data comes in form of a string,\nHttp Bridge skips the encoding step and pass them away as the body of the request.\n\n\u003e GET and DELETE methods doesn't support request body, so your data will be encoded as\n`application/x-www-form-urlencoded` and appended to your URL as query params.\n\n## Backends\n\nHttp Bridge can be configured with many backend connexions to handle HTTP requests.\n\nEach backend connexion needs a unique name that identifies it and a base URL. The base URL\nwill be prepended to your form hook endpoints to build the URLs from the backend HTTP API.\nTo each backend you can set a collection of HTTP headers to be sent on each request. In addition,\nHttp Bridge will add some default headers to the request.\n\nUsing backends objects as agents to perform HTTP requests it's an easey way to reuse code\nand configuration across your multiple connexions.\n\n\u003e Backend's content type HTTP header will drive how Http Bridge works in the same way as it\n\u003e do with the plain HTTP methods explained before.\n\n## Authorization\n\nWrite operations over the WP REST API are protected with authentication. At the same time,\nthere is not a standard method to authenticate clients over the standard REST API. To fill\nthis gap, Http Bridge exposes a couple of endpoints to gain access to the WP via REST API\non top of JWT and the Bearer Authentication schema. Go to the [documentation](./docs/REST-API.md)\nfor more information.\n\n### Auth secret\n\nTo be able to cryptographicaly sign the JWT, HTTP Bridge needs a secret. This secret\nshould be defined as a const on your code as `HTTP_BRIDGE_AUTH_SECRET`. If you don't\ndefine it, Http Bridge will work with its default value, but you are exposed to\nsecurity issues. **Please, don't do this on production environments!!**.\n\n## Developers\n\nThe plugin offers some hooks to expose its internal API. Go to [API](./docs/API.md) to see\nmore details about the hooks, or to [REST API](./docs/REST-API.md) to see its endpoints.\n\n### Local development\n\nThe repository handles dependencies as [git submodules](https://www.atlassian.com/git/tutorials/git-submodule).\nIn order to work local, you have to clone this repository and initialize its submodules with this\ncommand:\n\n```bash\ngit submodule sync\ngit submodule update --init\n```\n\nOnce done, you will need to install frontend dependencies with `npm install`. To build the admin's react client,\nrun `npm run dev` for development, or `npm run build` for production builts.\n\n\u003e We work WordPress with docker. See our [development setup](https://github.com/codeccoop/wp-development/)\n\u003e if you are interested.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeccoop%2Fhttp-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeccoop%2Fhttp-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeccoop%2Fhttp-bridge/lists"}