diff --git a/menu/navigation.ts b/menu/navigation.ts index 953e8c5365..06d9eaea1e 100644 --- a/menu/navigation.ts +++ b/menu/navigation.ts @@ -3,6 +3,7 @@ import { accountMenu } from '../pages/account/menu' import { appleSiliconMenu } from '../pages/apple-silicon/menu' import { auditTrailMenu } from '../pages/audit-trail/menu' +import { annotationsMenu } from '../pages/annotations/menu' import { billingMenu } from '../pages/billing/menu' import { blockStorageMenu } from '../pages/block-storage/menu' import { classicHostingMenu } from '../pages/classic-hosting/menu' @@ -78,6 +79,12 @@ export default [ label: 'Account', category: 'console', }, + { + icon: 'AnnotationsCategoryIcon', + items: [annotationsMenu], + label: 'Annotations', + category: 'console', + }, { icon: 'CostAndImpactManagementCategoryIcon', items: [billingMenu, environmentalFootprintMenu], diff --git a/pages/annotations/concepts.mdx b/pages/annotations/concepts.mdx new file mode 100644 index 0000000000..5b56a27a79 --- /dev/null +++ b/pages/annotations/concepts.mdx @@ -0,0 +1,71 @@ +--- +title: Annotations - Concepts +description: Learn fundamental concepts of Scaleway's Annotations. +tags: annotations custom metadata +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- + +## Annotations + +Scaleway Annotations lets you attach custom key‑value metadata to any cloud resource. Using Annotations, you can organize and structure your instances, buckets, databases, etc., for use in FinOps, GreenOps, governance, and other applications. + +## Annotation + +An annotation is custom metadata you can attach to any Scaleway resource (instances, buckets, databases, etc.). It consists of a key (the category of information for a resource) and a value (the concrete information associated with a category). + +## Binding + +A binding is the explicit association that links an annotation to a specific resource. In other words, a binding records which resource the annotation applies to. + +## Key + +An annotation key is a globally-unique identifier (typically a plain‑text string) that names the piece of metadata you want to attach to a resource. The key defines the category of information for a resource (e.g., Team, Environment, Cost-center). + +For example: + +| Key | Value | +| ----------- | -------------------------- | +| Team | Marketing, Finance, Sales | +| Environment | Staging, Production | +| Cost-center | 83546, 32424, 47847 | + + +A key-[value](#value) pair constitutes an [annotation](#annotation). + +## Scaleway Resource Name + +The Scaleway Resource Name (SRN) is a Uniform Resource Identifier (URI) that uniquely identifies a Scaleway resource. It takes the following format: + +``` +srn://product-slug.domain/(locality_type/{locality}/)resource-type/resource-id + +``` + +For example: + +``` +srn://k8s.scw.eu/regions/fr-par/clusters/25f6c309-a2c6-4fb2-8d16-57960c3fb9df + +``` + +An SRN must be globally unique, immutable, human-comprehensible, and optimized for programmatic handling (e.g., generating a console URL). + +In the context of Annotations, you are required to provide an SRN when attaching a key-value pair to a selected cloud resource via the Annotations API. + +## Value + +An annotation value is the concrete information (e.g., Marketing, Production, 83546) associated with a category, i.e., an annotation [key](#key). + +A value cannot exist on its own, it must always be a child of a key. + +For example: + +| Key | Value | +| ----------- | -------------------------- | +| Team | Marketing, Finance, Sales | +| Environment | Staging, Production | +| Cost-center | 83546, 32424, 47847 | + +A [key](#key)-value pair constitutes an [annotation](#annotation). \ No newline at end of file diff --git a/pages/annotations/faq.mdx b/pages/annotations/faq.mdx new file mode 100644 index 0000000000..5ae4125741 --- /dev/null +++ b/pages/annotations/faq.mdx @@ -0,0 +1,37 @@ +--- +title: Annotations - FAQ +description: Get answers on using Scaleway's Annotations to manage and organize your resources using custome key-value metadata +productIcon: AnnotationsProductIcon +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- + +## Overview + +### What is Annotations? + +Scaleway Annotations lets you attach custom key‑value metadata to any Scaleway resource. Using Annotations, you can organize and structure your instances, buckets, databases, etc., for use in FinOps, GreenOps, governance, and other initiatives. + +### Why do I need Annotations? + +Annotations gives you a lightweight, flexible way to add structured metadata to any Scaleway resource, making it easier to search, manage, audit, and optimize your resources. + +Using Annotations helps you: + +- **Organize and discover resources** – Annotate resources so you can filter and search by environment, team, cost‑center, or any custom attribute. +- **Automate workflows** – Trigger scripts, policies, or scaling actions based on specific annotation values (e.g., automatically back‑up all resources with the annotation `environment=prod`). +- **Control costs and reporting** – Use annotations for precise budgeting reports, grouping resources by project, department, or product line. +- **Enforce governance** – Combine annotations with IAM or policy bindings to restrict actions on resources that carry certain annotations (e.g., only the `security` team can modify resources marked `sensitive=true`). + +## Pricing and billing + +### How am I billed for using Annotations? + +Annotations is free of charge. + +## Compatibility and integration + +### Which Scaleway products are integrated with Annotations? + +All Scaleway products support Annotations, i.e., you can bind annotations to any of your Scaleway resources. \ No newline at end of file diff --git a/pages/annotations/how-to/bind-and-detach-annotations.mdx b/pages/annotations/how-to/bind-and-detach-annotations.mdx new file mode 100644 index 0000000000..2c77732d0b --- /dev/null +++ b/pages/annotations/how-to/bind-and-detach-annotations.mdx @@ -0,0 +1,67 @@ +--- +title: Bind and detach annotations +description: Learn how to bind an annotation to a resource or detach it when it is not needed anymore +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + + +This page shows you how to bind and detach [annotations](/annotations/concepts/#annotation) via the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- One of the following permission sets: + - `AnnotationsFullAccess`: gives you full access to keys, values, and bindings + - `AnnotationsBindingManager`: allows you to create/delete bindings + +## Configure the Annotations permission set + +To start using Annotations, you need to configure permission sets in [IAM](/iam/concepts/#iam). + +Refer to [Configure Annotations permission sets](/annotations/how-to/configure-annotations-permissions/) to find out how. + +## Bind an annotation to a resource + +You can bind an annotation to a resource either while creating the resource or when the resource is already in place. + +To bind an annotation to a resource that *already exists*: + +1. Navigate to your resource in the [console](https://console.scaleway.com/), and click the **Settings** tab. + +2. In the **Annotations** panel, use the dropdown to select the key, then the value. The key and value display under the **Key** and **Value** fields. The annotation is now attached to your resource. + +To bind an annotation to a resource *while creating it*, use the creation wizard. + +1. When you get to the point in the wizard where you can enter a name and description for your resource, find the **Annotations** section. + +2. Use the dropdown to select a key, then a value. The key and value display under the **Key** and **Value** fields. The annotation is now attached to your resource. + +## Detach an annotation from a resource + +You can detach an annotation from a resource either via the Annotations page or directly from the resource's page. + +### Via the Annotations page + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The **Annotations** product page displays. + +2. Use the search fields to find the key and value that you want to detach from your resource. + +3. Click the name of the relevant key. The **Keys** page appears. + +4. Click the name of the relevant value. The **Values** page appears. + +5. Use the search fields to find your resource. + +6. Click next to the resource that you wish to detach. In the window that pops up, click **Confirm**. + +### Via the resource's page + +1. Navigate to your resource in the [console](https://console.scaleway.com/). + +2. Once on the resource's dashboard page, click the **Settings** tab. + +3. In the **Annotations** panel, click **X** next to the key and value that you want to detach. Both the selected key and value disappear under the **Key** and **Value** fields. The annotation is now detached from your resource. \ No newline at end of file diff --git a/pages/annotations/how-to/configure-annotations-permissions.mdx b/pages/annotations/how-to/configure-annotations-permissions.mdx new file mode 100644 index 0000000000..99eae237df --- /dev/null +++ b/pages/annotations/how-to/configure-annotations-permissions.mdx @@ -0,0 +1,32 @@ +--- +title: Configure Annotations permission sets +description: Learn how to configure IAM permissions for accessing Scaleway's Annotations, enabling the usage of custom metadata across Organizations and Projects. +tags: annotations custom metadata iam permissions +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + +To start using Annotations, you need to configure one of the following permission sets in [IAM](/iam/concepts/#iam): + - `AnnotationsFullAccess`: Full access to [annotations](/annotations/concepts/#annotation) ([keys](/annotations/concepts/#key), [values](/annotations/concepts/#value), and [bindings](/annotations/concepts/#binding)). + - `AnnotationsReadOnly`: Read-only access to annotations. Typical users are auditors or finance team members (e.g., a FinOps analyst who can view and filter by annotation but cannot modify anything). + - `AnnotationsBindingManager`: Allows attaching annotations to resources, but prohibits modifying the annotation dictionary. Typical users are developers (including Terraform) who need the dictionary for autocomplete and must be able to create/delete bindings, but must not add or modify keys/values. + +This page shows you how to configure the necessary IAM permission set to access [Annotations](/annotations/concepts/#annotations). + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +1. Click **IAM & API keys** on the top-right dropdown selector of the Scaleway console. The **Users** tab of the [Identity and Access Management dashboard](https://console.scaleway.com/iam/users) displays. +2. Refer to the page on how to [create an IAM policy](/iam/how-to/create-policy/) and follow steps one to five. +3. Select the **Access to Organization features** scope and click **Validate** to move on to the next step. + + The **Access to Organization features** scope allows you to give the [principal](/iam/concepts/#principal) permissions to Organization-level features such as IAM, billing, support and abuse tickets, and project management. + +4. Click the **Annotations** category in the **Products** section, then choose the appropriate **Annotations** permission set. +5. Click **Validate**. +6. Click **Validate** again. +7. Click **Create policy**. diff --git a/pages/annotations/how-to/create-annotations.mdx b/pages/annotations/how-to/create-annotations.mdx new file mode 100644 index 0000000000..fcc875701b --- /dev/null +++ b/pages/annotations/how-to/create-annotations.mdx @@ -0,0 +1,75 @@ +--- +title: Create annotations +description: Learn how to create an annotation +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + + +This page shows you how to create an [annotation](/annotations/concepts/#annotation) via the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- The `AnnotationsFullAccess` permission set, which gives you full access to keys, values, and bindings + +## Configure the Annotations permission set + +To start using Annotations, you need to configure permission sets in [IAM](/iam/concepts/#iam). + +Refer to [Configure Annotations permission sets](/annotations/how-to/configure-annotations-permissions/) to find out how. + +## Create an annotation + +You can create an annotation via the Annotations page dedicated to creating and managing annotations, or via the creation wizard of a resource while creating the resource. + +### Via the Annotations page + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The **Annotations** product page displays. + +2. Click **Create an annotation**. The creation wizard displays. + +3. Enter a name for your key, and optionally a description (to give a brief summary of the purpose or meaning of the key). + - **Key name**: + - Must be a unique string without spaces + - Maximum length: 128 characters + - Allowed values: [a-zA-Z0-9+.-_:/@] + - **Description**: + - Maximum length: 1024 characters + - Allowed values: No restrictions + +4. Enter a value, and optionally a description (to give a brief summary of the purpose or meaning of the value). + - **Value name**: + - Maximum length: 256 characters + - Allowed values: [a-zA-Z0-9+.-_:/@] + - **Description**: + - Maximum length: 1024 characters + - Allowed values: No restrictions + +5. Enter more values if needed, using the **Add value** button. + +6. Click **Create an annotation**. + +Once you have created an annotation, you can [bind it to one or more Scaleway resources](/annotations/how-to/bind-and-detach-annotations). + +### Via a resource's creation wizard + +When you are creating a resource and get to the point in the wizard where you can enter a name and description for your resource, you have the option to also attach an annotation key-value pair. If none of the existing key-value pairs apply that are available in the dropdown, create a brand new annotation. + +1. Click the **Create annotation** button. + +2. In the window that pops up, enter a name for your key. + +3. Enter a value, and optionally a description (to give a brief summary of the purpose or meaning of the value). + +4. Enter more values if needed. + +5. Click **Create**. + + Once you have created an annotation, you can bind it to your resource. + +6. Using the dropdown selector, select the key and then the value you have just created. Both the key and value display under the **Key** and **Value** fields. The annotation is now attached to your resource. + diff --git a/pages/annotations/how-to/delete-keys-values.mdx b/pages/annotations/how-to/delete-keys-values.mdx new file mode 100644 index 0000000000..0314e67ed1 --- /dev/null +++ b/pages/annotations/how-to/delete-keys-values.mdx @@ -0,0 +1,71 @@ +--- +title: Delete annotation keys and values +description: Learn how to delete annotation keys and values +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + + +This page shows you how to delete annotation [keys](/annotations/concepts/#key) and [values](/annotations/concepts/#value) via the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- The `AnnotationsFullAccess` permission set, which gives you full access to keys, values, and bindings + +## Configure the Annotations permission set + +To start using Annotations, you need to configure permission sets in [IAM](/iam/concepts/#iam). + +Refer to [Configure Annotations permission sets](/annotations/how-to/configure-annotations-permissions/) to find out how. + +## Delete a key + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Use the search field to find your key. + +3. Click next to the key you want to delete. Click **Delete key** in the menu. + + Alternatively, click the name of the key that you want to delete. You are taken to the key's dashboard page. Click **Actions** in the top right and select **Delete key**. + + The **Delete key** window pops up, asking you to confirm the deletion of your key. + +4. *If the key has no associated value*, click **Confirm**. Your key has now been deleted. + +5. *If the key has some associated values and maybe even resources*, deleting the key will break those associations. You must [remove bindings](#detach-a-resource-from-a-value) and [delete values](#delete-a-value) first. After removing the bindings and values, you can come back and delete the key. + +## Delete a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Use the search field to find the key whose value you want to delete. + +3. Click the relevant key. You are taken to the key's overview page. + +4. Click next to the value you want to edit. Click **Delete value** in the menu. The **Delete value** window pops up, asking you to confirm the deletion of your value. + + Alternatively, click the value that you want to delete. You are taken to the value's dashboard page. Click **Actions** in the top right and select **Delete value**. The **Delete value** window pops up, asking you to confirm the deletion of your value. + +5. *If the value is not bound to any resource*, click **Confirm**. Your value has now been deleted. + +6. *If the value is bound to one or more resources*, you must [remove the binding](#detach-a-resource-from-a-value) first. After removing the associated resources, you can come back and delete the value. + +## Detach a resource from a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click the key whose value you want to edit. You are taken to the key's overview page. + +3. Click the name of the value that you want to edit. You are taken to the value's overview page. + + You have the following options at this point: + - Bulk detach all resources associated with the value + - Detach one or more resources one by one + +4. *To bulk detach all resources associated with the value*, click the **Detach all** button. In the window that pops up, click **Confirm**. + +5. *To detach a single resource from the value*, click next to the resource that you wish to detach. In the window that pops up, click **Confirm**. \ No newline at end of file diff --git a/pages/annotations/how-to/manage-keys-values.mdx b/pages/annotations/how-to/manage-keys-values.mdx new file mode 100644 index 0000000000..4740d43dde --- /dev/null +++ b/pages/annotations/how-to/manage-keys-values.mdx @@ -0,0 +1,108 @@ +--- +title: Manage annotation keys and values +description: Learn how to manage annotation keys and values +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + + +This page shows you how to manage annotation [keys](/annotations/concepts/#key) and [values](/annotations/concepts/#value) via the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- The `AnnotationsFullAccess` permission set, which gives you full access to keys, values, and bindings + +## Configure the Annotations permission set + +To start using Annotations, you need to configure permission sets in [IAM](/iam/concepts/#iam). + +Refer to [Configure Annotations permission sets](/annotations/how-to/configure-annotations-permissions/) to find out how. + +## Manage keys + +### Create a new key + +Once you already have some [annotations](/annotations/concepts/#annotation) in place, you may have to create a new key. + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click the **Create key** button. The **Create annotation** window pops up. + +3. Enter a name for your key, and optionally a description (to give a brief summary of the purpose or meaning of the key). + - **Key name**: + - Must be a unique string without spaces + - Maximum length: 128 characters + - Allowed values: [a-zA-Z0-9+.-_:/@] + - **Description**: + - Maximum length: 1024 characters + - Allowed values: No restrictions + +4. Enter a value, and optionally a description (to give a brief summary of the purpose or meaning of the value). + - **Value name**: + - Maximum length: 256 characters + - Allowed values: [a-zA-Z0-9+.-_:/@] + - **Description**: + - Maximum length: 1024 characters + - Allowed values: No restrictions + +5. Enter more values if needed, using the **Add value** button. + +6. Click **Create an annotation**. + +### Edit a key + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Use the search field to find your key. + +3. Click next to the key you want to edit. Click **Edit key** in the menu. The **Edit key** window pops up. + + Alternatively, click the key that you want to edit. You are taken to the key's dashboard page. Click **Actions** in the top right and select **Edit key**. The **Edit key** window pops up. + +4. Make your changes, then click **Save**. + +## Manage values + +### Create a new value + +Once you already have some annotations in place, you may have to create a new value for an existing key. + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Use the search field to find the key to which you want to add a new value. + +3. Click the relevant key. You are taken to the key's overview page. + +4. Click the **Create value** button. The **Create value** window pops up. + +5. Enter a name for the value and optionally a description too (to give a brief summary of the purpose or meaning of the value). + - **Value name**: + - Maximum length: 256 characters + - Allowed values: [a-zA-Z0-9+.-_:/@] + - **Description**: + - Maximum length: 1024 characters + - Allowed values: No restrictions + +6. Click **Create value**. + +### Edit a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Use the search field to find the key whose value you want to edit. + +3. Click the relevant key. You are taken to the key's overview page. + +4. Click next to the value you want to edit. Click **Edit value** in the menu. The **Edit value** window pops up. + + Alternatively, click the name of the value that you want to edit. You are taken to the value's dashboard page. Click **Actions** in the top right and select **Edit value**. The **Edit value** window pops up. + +5. Make your changes, then click **Save**. + + + + diff --git a/pages/annotations/index.mdx b/pages/annotations/index.mdx new file mode 100644 index 0000000000..971c7bd23c --- /dev/null +++ b/pages/annotations/index.mdx @@ -0,0 +1,60 @@ +--- +title: Annotations Documentation +description: Dive into Scaleway Annotations with our quickstart guides, how-tos, and more. +--- + + + +## Getting Started + + + + + + + + + + +## Changelog + + diff --git a/pages/annotations/menu.ts b/pages/annotations/menu.ts new file mode 100644 index 0000000000..229c584105 --- /dev/null +++ b/pages/annotations/menu.ts @@ -0,0 +1,72 @@ +export const annotationsMenu = { + items: [ + { + label: 'Overview', + slug: '../annotations', + }, + { + label: 'Concepts', + slug: 'concepts', + }, + { + label: 'Quickstart', + slug: 'quickstart', + }, + { + label: 'FAQ', + slug: 'faq', + }, + { + items: [ + { + label: 'Configure Annotations permission sets', + slug: 'configure-annotations-permissions', + }, + { + label: 'Create annotations', + slug: 'create-annotations', + }, + { + label: 'Bind and detach annotations', + slug: 'bind-and-detach-annotations', + }, + { + label: 'Manage keys and values', + slug: 'manage-keys-values', + }, + { + label: 'Delete keys and values', + slug: 'delete-keys-values', + }, + ], + label: 'How to', + slug: 'how-to', + }, + { + items: [ + { + label: 'Annotations API Reference', + slug: 'https://www.scaleway.com/en/developers/api/annotations/', + }, + ], + label: 'API/CLI', + slug: 'api-cli', + }, + { + items: [ + { + label: 'Scaleway Resource Name', + slug: 'scaleway-resource-name', + }, + { + label: 'Technical rules and limits', + slug: 'technical-rules-limits', + }, + ], + label: 'Additional Content', + slug: 'reference-content', + }, + ], + label: 'Annotations', + slug: 'annotations', +} diff --git a/pages/annotations/quickstart.mdx b/pages/annotations/quickstart.mdx new file mode 100644 index 0000000000..1af5622a59 --- /dev/null +++ b/pages/annotations/quickstart.mdx @@ -0,0 +1,115 @@ +--- +title: Annotations - Quickstart +description: Quickly set up and start using Scaleway’s Annotations. Follow steps to configure custom key-value metadata for your resources. +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- +import Requirements from '@macros/iam/requirements.mdx' + + +In this quickstart, we show you how to start using [Annotations](/annotations/concepts/#annotations). + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- The `AnnotationsFullAccess` permission set, which gives you full access to keys, values, and bindings + + +## Configure the Annotations permission set + +To start using Annotations, you need to configure permission sets in [IAM](/iam/concepts/#iam). + +Refer to the [dedicated documentation page](/annotations/how-to/configure-annotations-permissions/) to find out how. + +## Create an annotation + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The **Annotations** product page displays. + +2. Click **Create an annotation**. The creation wizard displays. + +3. Enter a unique name for your key, and optionally a description. + +4. Enter a value, and optionally a description for it. + +5. Click **Create an annotation**. + +Alternatively, you can create an annotation [directly via a resource's creation wizard and the **Create annotation** button](/annotations/how-to/create-annotations/#via-a-resources-creation-wizard). + +## Bind an annotation to a resource + +You can bind an annotation to a resource either while creating the resource or when the resource is already in place. + +Here, you are going to bind the annotation that you have just created to a resource that already exists. + +1. Navigate to your chosen resource (e.g., a bucket) in the [console](https://console.scaleway.com/), and click the **Settings** tab. + +2. In the **Annotations** panel, use the dropdown to select the key, then the value. The key and value display under the **Key** and **Value** fields. + + The annotation is now attached to your resource. + +## Manage a key + +### Edit a key + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click next to the key you want to edit. Click **Edit key** in the menu. The **Edit key** window pops up. + +3. Make your changes, then click **Save**. + +### Delete a key + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click next to the key you want to delete. Click **Delete key** in the menu. + + The **Delete key** window pops up, asking you to confirm the deletion of your key. + +3. *If the key has no associated value*, click **Confirm**. + +4. *If the key has some one or more associated values and maybe even resources*, deleting the key will break those associations. You must [remove bindings](#detach-a-resource-from-a-value) and [delete values](#delete-a-value) first. After removing the bindings and values, you can delete the key. + +## Manage a value + +### Edit a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click the key whose value you want to edit. You are taken to the key's overview page. + +3. Click next to the value you want to edit. Click **Edit value** in the menu. The **Edit value** window pops up. + +4. Make your changes, then click **Save**. + +### Delete a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click the key whose value you want to delete. You are taken to the key's overview page. + +3. Click next to the value you want to edit. Click **Delete value** in the menu. The **Delete value** window pops up, asking you to confirm the deletion of your value. + +4. *If the value is not bound to any resource*, click **Confirm**. + +5. *If the value is bound to one or more resources*, you must [remove the binding](#detach-a-resource-from-a-value) first. + +### Detach a resource from a value + +1. In the [console](https://console.scaleway.com/) side menu, go to **Management & Governance** > **Annotations**. The list of your annotations displays. + +2. Click the key whose value you want to edit. You are taken to the key's overview page. + +3. Click the name of the value that you want to edit. You are taken to the value's overview page. + + You have the following options at this point: + - Bulk detach all resources associated with the value + - Detach one or more resources one by one + +4. *To bulk detach all resources associated with the value*, click the **Detach all** button. In the window that pops up, click **Confirm**. + +5. *To detach a single resource from the value*, click next to the resource that you wish to detach. In the window that pops up, click **Confirm**. + + + diff --git a/pages/annotations/reference-content/scaleway-resource-name.mdx b/pages/annotations/reference-content/scaleway-resource-name.mdx new file mode 100644 index 0000000000..2f6c3b3673 --- /dev/null +++ b/pages/annotations/reference-content/scaleway-resource-name.mdx @@ -0,0 +1,26 @@ +--- +title: What is a Scaleway Resource Name (SRN)? +description: Learn more about Scaleway Resource Name (SRN). +tags: annotations custom metadata scaleway resource name +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- + +The Scaleway Resource Name (SRN) is a Uniform Resource Identifier (URI) that uniquely identifies a Scaleway resource. It takes the following format: + +``` +srn://product-slug.domain/(locality_type/{locality}/)resource-type/resource-id + +``` + +For example: + +``` +srn://k8s.scw.eu/regions/fr-par/clusters/25f6c309-a2c6-4fb2-8d16-57960c3fb9df + +``` + +An SRN must be globally unique, immutable, human-comprehensible, and optimized for programmatic handling (e.g., generating a console URL). + +In the context of Annotations, you are required to provide an SRN when attaching a key-value pair to a selected cloud resource via the Annotations API. diff --git a/pages/annotations/reference-content/technical-rules-limits.mdx b/pages/annotations/reference-content/technical-rules-limits.mdx new file mode 100644 index 0000000000..2c23d0bdf6 --- /dev/null +++ b/pages/annotations/reference-content/technical-rules-limits.mdx @@ -0,0 +1,34 @@ +--- +title: Technical rules and limits +description: Learn more about the validation rules and limits that apply to key, values, and bindings. +tags: annotations custom metadata limitations constraints rules +dates: + validation: 2026-06-26 + posted: 2026-06-26 +--- + +When creating or managing annotation keys, values, and bindings, specific validation rules and limits apply. + +## Validation rules + +| Element | Maximum length | Allowed values | +| ------------- | --------------- | -------------------- | +| Key name | 128 characters | `[a-zA-Z0-9+.-_:/@]` | +| Value name | 256 characters | `[a-zA-Z0-9+.-_:/@]` | +| Description | 1024 characters | No restrictions | + +## Integrity rules + +- Strict binding: A resource can only have one value per key. +- No orphans: + - You cannot delete a key if it has values. + - You cannot delete a value if it has bindings. + +## Consumption limits + +| Element | Limit | +| --------------------------------- | ------ | +| Number of keys per Organization | 100 | +| Number of values per key | 200 | +| Number of values per Organization | 5,000 | +| Number of bindings per resource | 50 |