From b68060c1f0b19c9ecb1464ae399f034af83e7578 Mon Sep 17 00:00:00 2001 From: Alex Casalboni Date: Tue, 11 Mar 2025 12:26:43 +0100 Subject: [PATCH 1/5] update registry docs for the public launch: remove all beta references, overall copyediting pass --- services/registry/developer-guide.mdx | 187 +++++++++++++++----------- services/registry/faqs.mdx | 62 ++++----- services/registry/foundations.mdx | 43 +++--- services/registry/overview.mdx | 26 ++-- 4 files changed, 172 insertions(+), 146 deletions(-) diff --git a/services/registry/developer-guide.mdx b/services/registry/developer-guide.mdx index b153162..1ee0d58 100644 --- a/services/registry/developer-guide.mdx +++ b/services/registry/developer-guide.mdx @@ -1,5 +1,5 @@ --- -title: Developer Guide [Beta] +title: Developer Guide description: Step-by-step guide for component developers icon: rectangle-terminal --- @@ -8,14 +8,8 @@ import EdgeeSdk from '/snippets/edgee-sdk.mdx'; - - BETA: this page refers to a beta version of the Edgee Component Registry. - Breaking changes might happen in the next few weeks, please consider this unstable and share your feedback in the - appropriate channels if you find a bug or security vulnerability. - - -This guide will cover how to create and test a new component locally, -compile it to WebAssembly, and push it to the Edgee Component Registry. +This guide will cover how to create a new component, +compile it to WebAssembly, test it locally, and push it to the Edgee Component Registry. Before diving into this guide, we highly recommend reviewing these [foundational concepts](./foundations). @@ -53,21 +47,62 @@ $ ./target/release/edgee --version Second, log in using the token from your Edgee account (you can [create one here](https://www.edgee.cloud/~/me/settings/tokens)): -```shell + + +```shell Simple login $ edgee login -Enter Edgee API token (press Ctrl+R to toggle input display): **** +? Your default browser will be opening to Edgee's API token creation page. Do you want to continue? (Y/n) +? Enter Edgee API token (press Ctrl+R to toggle input display): ********** +[You can create one at https://www.edgee.cloud/~/me/settings/tokens] +Logged as Your name (email@example.com) ``` +```shell Using profiles +$ edgee login --profile test +? Your default browser will be opening to Edgee's API token creation page. Do you want to continue? (Y/n) +? Enter Edgee API token (press Ctrl+R to toggle input display): ********** +[You can create one at https://www.edgee.cloud/~/me/settings/tokens] +Logged as Your name (email@example.com) +``` + + + + Verify that the API is working correctly using this token: -```shell + + +```shell Simple login $ edgee whoami Logged in as: ID: XYZ-XYZ-DYZ Name: Your name Email: your@email.com + Url: https://api.edgee.app ``` +```shell Using profiles +$ edgee whoami --profile test +Logged in as: + ID: XYZ-XYZ-DYZ + Name: Your name + Email: your@email.com + Url: https://api.edgee.app + Profile: test +``` + + + + + Note: the credentials location depends on your operating system. + + On Linux, it's under `$HOME/.config/edgee`. + + On macOS, it's under `$HOME/Library/Application\ Support/edgee`. + + On Windows, it's under `{FOLDERID_RoamingAppData}\edgee`. + + #### How to upgrade CLI version Depending on your installation method, you can upgrade to the latest version/release as follows: @@ -83,6 +118,10 @@ $ brew update $ brew install edgee ``` +```shell cargo binstall +$ cargo binstall edgee +``` + ```shell build from source (Rust) $ cd edgee $ git pull @@ -99,10 +138,17 @@ If you need guidance on a given command or sub-command, check out the `help` com $ edgee help Usage: edgee Commands: - login Log in to the Edgee Console - whoami Print currently login informations - components Components management commands [aliases: component] - serve Run the Edgee server [aliases: server] + login Log in to the Edgee Console + whoami Print currently login informations + components Components management commands [aliases: component] + serve Run the Edgee server [aliases: server] + self-update Update the Edgee executable + generate-shell-completion Print auto-completion script for your shell init file + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help Print help + -V, --version Print version ``` You can also use it to explore available sub-commands: @@ -127,12 +173,15 @@ Or command-specific options: $ edgee help components test Usage: edgee components test [OPTIONS] Options: - --settings Comma-separated key=value pairs for settings - --event-type The event type you want to test [possible values: page, track, user] - --display-input Whether to log the full input event or not (false by default) + --settings Comma-separated key=value pairs for settings + --settings-file File containing the settings + --event-type The event type you want to test [possible values: page, track, user] + --display-input Whether to log the full input event or not (false by default) + --curl Will print to stdout the cURL command for your EdgeeRequest + --make-http-request Will automatically make an HTTP request for your EdgeeRequest ``` -Alternatively, `--help` and `-h` also work in all cases. +Alternatively, use `--help` or `-h`. #### How to enable auto-completion @@ -143,7 +192,7 @@ $ edgee generate-shell-completion [SHELL] # supported value: bash, elvish, fish, powershell, zsh ``` -If no argument it passed, the CLI will try to guess it based on the environment. +If no argument it passed, the CLI will try to guess the shell type based on the environment. To install the completions, source them in your shell init file: @@ -186,7 +235,9 @@ $ edgee generate-shell-completion elvish >> ~/.config/elvish/rc.elv Next, run `edgee components new` to create a new component and choose your preferred programming language. This creates a local folder containing sample code and tools to help you get started quickly. -```shell + + +```shell Guided UX $ edgee components new ? Enter the component name: my-component ? Select a programming language: @@ -199,15 +250,20 @@ $ edgee components new TypeScript INFO Downloading sample code for Rust... INFO Extracting code... + INFO Downloading WIT files... INFO New project my-component is ready! Check README for dependencies. ``` -Or use inline options: - -```shell +```shell Inline options $ edgee components new --name my-component --language rust + INFO Downloading sample code for Rust... + INFO Extracting code... + INFO Downloading WIT files... + INFO New project my-component is ready! Check README for dependencies. ``` + + Navigate to the new folder to begin customizing your component and implementing its business logic. #### Component manifest file @@ -315,7 +371,7 @@ record edgee-request { ``` If you're curious to dive deeper into the WIT definitions, [check out the repository on GitHub](https://github.com/edgee-cloud/edgee-wit). -Based on the programming language, you'll find the corresponding types and unit tests to help you with the implementation. +Based on the programming language you chose, you'll find the corresponding types and unit tests to help you with the implementation. In case you're having trouble with implementing your component, check out other existing components such as [Google Analytics](https://github.com/edgee-cloud/ga-component), [Segment](https://github.com/edgee-cloud/segment-component), @@ -334,26 +390,6 @@ or [Amazon S3](https://github.com/edgee-cloud/amazon-s3-component). Similarly, the Amazon S3 component points to `https://{bucket}.s3.amazonaws.com` with the correct sigv4 authentication headers. - - BETA: if you created a new component before Feb 25th, you might encounter build/test errors due to a breaking change. - You'll need to upgrade to the latest WIT definitions, here's what needs to happen: - 1. Edit your `wit/deps.toml` file and update the WIT dependency to `v0.5.0` - 2. Edit your `wit/world.wit` file and rename `edgee:protocols` to `edgee:components` - 3. Run `wit-deps` in your main folder (documentation [here](https://github.com/bytecodealliance/wit-deps))- this will - update all the WIT files automatically - 4. Update the "protocols" references in your implementation (see these reference PRs for - [C](https://github.com/edgee-cloud/example-c-component/pull/9), - [C#](https://github.com/edgee-cloud/example-csharp-component/pull/6), - [Go](https://github.com/edgee-cloud/example-go-component/pull/7), - [Rust](https://github.com/edgee-cloud/example-rust-component/pull/10), - [JavaScript](https://github.com/edgee-cloud/example-js-component/pull/12), and - [TypeScript](https://github.com/edgee-cloud/example-ts-component/pull/6)) - 5. Edit your `edgee-component.toml` file update the `wit-version` field to `0.5.0` - - **Note**: this kind of breaking change is very rare and won't happen after the public announcement. Additionaly, we are going - to hide some of the WIT-related complexity so that all you need to do in the future is step 5. - - #### Reusability and settings To make your Edgee component reusable for other developers and organizations via the Edgee Component Registry, @@ -377,15 +413,14 @@ options ["value1", "value2", "value3"] In this case, `example-name` is the key your business logic will use to get its value from the `settings` dict. - - BETA: even if defined as number or bool, all settings are treated as strings when you receive them in the - business logic. For now, it's your responsibility to parse them into the correct type. In the future, the WIT - definition will handle types automatically as well. - + + Note: even if defined as `number` or `bool`, all settings are treated as strings when your component receives them. + For now, you'll need to parse them into the correct type. In the future, our WIT definitions will handle types automatically as well. + ### Step 3: Build and test locally -When the implementation is ready, build your component locally: +When the implementation is ready, compile your component into Wasm: ```shell $ edgee components build @@ -395,11 +430,12 @@ You can customize the behavior of the build command in the manifest file by chan and the default build script. If you've created a new component with `edgee components new` the default build script should be a great starting point. By default, the output of this command will be a new Wasm file in the current folder. - - BETA: the Edgee CLI is intended to simplify and make local development uniform across programming languages. - While some of the complexity is still visible today (with long multi-step commands and additional Makefiles or npm scripts), - our goal is to hide most of that complexity behind `edgee components build` in the future. - + + Note: the Edgee CLI is intended to simplify and make local development uniform across programming languages. + + While some of the compiling details are still visible today because of long multi-step commands or additional support scripts, + our long-term goal is to hide most of that complexity behind `edgee components build` in the future. + Before pushing your component to the Edgee Component Registry, it's highly recommended to validate and test the Wasm file locally: @@ -418,21 +454,15 @@ If no `--event-type` is provided, it will run the Wasm file with all event types This helps ensure your component behaves as expected from the proxy's perspective, in addition to your unit tests. - Note: the test command needs a local Wasm file, so don't forget to re-compile your component to Wasm after - updating your code. + Note: the test command is using your Wasm file, not your source code directly. + So don't forget to re-compile your component to Wasm after code updates. - -#### Test events +#### Using test events Test events represent the typical structure of an Edgee event. - - BETA: for now test events are static objects, eventually you'll be able to provide a custom JSON object that - better suits your component's needs. - - For example, the sample `page` event looks like the following: ```json @@ -497,6 +527,12 @@ For example, the sample `page` event looks like the following: Please note that you don't need to manually parse the input event in your business logic. Your handlers will receive it in the form of a native object in your language of choice, thanks to Wasm/WIT's code generation. + + Test events are static objects for now. In the near future, you'll be able to provide a + custom JSON object that better suits your component's needs. + + + #### Test HTTP requests By default, the test command runs your local Wasm file and prints out the resulting `edgee-request` object. @@ -508,20 +544,20 @@ $ edgee components test [options] --make-http-request ``` -Alternatively, if you prefer running the HTTP request yourself, the CLI can provide a cURL command: +Alternatively, if you prefer running the HTTP request yourself, generate the corresponding cURL command: ```shell $ edgee components test [options] --curl ``` - Note: we highly recommend using test or staging environments to avoid logging test data into - production systems or analytics APIs. + Note: we recommend using test or staging environments whenever possible to avoid + logging test data into production systems or analytics APIs. ### Step 3: Push to the registry -When you're ready to publish your component, it's time to push it to the registry. +When your component is ready for some action, it's time to push it to the registry. Make sure you went through these steps so far: 1. Installed and configured the Edgee CLI @@ -565,10 +601,11 @@ $ edgee components push --public --changelog "Lorem ipsum" Your new component will be pushed to the Edgee Component Registry under your Organization. -In case your Edgee user is part of multiple Organizations, you can provide it explicitly via `edgee components push ORG_NAME`. +In case your Edgee user is part of multiple Organizations, you can provide the organization identifier +via `edgee components push ORG_ID`. -Congratulations! Your (public) component is now available on the Edgee Component Registry at `https://www.edgee.cloud/{organization}/{component}`. -In case you pushed a private component, there won't be a public page. +Congratulations! Your component is now available on the Edgee Component Registry at `https://www.edgee.cloud/{organization}/{component}`. +In case you pushed a private component, the public page is only visible to you. You can also view and edit it at `https://www.edgee.cloud/~/registry/{organization}`. @@ -612,8 +649,8 @@ Existing projects using an archived component still work fine. If there is at least one Edgee project using a component, you cannot delete it. - Note: even though the web console allows you to edit most fields and creeate new versions, we highly recommend using the Edgee CLI - to push updates and new versions. That way, your manifest file remains the source of truth. + Note: even though the web console allows you to edit most fields and creeate new versions, we recommend using the Edgee CLI + to push updates and new versions. This way, your manifest file remains the source of truth. ### Step 4: Use the component diff --git a/services/registry/faqs.mdx b/services/registry/faqs.mdx index 49f78ac..507854e 100644 --- a/services/registry/faqs.mdx +++ b/services/registry/faqs.mdx @@ -1,5 +1,5 @@ --- -title: FAQs [Beta] +title: FAQs description: Here's everything you need to know to get the most out of the Edgee Component Registry as a component developer. icon: message-question --- @@ -8,13 +8,6 @@ import EdgeeSdk from '/snippets/edgee-sdk.mdx'; - - BETA: this page refers to a beta version of the Edgee Component Registry. - Breaking changes might happen in the next few weeks, please consider this unstable and share your feedback in the - appropriate channels if you find a bug or security vulnerability. - - - An edge component is a simple piece of business logic that runs at the edge, just before an HTML page is served to a visitor's browser. @@ -22,55 +15,64 @@ import EdgeeSdk from '/snippets/edgee-sdk.mdx'; - You can use the Edgee CLI to build and publish new components from your laptop. - The Edgee CLI also acts as the reverse proxy you can use to serve and test components locally before pushing to the registry. + You can use the [Edgee CLI](https://github.com/edgee-cloud/edgee) to build and publish new components from your laptop. + The Edgee CLI also acts as the reverse proxy to serve and test components locally before pushing to the registry. - You can use all programming languages that compile to Wasm, with WASI and component support, - such as C, C#, Go, JavaScript, Python, and Rust. + You can use all programming languages that compile to Wasm, with WASI and component support. + + Today, we officially support C, C#, Go, JavaScript, TypeScript, Python, and Rust. When pushing a component for the first time, the Edgee CLI will ask you to set it as public or private. Once pushed, you can easily change its visibility using the web console or Edgee CLI. - Please keep in mind that a public component can be unpublished or deleted only if there are no projects using it, - so make sure you're 100% comfortable with your component being publicly visible when pushing it as public. + Please keep in mind that a public component can be unpublished or deleted only if no projects are using it. + Make sure you're 100% comfortable with your component being publicly visible when pushing it as public. - Every time you push via the CLI, a new version is created. Remember to update the latest version in your manifest file before pushing. + Every time you push via the CLI, a new component version is created. + Remember to update the latest version in your manifest file before pushing. - Also keep in mind that projects always use your latest versions (for now). Eventually it will be possible to bind projects to a - specific version and handle version upgrades manually or automatically. - - During the beta, make sure that your latest version doesn't include breaking changes. + Also keep in mind that projects might be configured to update to your component's latest versions automatically. + + We highly encourage you to make sure your latest version doesn't include breaking changes. For example, you can add a new optional setting without issues, while removing or adding a new required setting - would break the existing projects' configuration. + would break the existing configuration. + + On the other hand, it's also possible to bind projects to a specific version of your component and handle version upgrades manually. All Edgee-native components are public and open source and we'd love to encourage all component developers to keep their - projects open source as well. This allows you to build trust and encourages other developers to get involved with bugfixing - and other maintenance tasks. That said, we understand there might be special cases where organizations are more comfortable with - publishing closed-source components and the Edgee platforms supports that too. + projects open source as well. This allows you to build trust and encourages other contributors to get involved with bugfixing + and maintenance tasks. + + That said, we understand there might be special cases where organizations are more comfortable with + pushing closed-source components and the Edgee platforms supports that too. - Yes, components are bound to your Edgee account or your organization's Edgee account. - On the other hand, Edgee Open Source Edition users can use the Edgee Component Registry to pull and add public components - to their proxy configuration as well. + Yes, components are bound to your Edgee account, or your organization. + + As an Edgee Open Source Edition user, you can also leverage the Edgee Component Registry to pull and add public components + to your proxy configuration. Yes, the Edgee Component Registry is free of charge. - With Edgee's managed service, you only get charged for the events and requests generated by your projects. + With Edgee's managed service, you're only charged for the events and requests generated by your projects. + Learn more on our [pricing page](https://www.edgee.cloud/pricing). - You can easily add a component to your projects from a public component's page, simply click “Add to my project”. - Alternatively, you can visit your project's dashboard and visit the “Registry” tab to list all public and private components available to you. - Last but not least, you could use the [Edgee API](/api-reference/introduction) to automate every step, from project creation to component integration. + You can add a component to your projects from a public component's page, simply click **Add to my project**. + + Alternatively, you can visit your project's dashboard and click **Add a component**. Here you will find all public and private components available to you. + + Last but not least, you could use the [Edgee API](/api-reference/introduction) to automate every step. diff --git a/services/registry/foundations.mdx b/services/registry/foundations.mdx index d34ba9b..bdb02c3 100644 --- a/services/registry/foundations.mdx +++ b/services/registry/foundations.mdx @@ -1,6 +1,6 @@ --- -title: Foundations [Beta] -description: Cover the most important concepts for developers to get started with Edgee. +title: Foundations +description: Cover the most important concepts to get started quickly. icon: lightbulb --- @@ -8,43 +8,38 @@ import EdgeeSdk from '/snippets/edgee-sdk.mdx'; - - BETA: this page refers to a beta version of the Edgee Component Registry. - Breaking changes might happen in the next few weeks, please consider this unstable and share your feedback in the - appropriate channels if you find a bug or security vulnerability. - - The following concepts will get you up and running with Edgee, before you start coding. #### Reverse proxy Edgee acts as a [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) in front of a website, intercepting HTTP requests and running business -logic on top of edge networks and CDNs such as Fastly and Cloudflare; the Edgee proxy interacts with WebAssembly components -to implement features such as data collection for analytics, warehousing, and conversions. +logic on top of edge networks and CDNs such as Fastly and Cloudflare. + +The Edgee proxy interacts with WebAssembly components to implement features such as data collection for analytics, warehousing, and conversions. #### WebAssembly and language support -[WebAssembly (Wasm in short)](https://webassembly.org/) allows developers to implement a component in a programming language such as Rust or JavaScript -and compile it to a binary file; each component runs in a sandboxed environment with no access to network or filesystem +[WebAssembly (Wasm)](https://webassembly.org/) allows developers to implement a component in programming languages such as Rust or JavaScript +and compile it to a binary format. Each component runs in a sandboxed environment with no access to network or filesystem and implements a specific interface used by the Edgee proxy to invoke a component's business logic. -You can use WebAssembly as compile target with [many different languages](https://component-model.bytecodealliance.org/language-support.html) +You use WebAssembly as compile target with [many different languages](https://component-model.bytecodealliance.org/language-support.html) and the resulting binary file is language-agnostic and cross-platform. Today, Edgee supports and provides tooling for Rust, Go, Python, JavaScript, TypeScript, C, and C#. The Edgee CLI makes local development consistent across languages, but it's worth noting that compiled languages such as Rust, Go, and C result in pretty small and efficient Wasm files (within hundreds of KBs), -while interpreted languages such as Python and JavaScript result in much heavier Wasm files (20MB+). +while interpreted languages such as Python, JavaScript, and TypeScript result in much heavier Wasm files (20MB+). #### Component types and WIT -Today, Edgee supports only one component type: `data_collection`. That includes components +Today, Edgee supports only one component type: Data Collection. That includes components for web analytics such as [Google Analytics](/components/data-collection/google-analytics) or [Amplitude](/components/data-collection/amplitude), for attribution/conversion such as [Meta Conversions API](/components/data-collection/meta-capi) or [LinkedIn Conversions API](/components/data-collection/linkedin-capi), -and for data warehousing destinations such as +and for data streaming and warehousing destinations such as [Amazon S3](/components/data-collection/amazon-data-firehose), [Amazon Kinesis](/components/data-collection/amazon-kinesis), or [Amazon Data Firehose](/components/data-collection/amazon-data-firehose). -We're quickly expanding to new component types such as `consent_mapping` -to integrate with CMPs (Consent Management Platforms) and `ab_testing` to integrate with A/B testing frameworks and services at the edge. +We're quickly expanding to new component types such as Consent Mapping to integrate with CMPs (Consent Management Platforms) +and A/B Testing to integrate with A/B testing frameworks and services at the edge. In Wasm, interfaces are defined with [WIT (Wasm Interface Type)](https://component-model.bytecodealliance.org/design/wit.html), a definition language to define types and worlds. You can find [Edgee's WIT files on GitHub](https://github.com/edgee-cloud/edgee-wit). @@ -53,17 +48,17 @@ When a new WIT version is available, you can use [wit-deps](https://github.com/b Depending on the programming language, you might need to re-generate the WIT bindings as well. - Note: starting from `v0.9.0`, the Edgee CLI is taking care of managing and updating WIT dependencies automatically for you, under - a hidden `.edgee/wit` folder. You shouldn't need to worry about WIT files or dependencies at all. + Note: since `v0.9.0`, the Edgee CLI takes care of managing and updating WIT dependencies automatically for you, under + a hidden `.edgee/wit` folder. You shouldn't need to worry about WIT dependencies at all. - When a new WIT release is available, you only need to update the WIT version in your the component's manifest. + When a new WIT release is available, you only need to update the `wit-version` in your component's manifest. #### Edgee CLI and APIs -You can use the [Edgee CLI](https://github.com/edgee-cloud/edgee) to create and build Wasm components locally with commands such as +The [Edgee CLI](https://github.com/edgee-cloud/edgee) lets you create and build Wasm components locally with commands such as `edgee components new` and `edgee components build`. -When the component is ready, the Edgee CLI lets you push it to the Edgee Component Registry as a public or private component -under your organization's account, with `edgee components push`. Under the hood, the CLI interacts with the +When the component is ready, it lets you push it to the Edgee Component Registry as a public or private component +under your organization's account via `edgee components push`. Under the hood, the CLI interacts with the [Edgee API](/api-reference/introduction) and its goal is to simplify the local development experience across all supported languages. diff --git a/services/registry/overview.mdx b/services/registry/overview.mdx index db9216c..635bcc1 100644 --- a/services/registry/overview.mdx +++ b/services/registry/overview.mdx @@ -1,5 +1,5 @@ --- -title: Registry Overview [Beta] +title: Registry Overview description: Build and publish WebAssembly components to the edge icon: chart-mixed --- @@ -8,19 +8,11 @@ import EdgeeSdk from '/snippets/edgee-sdk.mdx'; - - BETA: this page refers to a beta version of the Edgee Component Registry. - Breaking changes might happen in the next few weeks, please consider this unstable and share your feedback in the - appropriate channels if you find a bug or security vulnerability. - - The Edgee Component Registry lets developers publish, share, and reuse components powered by WebAssembly on Edgee. In addition to built-in components for popular analytics APIs such as Google Analytics, now you can build and publish custom components to the Edgee Component Registry and use them in your Edgee projects, or even share it publicly. -Think of this as the "Docker Hub for Wasm components". - ## How does it work? There are many ways to interact with the Edgee Component Registry, depending on your use case. Let's review some common examples: @@ -28,18 +20,18 @@ There are many ways to interact with the Edgee Component Registry, depending on 1. You are an open source developer and want to create a new **public component** for everybody to use in their Edgee projects. 2. You are a organization with first-party APIs or special requirements and want to create a new **private component** for you or your customers to use on Edgee. -3. You are an **Edgee Open Source Edition** user and want to pull **public components** from the registry into your Edgee deployment. +3. You are using **Edgee Open Source Edition** and want to pull **public components** from the registry into your Edgee deployment. -In all cases, the typical workflow consists in using the Edgee open source tools to develop, build, push, -or pull components from/to the registry. +For all cases, the typical workflow involves using Edgee's developer tools to create, build, push, +or pull components to/from the registry. -For example, imagine you are a large organization and want to use Edgee for your first-party analytics solutions or to integrate -with additional tools and APIs not natively supported by Edgee. You'd use the Edgee CLI to create a new component locally, -push it to the registry as a private component, and add it to your Edgee projects without sharing it with anyone. +For example, imagine you are an enterprise organization and want to use Edgee for your first-party analytics or to integrate +with additional tools and APIs not natively supported by Edgee. You will use the Edgee CLI to create a new component locally, +push it to the registry as a private component, and add it to your Edgee projects - without sharing it with anyone. On the other hand, imagine you are an Edgee partner or API provider and want to make your offering available to all Edgee customers. -You'd use the Edgee CLI to create a new component locally, push it to the registry as a public component under your organization's account, -and enable developers to add your component to their Edgee projects seamlessly. +You will use the Edgee CLI to create a new component locally, push it to the registry as a public component under your organization's account, +and enable developers to add your component to their Edgee projects. ## Next steps From 574b2824b6e9304eac8abf603319acd60dce1dfe Mon Sep 17 00:00:00 2001 From: Alex Casalboni Date: Tue, 11 Mar 2025 12:36:57 +0100 Subject: [PATCH 2/5] CLI: document login via env variable --- services/registry/developer-guide.mdx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/registry/developer-guide.mdx b/services/registry/developer-guide.mdx index 1ee0d58..2ad6ad7 100644 --- a/services/registry/developer-guide.mdx +++ b/services/registry/developer-guide.mdx @@ -65,6 +65,10 @@ $ edgee login --profile test Logged as Your name (email@example.com) ``` +```shell Using env variable +$ EDGEE_API_TOKEN=XYZ edgee login +``` + @@ -91,6 +95,15 @@ Logged in as: Profile: test ``` +```shell Using env variable +$ edgee whoami +Logged in as: + ID: XYZ-XYZ-DYZ + Name: Your name + Email: your@email.com + Url: https://api.edgee.app +``` + From 406ce1b7a369aeaabdb3da96248fd2a6e6a929bc Mon Sep 17 00:00:00 2001 From: Alex Casalboni Date: Tue, 11 Mar 2025 14:50:58 +0100 Subject: [PATCH 3/5] chore: update deps --- package-lock.json | 58 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92088c0..87cf3b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "mintlify": "^4.0.425" + "mintlify": "^4.0.427" } }, "node_modules/@asyncapi/parser": { @@ -845,16 +845,16 @@ } }, "node_modules/@mintlify/cli": { - "version": "4.0.425", - "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.425.tgz", - "integrity": "sha512-6svVkaBQpP3d+GacZUpTbxx4PKC8CNJ2f/jPbxPmQzI+tLmLD2l4+mnNv/KU5l4E510Gu5aTWGfSeF1MmiQbhA==", + "version": "4.0.427", + "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.427.tgz", + "integrity": "sha512-V5fgUduuxjSffTyV/ICw8TFjHo8zIX6A4wFEOyLWHsuxELXue3wft4/7aLGxmwlxRiy6QsJNuiHnbl7REASMYQ==", "license": "Elastic-2.0", "dependencies": { "@mintlify/common": "1.0.303", - "@mintlify/link-rot": "3.0.402", + "@mintlify/link-rot": "3.0.404", "@mintlify/models": "0.0.177", - "@mintlify/prebuild": "1.0.399", - "@mintlify/previewing": "4.0.417", + "@mintlify/prebuild": "1.0.401", + "@mintlify/previewing": "4.0.419", "@mintlify/validation": "0.1.320", "chalk": "^5.2.0", "detect-port": "^1.5.1", @@ -914,13 +914,13 @@ } }, "node_modules/@mintlify/link-rot": { - "version": "3.0.402", - "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.402.tgz", - "integrity": "sha512-HMPJGnS9RHYU77HOwa0Ha0iQMSFSSKLLEAQlZkUjYlNtdFM0QM1GfWq5p2q3escHAcO6TE+E2HKyOPpzTXQmTw==", + "version": "3.0.404", + "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.404.tgz", + "integrity": "sha512-NVu5DivrJejdk/F/SsH5hUgwszyRxZf8v5xoL+5O239rP8gvQPkh5nqqbpAoPSHyPm9xYlNhJrismcyx55I5CQ==", "license": "Elastic-2.0", "dependencies": { "@mintlify/common": "1.0.303", - "@mintlify/prebuild": "1.0.399", + "@mintlify/prebuild": "1.0.401", "fs-extra": "^11.1.0", "is-absolute-url": "^4.0.1", "unist-util-visit": "^4.1.1" @@ -1048,14 +1048,14 @@ } }, "node_modules/@mintlify/prebuild": { - "version": "1.0.399", - "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.399.tgz", - "integrity": "sha512-Cz8mkIGrweI1uc3Y/AeQCCkt3RIB7KMoa7Gaw+TE5x+wpiIjy3fBtAwtcoIwn3ZZOF0MCDxST3Yy+pXQHW2oIA==", + "version": "1.0.401", + "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.401.tgz", + "integrity": "sha512-1x1xJfAIOTWIPu5TznGCwH5me41hfEjxdmMsdlSJVmKBKJ0Yj7avnuDcnLEmvoTDgVSzEUG2ZNwdKnW/PlJqpg==", "license": "Elastic-2.0", "dependencies": { "@mintlify/common": "1.0.303", "@mintlify/openapi-parser": "^0.0.7", - "@mintlify/scraping": "4.0.150", + "@mintlify/scraping": "4.0.152", "@mintlify/validation": "0.1.320", "axios": "^1.6.2", "chalk": "^5.3.0", @@ -1117,13 +1117,13 @@ } }, "node_modules/@mintlify/previewing": { - "version": "4.0.417", - "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.417.tgz", - "integrity": "sha512-HJ9xClYV0DU9JrGo0xiMScWeJeRh4QFm0L0adWPs58tblsxAmjfrXsJQ5MZmWkmQVKZpzFqRTlFbSIZnspqr5A==", + "version": "4.0.419", + "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.419.tgz", + "integrity": "sha512-S+Sr1iuLP+OV1vCYydzIm3pIOCPT7B0mroYcrSvB9EscLZS8E3OuIlEKCYgt7LBfo30nW/VFxwZMvPzYNdWPuA==", "license": "Elastic-2.0", "dependencies": { "@mintlify/common": "1.0.303", - "@mintlify/prebuild": "1.0.399", + "@mintlify/prebuild": "1.0.401", "@mintlify/validation": "0.1.320", "better-opn": "^3.0.2", "chalk": "^5.1.0", @@ -1195,9 +1195,9 @@ } }, "node_modules/@mintlify/scraping": { - "version": "4.0.150", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.150.tgz", - "integrity": "sha512-hq+LuBYrvJPfiYU3L45BTo8I2mwWZAh84AhvsMtvug9DIRk8AAL277YnT/cpXPZCqJSJTChbVRHOLJFsV97ibA==", + "version": "4.0.152", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.152.tgz", + "integrity": "sha512-m5B2bp6PSSVU1T9CB0NWDID3uzqi5qhqkhbRjeAXKYDZTnjI8INHLojpPLTJwGcj2endNx9BsTbN9ElVoEPIOQ==", "license": "Elastic-2.0", "dependencies": { "@mintlify/common": "1.0.303", @@ -2224,9 +2224,9 @@ } }, "node_modules/bare-os": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.5.1.tgz", - "integrity": "sha512-LvfVNDcWLw2AnIw5f2mWUgumW3I3N/WYGiWeimhQC1Ybt71n2FjlS9GJKeCnFeg1MKZHxzIFmpFnBXDI+sBeFg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.0.tgz", + "integrity": "sha512-BUrFS5TqSBdA0LwHop4OjPJwisqxGy6JsWVqV6qaFoe965qqtaKfDzHY5T2YA1gUL0ZeeQeA+4BBc1FJTcHiPw==", "license": "Apache-2.0", "optional": true, "engines": { @@ -7051,12 +7051,12 @@ } }, "node_modules/mintlify": { - "version": "4.0.425", - "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.0.425.tgz", - "integrity": "sha512-/0AJJDnNfLu2pAP9r+FD4WPsaNCn3WiZQLUq9DChhtnVitLwhX9cKdm/xD+wQME61MXKarX25thFVtKPjV8GRQ==", + "version": "4.0.427", + "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.0.427.tgz", + "integrity": "sha512-iFtbuTTe1ZDpTzUABUW3CNxHHz9tWLdGVUka8hO1jZ9ecv9ELwM5EYHJ2Baztxr1+HM6kQhzPmGD0vCg3kgRww==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/cli": "4.0.425" + "@mintlify/cli": "4.0.427" }, "bin": { "mintlify": "index.js" diff --git a/package.json b/package.json index 3a8529e..222a6d7 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,6 @@ "links": "mintlify broken-links" }, "dependencies": { - "mintlify": "^4.0.425" + "mintlify": "^4.0.427" } } From 15cdbcca810e8278c35123bc0acfff7207634fc7 Mon Sep 17 00:00:00 2001 From: Alex Casalboni Date: Tue, 11 Mar 2025 14:51:09 +0100 Subject: [PATCH 4/5] update env variable docs --- services/registry/developer-guide.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/registry/developer-guide.mdx b/services/registry/developer-guide.mdx index 2ad6ad7..4d30595 100644 --- a/services/registry/developer-guide.mdx +++ b/services/registry/developer-guide.mdx @@ -66,7 +66,7 @@ Logged as Your name (email@example.com) ``` ```shell Using env variable -$ EDGEE_API_TOKEN=XYZ edgee login +$ export EDGEE_API_TOKEN=XYZ ``` @@ -86,6 +86,7 @@ Logged in as: ``` ```shell Using profiles +# this also works with the push command $ edgee whoami --profile test Logged in as: ID: XYZ-XYZ-DYZ @@ -96,6 +97,7 @@ Logged in as: ``` ```shell Using env variable +# $EDGEE_API_TOKEN is used for all commands $ edgee whoami Logged in as: ID: XYZ-XYZ-DYZ From 04709523f3d27aeef69b4eb3b213083f37170eda Mon Sep 17 00:00:00 2001 From: Alex Casalboni Date: Wed, 12 Mar 2025 12:34:01 +0100 Subject: [PATCH 5/5] update wit-version to 1.0.0 in sample manifest, update wit-version description --- services/registry/developer-guide.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/registry/developer-guide.mdx b/services/registry/developer-guide.mdx index 4d30595..1fb6af2 100644 --- a/services/registry/developer-guide.mdx +++ b/services/registry/developer-guide.mdx @@ -306,7 +306,7 @@ description = "Your component description" documentation = "https://example.com/link-to-your-documentation" repository = "https://github.com/your-account/your-repository" icon-path = "path-to-local-file.png" -wit-version = "0.5.0" +wit-version = "1.0.0" [component.build] command = "your-build-command" @@ -343,8 +343,8 @@ Let's go through each section and field: - `documentation`: the documentation URL for this component (could also point to a public repository). - `repository`: the repository URL for this component (e.g. on GitHub). - `icon-path`: the image used on public pages to represent this component. - - `wit-version`: the WIT version of the interface implemented by this component (will be `1.0.0` at launch). - When a new WIT version is available + - `wit-version`: the WIT interface implemented by this component. When a new WIT version is available, + update this field to the latest version and the Edgee CLI will take care of updating all WIT dependencies for you. - `[component.build]`: here you define how the component is built and where the resulting Wasm file is located. - `command`: the command to compile this component into Wasm, depends on your programming language of choice.