UNPKG

webcm

Version:

Demonstrative implementation of a web-based manager for utilising Managed Components

76 lines (56 loc) 2.27 kB
<img alt="WebCM" src="https://user-images.githubusercontent.com/55081/181248752-3f8988e0-195f-465c-b7e2-91fa81aed555.png"> WebCM is a proxy server implementation of a [Components Manager](https://managedcomponents.dev/getting-started/components-manager). It works independently from your existing HTTP server. By proxying your server, it can add endpoints, execute server-side code, manipulate responses and more. These capabilities allow for a very performant way to load Managed Components. ## Usage > 💡 **Prerequisite:** To run WebCM you need to use Node version 18. You can > then install all dependencies with `npm i`. It's very easy to get up and running with WebCM using `npx`! 1. Create a `webcm.config.ts` config file (use [example.config.ts](./example.config.ts) as an example) 2. Run `npx webcm` 3. WebCM will automatically download the Managed Components you specified and start the server ## Develop 1. `git clone git@github.com:cloudflare/webcm.git && cd webcm && npm i` 2. Create a `webcm.config.ts` config file (use [example.config.ts](./example.config.ts) as an example) 3. Run `npm run dev` ## Build your own Managed Components You might want to make WebCM load a locally developed Managed Component. To do so, run: ```bash npx webcm path/to/component.ts ``` This will run the component on a simple static site, with all permissions enabled. If you want to proxy a different website, pass the URL as another CLI argument: ```bash npx webcm path/to/component.ts https://example.com ``` To pass custom settings to that component, use `--settings_<settingName>` flags, like so: ```bash npx webcm path/to/component.ts --settings_apiKey=xxxxxxxxx ``` To test the component with different permissions, create a `webcm.config.ts` (see [example.config.ts](./example.config.ts)) and set it to: ```ts export default { components: [ { path: './path/to/component.ts', permissions: ['execute_unsafe_scripts'], }, ], } ``` ## Read more - See [managedcomponents.dev](https://managedcomponents.dev) for more information about Managed Components and how they work - Check the [Managed Component Starter Template](https://github.com/managed-components/starter-template) for buildin your own Managed Component