From a7bf7f52c8c8e0e0850e83ae8d13b400ba0ef6b3 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 15 Jan 2024 09:10:54 -0700 Subject: [PATCH 01/10] docs: updated language and added ISO 27001 --- docs/docs-content/compliance.md | 37 ++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/docs/docs-content/compliance.md b/docs/docs-content/compliance.md index 922debd194..b5591c6b4c 100644 --- a/docs/docs-content/compliance.md +++ b/docs/docs-content/compliance.md @@ -9,23 +9,36 @@ sidebar_custom_props: tags: ["compliance", "soc2", "fips"] --- -We have two Security Operations Center (SOC) certifications and a FIPS certificate for a Cryptographic Module. + + +## ISO 27001 + +The International Organization for Standardization 27001 Standard (ISO 27001) is one of the leading international standards focused on information security. Spectro Cloud has obtained the ISO 27001 Certification and undergoes periodic audits to maintain this certification. ISO 27001 Certification provides assurances that Spectro Cloud is identifying and managing risks effectively, consistently, and measurably. + + +Below are some reasons of why a ISO 27001 Certification is important: + +- Customer Trust and Confidence: Clients and partners often look for assurances that their sensitive information is handled securely. Achieving ISO 27001 certification can enhance customer trust and confidence, potentially leading to increased business opportunities. + +- Risk Management: By implementing ISO controls and measures, companies can mitigate these risks, protecting sensitive data from unauthorized access or disclosure. + +- Legal and Regulatory Compliance: Adhering to ISO 27001 demonstrates a commitment to information security, which can help organizations comply with various legal and regulatory requirements related to data protection and privacy. + +- Global Recognition: ISO 27001 is globally recognized, this helps organizations communicate their commitment to information security across borders. + ## SOC 2 Type II ![soc2.png](/soc2.png "#width=180px") -Spectro Cloud is certified against SOC2 Type II, compliance with the AICPA’s (American Institute of Certified Public Accountants) TSC (Trust Services Criteria). -* Spectro Cloud SOC 2 Type II audit report assures our organization’s: - * Security - * Availability - * Processing integrity - * Confidentiality - * Privacy -* SOC 2 audits are an important component in regulatory oversight, vendor management programs, internal governance, and risk management. -* These reports help the users and their auditors to understand the Spectro Cloud controls established to support operations and compliance. -* The annual certification of SOC2 is Independent 3rd Party Auditor. -* Spectro Cloud SOC 2 Type II report is available upon request for any customers or prospects with signed MNDA. +The American Institute of Certified Public Accountants (AICPA) Service Organization Controls (SOC) Attestation provides assurances over control environments. Spectro Cloud’s SOC 2 Type II audit report provides assurances of our organization’s security and availability. + +- SOC 2 audits are an important component in regulatory oversight, vendor management programs, internal governance, and risk management. + +- These reports help our users and their auditors understand the controls established at Spectro Cloud to support operations and compliance. + +- Spectro Cloud’s SOC 2 Type II report is available upon request for any customers or prospects with a signed Non-Disclosure Agreement in place. + ## FIPS 140-2 From 738f720a0b4930618f36b28b8998f92630acb311 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 15 Jan 2024 11:38:32 -0700 Subject: [PATCH 02/10] docs: fixed broken anchors --- docs/docs-content/architecture/grps-proxy.md | 2 +- .../clusters/cluster-groups/cluster-group-backups.md | 2 +- .../backup-restore/add-backup-location-dynamic.md | 2 +- .../backup-restore/backup-restore.md | 2 +- .../cluster-tag-filter/cluster-tag-filter.md | 12 ++++++------ .../cluster-tag-filter/create-add-filter.md | 10 +++++----- .../cluster-management/monitoring/deploy-agent.md | 2 +- .../clusters/cluster-management/palette-webctl.md | 2 +- .../clusters/edge/site-deployment/deploy-cluster.md | 2 +- docs/docs-content/clusters/public-cloud/aws/aws.md | 2 +- .../clusters/public-cloud/azure/azure.md | 7 +++++-- .../public-cloud/azure/create-azure-cluster.md | 2 +- .../clusters/public-cloud/deploy-k8s-cluster.md | 2 +- docs/docs-content/devx/devx.md | 2 +- .../airgap/vmware-vsphere-airgap-instructions.md | 2 +- docs/docs-content/integrations/ubuntu.md | 4 ++-- docs/docs-content/introduction/introduction.md | 2 +- docs/docs-content/{ => legal-licenses}/compliance.md | 4 +--- docs/docs-content/legal-licenses/legal-licenses.md | 8 ++++---- docs/docs-content/legal-licenses/oss-licenses.md | 2 +- .../profiles/app-profiles/app-profile-output-vars.md | 6 +++--- .../docs-content/registries-and-packs/deploy-pack.md | 2 +- docs/docs-content/security/security.md | 2 +- .../troubleshooting/cluster-deployment.md | 2 +- .../user-management/palette-rbac/palette-rbac.md | 4 ++-- .../airgap/vmware-vsphere-airgap-instructions.md | 2 +- .../install-on-vmware/install.md | 2 +- .../enable-non-fips-settings.md | 4 ++-- docs/docs-content/workspace/workload-features.md | 4 ++-- redirects.js | 4 ++++ .../IconMapper/dynamicFontAwesomeImports.js | 2 -- 31 files changed, 55 insertions(+), 52 deletions(-) rename docs/docs-content/{ => legal-licenses}/compliance.md (98%) diff --git a/docs/docs-content/architecture/grps-proxy.md b/docs/docs-content/architecture/grps-proxy.md index 3b27e782fc..9c12ae0bf8 100644 --- a/docs/docs-content/architecture/grps-proxy.md +++ b/docs/docs-content/architecture/grps-proxy.md @@ -35,7 +35,7 @@ The following sections provide more information about gRPC and proxies. ## Proxy Without SSL Bump -Because gRPC is based on HTTP/2, any proxy server that supports the [HTTP CONNECT](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT) method can be used to forward gRPC traffic. No configuration is required for this scenario. The exception is when the proxy server performs an SSL bump, discussed in the [Proxy With SSL Bump](/architecture/grps-proxy#proxywithsslbump) section. +Because gRPC is based on HTTP/2, any proxy server that supports the [HTTP CONNECT](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT) method can be used to forward gRPC traffic. No configuration is required for this scenario. The exception is when the proxy server performs an SSL bump, discussed in the [Proxy With SSL Bump](#proxy-with-ssl-bump) section. :::info diff --git a/docs/docs-content/clusters/cluster-groups/cluster-group-backups.md b/docs/docs-content/clusters/cluster-groups/cluster-group-backups.md index 9b808aea5c..0f31744bb4 100644 --- a/docs/docs-content/clusters/cluster-groups/cluster-group-backups.md +++ b/docs/docs-content/clusters/cluster-groups/cluster-group-backups.md @@ -11,7 +11,7 @@ Palette [Virtual Clusters](../palette-virtual-clusters/palette-virtual-clusters. ## Prerequisites -* A project or tenant backup location. Refer to the [cluster backup and restore](../cluster-management/backup-restore/backup-restore.md#clusterbackupandrestore) document to learn how to configure a backup location. +* A project or tenant backup location. Refer to the [cluster backup and restore](../cluster-management/backup-restore/backup-restore.md#get-started) document to learn how to configure a backup location. * Cluster group modification [permissions](../../user-management/palette-rbac/palette-rbac.md). diff --git a/docs/docs-content/clusters/cluster-management/backup-restore/add-backup-location-dynamic.md b/docs/docs-content/clusters/cluster-management/backup-restore/add-backup-location-dynamic.md index 5218257d46..2462f36893 100644 --- a/docs/docs-content/clusters/cluster-management/backup-restore/add-backup-location-dynamic.md +++ b/docs/docs-content/clusters/cluster-management/backup-restore/add-backup-location-dynamic.md @@ -8,7 +8,7 @@ tags: ["clusters", "cluster management", "backup"] --- -This guide provides instructions for how to add a backup location in Palette using dynamic access credentials. You use the dynamic access credentials to authenticate Palette with the backup location service provider. Refer to the [Backup Location](backup-restore.md#backuplocation) section to learn more about the supported service providers. +This guide provides instructions for how to add a backup location in Palette using dynamic access credentials. You use the dynamic access credentials to authenticate Palette with the backup location service provider. Refer to the [Backup Location](./backup-restore.md#backup-locations-and-credentials) section to learn more about the supported service providers. Depending on the infrastructure provider, there may be limitations or different prerequisites. diff --git a/docs/docs-content/clusters/cluster-management/backup-restore/backup-restore.md b/docs/docs-content/clusters/cluster-management/backup-restore/backup-restore.md index d1a3617924..efa60f9ca8 100644 --- a/docs/docs-content/clusters/cluster-management/backup-restore/backup-restore.md +++ b/docs/docs-content/clusters/cluster-management/backup-restore/backup-restore.md @@ -23,7 +23,7 @@ To get started with creating a backup, check out the [Add a Backup Location usin :::info -If you are using a workspace, refer to the [Manage Palette Workspace](/workspace/workload-features#managepaletteworkspace) guide to learn more about backup and restore actions for a workspace. +If you are using a workspace, refer to the [Manage Palette Workspace](../../../workspace/workload-features.md) guide to learn more about backup and restore actions for a workspace. ::: diff --git a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/cluster-tag-filter.md b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/cluster-tag-filter.md index 0e852e21f5..dbe746fe8e 100644 --- a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/cluster-tag-filter.md +++ b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/cluster-tag-filter.md @@ -15,20 +15,20 @@ To get started with an attribute access control through tags, check out the [Cre - [Cluster Resource Filter](create-add-filter.md) -- [Create Resource Filter](create-add-filter.md#createresourcefilter) +- [Create Resource Filter](create-add-filter.md#create-resource-filter) -- [Add Resource Role](create-add-filter.md#addresourcerole) +- [Add Resource Role](create-add-filter.md#add-resource-role) - [Palette Resource Roles](../../../user-management/palette-rbac/resource-scope-roles-permissions.md) -- [Palette Global Resource Roles](../../../user-management/palette-rbac/resource-scope-roles-permissions.md#paletteglobalresourceroles) +- [Palette Global Resource Roles](../../../user-management/palette-rbac/resource-scope-roles-permissions.md#palette-global-resource-roles) -- [Palette Custom Resource Roles](../../../user-management/palette-rbac/resource-scope-roles-permissions.md#palettecustomresourceroles) +- [Palette Custom Resource Roles](../../../user-management/palette-rbac/resource-scope-roles-permissions.md#palette-custom-resource-roles) -- [Create Custom Role](../../../user-management/new-user.md#createcustomrole) +- [Create Custom Role](../../../user-management/new-user.md#create-custom-role) -- [Create New User in Palette](../../../user-management/new-user.md#createanewuser) +- [Create New User in Palette](../../../user-management/new-user.md#create-a-new-user) diff --git a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md index 2fcc4f7dec..18bd65618b 100644 --- a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md +++ b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md @@ -47,17 +47,17 @@ Upon creating a filter, a display message will pop up to confirm the successful ## Add Resource Role -You can assign the resource filter created, in combination with roles, to a [user](../../../user-management/new-user.md#createanewuser) to enforce access restriction. Palette provisions two types of roles: +You can assign the resource filter created, in combination with roles, to a [user](../../../user-management/new-user.md#create-a-new-user) to enforce access restriction. Palette provisions two types of roles: -* [Palette Global Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#paletteglobalresourceroles), the set of roles that are available in Palette console +* [Palette Global Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palette-global-resource-roles), the set of roles that are available in Palette console -* [Custom Resource Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palettecustomresourceroles), can be generated according to your requirements from the available set of permissions and operations. +* [Custom Resource Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palette-custom-resource-roles), can be generated according to your requirements from the available set of permissions and operations. ### Prerequisites * A [Palette account](https://console.spectrocloud.com) with Tenant scope privileges. -* A [user created](../../../user-management/new-user.md#createanewuser) to assign the resource privileges. +* A [user created](../../../user-management/new-user.md#create-a-new-user) to assign the resource privileges. To assign the resource roles and filter to the user follow the below steps:
@@ -104,5 +104,5 @@ Upon creating a filter, a display message will pop up to confirm the successful ## Resource -* [Create a New User](../../..//user-management/new-user.md#createanewuser) +* [Create a New User](../../..//user-management/new-user.md#create-a-new-user) diff --git a/docs/docs-content/clusters/cluster-management/monitoring/deploy-agent.md b/docs/docs-content/clusters/cluster-management/monitoring/deploy-agent.md index 1b597fe63d..b486429f1b 100644 --- a/docs/docs-content/clusters/cluster-management/monitoring/deploy-agent.md +++ b/docs/docs-content/clusters/cluster-management/monitoring/deploy-agent.md @@ -177,7 +177,7 @@ Example: `https://metrics.example.com:9090/api/v1/write` - url: "https://metrics.example.com:9090/api/v1/write" ``` -8. Add the `basic_auth` parameters shown below. Replace `` and `` with the actual credential values. Use the username you created to authenticate with the Prometheus API server. If you followed the [Deploy a Monitoring Stack](deploy-monitor-stack.md#deployamonitoringstack) with authentication guide, then the username is `agent`. +8. Add the `basic_auth` parameters shown below. Replace `` and `` with the actual credential values. Use the username you created to authenticate with the Prometheus API server. If you followed the [Deploy a Monitoring Stack](deploy-monitor-stack.md#deploy-a-monitoring-stack) with authentication guide, then the username is `agent`.
diff --git a/docs/docs-content/clusters/cluster-management/palette-webctl.md b/docs/docs-content/clusters/cluster-management/palette-webctl.md index 852b5b809a..e9e35b896d 100644 --- a/docs/docs-content/clusters/cluster-management/palette-webctl.md +++ b/docs/docs-content/clusters/cluster-management/palette-webctl.md @@ -32,7 +32,7 @@ If you are using Palette Virtual Machine (VM) Management, you can find steps on :::caution -If you are using [OIDC](/clusters/cluster-management/cluster-rbac#userbacwithoidc) with your host cluster, you will need the kubelogin plugin. Refer to the kubelogin GitHub repository [README](https://github.com/int128/kubelogin#setup) for installation guidance. +If you are using [OIDC](./cluster-rbac.md) with your host cluster, you will need the kubelogin plugin. Refer to the kubelogin GitHub repository [README](https://github.com/int128/kubelogin#setup) for installation guidance. ::: diff --git a/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md b/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md index ffbd9cf9d4..f97cfe5b76 100644 --- a/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md +++ b/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md @@ -438,7 +438,7 @@ The next step is to use the following `docker run` command to trigger Packer bui - The `cd /edge/vmware/packer/ && packer build -force --var-file=vsphere.hcl build.pkr.hcl` shell sub-command changes to the container's **/edge/vmware/packer/** directory and invokes `packer build` to create the VM template. The `packer build` command has the following options: - The `-force` flag destroys any existing template. - - The `--var-file` option reads the **vsphere.hcl** file from the container. This file contains the VM template name, VM configuration, and ISO file name to use. The VM configuration conforms to the [minimum device requirements](../architecture/#minimum-device-requirements). + - The `--var-file` option reads the **vsphere.hcl** file from the container. This file contains the VM template name, VM configuration, and ISO file name to use. The VM configuration conforms to the [minimum device requirements](../architecture.md#minimum-device-requirements). The **vsphere.hcl** file content is shown below for your reference. This tutorial does not require you to modify these configurations. diff --git a/docs/docs-content/clusters/public-cloud/aws/aws.md b/docs/docs-content/clusters/public-cloud/aws/aws.md index 4094e3fa46..c7e162aca0 100644 --- a/docs/docs-content/clusters/public-cloud/aws/aws.md +++ b/docs/docs-content/clusters/public-cloud/aws/aws.md @@ -7,7 +7,7 @@ hide_table_of_contents: false --- -Palette supports integration with [Amazon Web Services](https://aws.amazon.com). You can deploy and manage [Host Clusters](../../../glossary-all.md#hostcluster) in AWS. To get started check out the [Register and Manage AWS Accounts](add-aws-accounts.md). +Palette supports integration with [Amazon Web Services](https://aws.amazon.com). You can deploy and manage [Host Clusters](../../../glossary-all.md#host-cluster) in AWS. To get started check out the [Register and Manage AWS Accounts](add-aws-accounts.md). diff --git a/docs/docs-content/clusters/public-cloud/azure/azure.md b/docs/docs-content/clusters/public-cloud/azure/azure.md index cf539c46c0..f2887d08a5 100644 --- a/docs/docs-content/clusters/public-cloud/azure/azure.md +++ b/docs/docs-content/clusters/public-cloud/azure/azure.md @@ -8,7 +8,7 @@ tags: - azure --- -Palette supports integration with [Microsoft Azure](https://azure.microsoft.com/en-us). You can deploy and manage [Host Clusters](../../../glossary-all.md#hostcluster) in Azure or Azure Government. To get started check out the [Register and Manage Azure Cloud Account](azure-cloud.md#manage-azure-accounts). +Palette supports integration with [Microsoft Azure](https://azure.microsoft.com/en-us). You can deploy and manage [Host Clusters](../../../glossary-all.md#host-cluster) in Azure or Azure Government. To get started check out the [Register and Manage Azure Cloud Account](azure-cloud.md). @@ -23,7 +23,10 @@ To learn more about Palette and Azure cluster creation and its capabilities chec - [Register and Manage Azure Cloud Account](azure-cloud.md) -- [Create and Manage Azure Cluster](create-azure-cluster.md#deploy-an-azure-cluster-with-palette) +- [Create and Manage IaaS Azure Cluster](create-azure-cluster.md) + + +- [Create and Manage Azure AKS Cluster](aks.md) - [Deleting an Azure Cluster](../../cluster-management/remove-clusters.md) diff --git a/docs/docs-content/clusters/public-cloud/azure/create-azure-cluster.md b/docs/docs-content/clusters/public-cloud/azure/create-azure-cluster.md index 8d3cab6d39..11430b415b 100644 --- a/docs/docs-content/clusters/public-cloud/azure/create-azure-cluster.md +++ b/docs/docs-content/clusters/public-cloud/azure/create-azure-cluster.md @@ -86,7 +86,7 @@ Use the following steps to deploy an Azure cluster. :::caution - If the Azure account is registered with **Disable Properties** and **Static Placement** options enabled, then Palette will not import the network information from your Azure account. You can manually input the information for the **Control Plane Subnet** and the **Worker Network**, but be aware that **drop-down Menu** selections will be empty. To learn more about these settings and certain requirements to use them, refer to [Disable Properties](azure-cloud.md#disable-properties). + If the Azure account is registered with **Disable Properties** and **Static Placement** options enabled, then Palette will not import the network information from your Azure account. You can manually input the information for the **Control Plane Subnet** and the **Worker Network**, but be aware that **drop-down Menu** selections will be empty. To learn more about these settings and certain requirements to use them, refer to [Disable Properties](azure-cloud.md#disable-palette-network-calls-to-azure-account). ::: diff --git a/docs/docs-content/clusters/public-cloud/deploy-k8s-cluster.md b/docs/docs-content/clusters/public-cloud/deploy-k8s-cluster.md index d2c8251f15..ef35de2589 100644 --- a/docs/docs-content/clusters/public-cloud/deploy-k8s-cluster.md +++ b/docs/docs-content/clusters/public-cloud/deploy-k8s-cluster.md @@ -1243,7 +1243,7 @@ In this tutorial, you created a cluster profile, which is a template that contai Palette assures consistency across cluster deployments through cluster profiles. Palette also enables you to quickly deploy applications to a Kubernetes environment with little or no prior Kubernetes knowledge. In a matter of minutes, you were able to provision a new Kubernetes cluster and deploy an application. -We encourage you to check out the [Deploy an Application using Palette Dev Engine](/devx/apps/deploy-app) tutorial to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage of [virtual clusters](/glossary-all#palettevirtualcluster). Feel free to check out the reference links below to learn more about Palette. +We encourage you to check out the [Deploy an Application using Palette Dev Engine](/devx/apps/deploy-app) tutorial to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage of [virtual clusters](../../glossary-all.md#palette-virtual-cluster). Feel free to check out the reference links below to learn more about Palette.
diff --git a/docs/docs-content/devx/devx.md b/docs/docs-content/devx/devx.md index 91a4d22d14..786aad5c37 100644 --- a/docs/docs-content/devx/devx.md +++ b/docs/docs-content/devx/devx.md @@ -61,7 +61,7 @@ The PDE dashboard provides a snapshot of resource utilization in your PDE enviro ## Automation Support -You can manage PDE resources through the [Palette API](/api/introduction), [Spectro Cloud Terraform provider](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs), and the Palette CLI. Download the Palette CLI from the [Downloads](/spectro-downloads#palettecli) page to start programmatically using PDE. +You can manage PDE resources through the [Palette API](/api/introduction), [Spectro Cloud Terraform provider](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs), and the Palette CLI. Download the Palette CLI from the [Downloads](../spectro-downloads.md#palette-cli) page to start programmatically using PDE. ![A view of the Palette CLI menu from a terminal](/devx_devx_cli-display.png) diff --git a/docs/docs-content/enterprise-version/install-palette/airgap/vmware-vsphere-airgap-instructions.md b/docs/docs-content/enterprise-version/install-palette/airgap/vmware-vsphere-airgap-instructions.md index 0825c86fa4..42178041ab 100644 --- a/docs/docs-content/enterprise-version/install-palette/airgap/vmware-vsphere-airgap-instructions.md +++ b/docs/docs-content/enterprise-version/install-palette/airgap/vmware-vsphere-airgap-instructions.md @@ -76,7 +76,7 @@ Carefully review the [prerequisites](#prerequisites) section before proceeding. - Palette CLI installed and available. Refer to the Palette CLI [Install](../../../palette-cli/install-palette-cli.md#download-and-setup) page for guidance. -- Review the required vSphere [permissions](../install-on-vmware/vmware-system-requirements.md). Ensure you have created the proper custom roles and zone tags. Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/install-on-vmware.md#vsphere-machine-configuration) for information. +- Review the required vSphere [permissions](../install-on-vmware/vmware-system-requirements.md). Ensure you have created the proper custom roles and zone tags. Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/vmware-system-requirements.md) for information.
diff --git a/docs/docs-content/integrations/ubuntu.md b/docs/docs-content/integrations/ubuntu.md index 4612d15665..7047f6b5c5 100644 --- a/docs/docs-content/integrations/ubuntu.md +++ b/docs/docs-content/integrations/ubuntu.md @@ -74,7 +74,7 @@ Palette applies a default set of configuration options when deploying Ubuntu. Yo | `controllerManager` | Extra settings for the Kubernetes controller manager control plane component. Review the [Kubernetes controller manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/) documentation for more information. | object | No | | `scheduler` | Extra settings for the Kubernetes scheduler control plane component. Refer to the [Kube scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler) documenation for more details. | object | No | | `kubeletExtraArgs` | Extra arguments for kubelet. Refer to the [Kubeadm init](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init) documentation for more details. | map | No | -| `files` | Create or specify additional files for the `kubeadmconfig`. Refer to the [Customize Pack](/integrations/ubuntu?22.04.x#customizepack) section to learn more. | list | No | +| `files` | Create or specify additional files for the `kubeadmconfig`. Refer to the [Customize Pack](#customize-pack) section to learn more. | list | No | | `preKubeadmCommands` | Extra commands to issue before kubeadm starts. | list | No | | `postKubeadmCommands` | Extra commands to issue after kubeadm starts. | list | No | | `imageRepository` | The container registry to pull images from. If empty, `k8s.gcr.io` will be used by default. | string | No | @@ -178,7 +178,7 @@ Review the parameter documentation before you make changes to the kubeadm config ::: -Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](ubuntu.md?22.04.x#ubuntupro) section below for more details. +Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](#ubuntu-pro) section below for more details.
diff --git a/docs/docs-content/introduction/introduction.md b/docs/docs-content/introduction/introduction.md index 0164a09562..b3321cce1b 100644 --- a/docs/docs-content/introduction/introduction.md +++ b/docs/docs-content/introduction/introduction.md @@ -54,7 +54,7 @@ Development teams will get the flexibility and freedom they are looking for to i ### IT Operations and SREs -Declarative management makes life easier for IT teams, with consistency, repeatability, and all the enterprise-grade controls and governance they need - especially when moving to production [Cluster Profiles](/glossary-all#clusterprofile) enable them to define and re-use full-stack clusters and support them across the entire lifecycle without having to write scripts, as well as integrate with existing tools and methodologies. +Declarative management makes life easier for IT teams, with consistency, repeatability, and all the enterprise-grade controls and governance they need - especially when moving to production [Cluster Profiles](../profiles/cluster-profiles/cluster-profiles.md) enable them to define and re-use full-stack clusters and support them across the entire lifecycle without having to write scripts, as well as integrate with existing tools and methodologies. ### IT Executives diff --git a/docs/docs-content/compliance.md b/docs/docs-content/legal-licenses/compliance.md similarity index 98% rename from docs/docs-content/compliance.md rename to docs/docs-content/legal-licenses/compliance.md index b5591c6b4c..432dca9624 100644 --- a/docs/docs-content/compliance.md +++ b/docs/docs-content/legal-licenses/compliance.md @@ -3,9 +3,7 @@ sidebar_label: "Compliance" title: "Certification of Compliance" description: "Certification of Compliance" hide_table_of_contents: false -sidebar_position: 220 -sidebar_custom_props: - icon: "user-shield" +sidebar_position: 10 tags: ["compliance", "soc2", "fips"] --- diff --git a/docs/docs-content/legal-licenses/legal-licenses.md b/docs/docs-content/legal-licenses/legal-licenses.md index 61c029fde1..9873b672c7 100644 --- a/docs/docs-content/legal-licenses/legal-licenses.md +++ b/docs/docs-content/legal-licenses/legal-licenses.md @@ -1,8 +1,8 @@ --- -sidebar_label: "Legal & Acknowledgments" -title: "Legal & Acknowledgments" -description: "Review the legal and open source components used in Palette." -sidebar_position: 10 +sidebar_label: "Compliance & Legal" +title: "Compliance & Legal" +description: "Review legal, compliance, and open source components used in Palette." +sidebar_position: 0 hide_table_of_contents: false sidebar_custom_props: icon: "gavel" diff --git a/docs/docs-content/legal-licenses/oss-licenses.md b/docs/docs-content/legal-licenses/oss-licenses.md index 911de1027b..ea943f08be 100644 --- a/docs/docs-content/legal-licenses/oss-licenses.md +++ b/docs/docs-content/legal-licenses/oss-licenses.md @@ -2,7 +2,7 @@ sidebar_label: "Open-source Licenses" title: "Open-source Licenses" description: "Review the open-source licenses tied to the libraries and modules currently in use by Palette." -sidebar_position: 10 +sidebar_position: 30 tags: ["legal", "licenses"] --- diff --git a/docs/docs-content/profiles/app-profiles/app-profile-output-vars.md b/docs/docs-content/profiles/app-profiles/app-profile-output-vars.md index 32228a6126..ae6c8b3fae 100644 --- a/docs/docs-content/profiles/app-profiles/app-profile-output-vars.md +++ b/docs/docs-content/profiles/app-profiles/app-profile-output-vars.md @@ -8,7 +8,7 @@ tags: ["devx", "app mode", "pde", "app profiles"] --- -Palette Dev Engine output variables are defined in the [app profile](/glossary-all#appprofile) and are only resolved at cluster deployment time. The output variables have the following properties: +Palette Dev Engine output variables are defined in the [app profile](../../glossary-all.md#app-profile) and are only resolved at cluster deployment time. The output variables have the following properties: * May be referenced by specifying them during app profile creation. @@ -75,7 +75,7 @@ Each database service exposes a set of output variables. To learn about each dat ## Resources -* [Palette System Macros](/registries-and-packs/pack-constraints#packmacros) +* [Palette System Macros](../../registries-and-packs/pack-constraints.md#pack-macros) -* [Palette User Macros](/clusters/cluster-management/macros#overview) +* [Palette User Macros](../../clusters/cluster-management/macros.md)
diff --git a/docs/docs-content/registries-and-packs/deploy-pack.md b/docs/docs-content/registries-and-packs/deploy-pack.md index 7efe62f38b..439127799f 100644 --- a/docs/docs-content/registries-and-packs/deploy-pack.md +++ b/docs/docs-content/registries-and-packs/deploy-pack.md @@ -920,7 +920,7 @@ cd /terraform/pack-tf ### Set Up the Spectro Cloud API Key -To get started with Terraform code, you need a Palette API key to authenticate and interact with the Palette API endpoint. To add a new API key, log in to Palette, click on the **User Menu** at the top right, and select **My API Keys**, as shown in the screenshot below. Visit the [Create API Key](https://docs.spectrocloud.com/user-management/authentication/api-key/create-api-key/) guide for more information. +To get started with Terraform code, you need a Palette API key to authenticate and interact with the Palette API endpoint. To add a new API key, log in to Palette, click on the **User Menu** at the top right, and select **My API Keys**, as shown in the screenshot below. Visit the [Create API Key](../user-management/authentication/api-key/create-api-key.md) guide for more information. ![Screenshot of generating an API key in Palette.](/tutorials/deploy-pack/registries-and-packs_deploy-pack_generate-api-key.png) diff --git a/docs/docs-content/security/security.md b/docs/docs-content/security/security.md index 7b2fa45aee..ef8c81f4ae 100644 --- a/docs/docs-content/security/security.md +++ b/docs/docs-content/security/security.md @@ -28,7 +28,7 @@ Palette uses a micro services-based architecture, and we take steps to ensure ea ## Compliance & Standards -We believe adherence to industry standards and regulations is critical to maintaining the highest levels of security for our customers. We ensure our software complies with all relevant laws and regulations, and we continuously evaluate and update our compliance efforts to stay current with emerging regulations and requirements. To learn about our product certifications, check out the [Compliance](/compliance) reference. +We believe adherence to industry standards and regulations is critical to maintaining the highest levels of security for our customers. We ensure our software complies with all relevant laws and regulations, and we continuously evaluate and update our compliance efforts to stay current with emerging regulations and requirements. To learn about our product certifications, check out the [Compliance](../legal-licenses/compliance.md) reference.
diff --git a/docs/docs-content/troubleshooting/cluster-deployment.md b/docs/docs-content/troubleshooting/cluster-deployment.md index bd5fa93aa7..5e3b29f6ad 100644 --- a/docs/docs-content/troubleshooting/cluster-deployment.md +++ b/docs/docs-content/troubleshooting/cluster-deployment.md @@ -126,7 +126,7 @@ We recommend only applying the labels to namespaces where pods fail to be create If your pack creates multiple namespaces, and you are unsure which ones contain pods that need the elevated privileges, you can access the cluster with the kubectl CLI and use the `kubectl get pods` command. This command lists pods and their namespaces so you can identify the pods that are failing at creation. -For guidance in using the CLI, review [Access Cluster with CLI](../clusters/cluster-management/palette-webctl/#access-cluster-with-cli). To learn more about kubectl pod commands, refer to the [Kubernetes](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get) documentation. +For guidance in using the CLI, review [Access Cluster with CLI](../clusters/cluster-management/palette-webctl.md#access-cluster-with-cli). To learn more about kubectl pod commands, refer to the [Kubernetes](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get) documentation. ::: diff --git a/docs/docs-content/user-management/palette-rbac/palette-rbac.md b/docs/docs-content/user-management/palette-rbac/palette-rbac.md index 604650507f..5b1f662da8 100644 --- a/docs/docs-content/user-management/palette-rbac/palette-rbac.md +++ b/docs/docs-content/user-management/palette-rbac/palette-rbac.md @@ -109,7 +109,7 @@ Tenant is an isolated workspace within the Palette. `Users` and `Teams` with spe ### Project -The Global Project Scope holds a group of resources, in a logical grouping, to a specific project. The project acts as a namespace for resource management. Users and Teams with specific roles can be associated with the project, cluster, or cluster profile you create. Users are members of a tenant who are assigned [project scope roles](project-scope-roles-permissions.md#global-project-scope) that control their access within the platform. +The Global Project Scope holds a group of resources, in a logical grouping, to a specific project. The project acts as a namespace for resource management. Users and Teams with specific roles can be associated with the project, cluster, or cluster profile you create. Users are members of a tenant who are assigned [project scope roles](./project-scope-roles-permissions.md#global-project-scope) that control their access within the platform.
## Palette Specific (Default) Roles: @@ -292,7 +292,7 @@ To create a custom role, login to the Palette console as `Tenant Admin`: **Example:** -If the user is creating a role under the Tenant scope for API Key operations, select the `API Key Permissions` and then from the drop-down menu of that permission, check (tick) the required API operations listed under API Key permissions. Similarly, several permissions can be combined to create a **Custom Role**. [The created role can be assigned to an existing or new user.](/user-management#rolesandpermissions) +If the user is creating a role under the Tenant scope for API Key operations, select the `API Key Permissions` and then from the drop-down menu of that permission, check (tick) the required API operations listed under API Key permissions. Similarly, several permissions can be combined to create a **Custom Role**. The created role can be assigned to an existing or new user.

diff --git a/docs/docs-content/vertex/install-palette-vertex/airgap/vmware-vsphere-airgap-instructions.md b/docs/docs-content/vertex/install-palette-vertex/airgap/vmware-vsphere-airgap-instructions.md index e251bc6601..4887f45d9a 100644 --- a/docs/docs-content/vertex/install-palette-vertex/airgap/vmware-vsphere-airgap-instructions.md +++ b/docs/docs-content/vertex/install-palette-vertex/airgap/vmware-vsphere-airgap-instructions.md @@ -76,7 +76,7 @@ Carefully review the [prerequisites](#prerequisites) section before proceeding. - Palette CLI installed and available. Refer to the Palette CLI [Install](../../../palette-cli/install-palette-cli.md#download-and-setup) page for guidance. -- Review the required vSphere [permissions](../install-on-vmware/vmware-system-requirements.md). Ensure you have created the proper custom roles and zone tags. Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/install-on-vmware.md#vsphere-machine-configuration) for information. +- Review the required vSphere [permissions](../install-on-vmware/vmware-system-requirements.md). Ensure you have created the proper custom roles and zone tags. Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/vmware-system-requirements.md) for information.
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md index 838d782f2b..5cc6afbab7 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md @@ -105,7 +105,7 @@ The video below demonstrates the installation wizard and the prompts you will en Use the following steps to install Palette VerteX. -1. Open a terminal window and invoke the Palette CLI by using the `ec` command to install the enterprise cluster. The interactive CLI prompts you for configuration details and then initiates the installation. For more information about the `ec` subcommand, refer to [Palette Commands](../../../palette-cli/commands/commands.md#ec). +1. Open a terminal window and invoke the Palette CLI by using the `ec` command to install the enterprise cluster. The interactive CLI prompts you for configuration details and then initiates the installation. For more information about the `ec` subcommand, refer to [Palette Commands](../../../palette-cli/commands/ec.md).
diff --git a/docs/docs-content/vertex/system-management/enable-non-fips-settings/enable-non-fips-settings.md b/docs/docs-content/vertex/system-management/enable-non-fips-settings/enable-non-fips-settings.md index 6315a57f14..19b4a16e4d 100644 --- a/docs/docs-content/vertex/system-management/enable-non-fips-settings/enable-non-fips-settings.md +++ b/docs/docs-content/vertex/system-management/enable-non-fips-settings/enable-non-fips-settings.md @@ -11,7 +11,7 @@ keywords: ["self-hosted", "vertex"] -Palette VerteX is FIPS-enforced by default, incorporating the Spectro Cloud Cryptographic Module into the Kubernetes Management Platform and the infrastructure components of target clusters. To learn more about our cryptographic library, check out [FIPS 140-2 Certification](../../../compliance.md#fips-140-2). +Palette VerteX is FIPS-enforced by default, incorporating the Spectro Cloud Cryptographic Module into the Kubernetes Management Platform and the infrastructure components of target clusters. To learn more about our cryptographic library, check out [FIPS 140-2 Certification](../../../legal-licenses/compliance.md#fips-140-2). If desired, you can allow the consumption of certain non-FIPS functionality in Palette VerteX at the tenant level. **Platform Settings** at the tenant level provide toggles to allow non-FIPS-compliant packs and non-FIPS features such as scans, backup, and restore. You can also allow importing clusters created external to Palette. @@ -27,6 +27,6 @@ If desired, you can allow the consumption of certain non-FIPS functionality in P - [Allow Cluster Import](../../system-management/enable-non-fips-settings/allow-cluster-import.md) -- [Spectro Cloud FIPS 140-2 Certification](../../../compliance.md#fips-140-2) +- [Spectro Cloud FIPS 140-2 Certification](../../../legal-licenses/compliance.md#fips-140-2) diff --git a/docs/docs-content/workspace/workload-features.md b/docs/docs-content/workspace/workload-features.md index 846691fb15..b7d48a494d 100644 --- a/docs/docs-content/workspace/workload-features.md +++ b/docs/docs-content/workspace/workload-features.md @@ -416,7 +416,7 @@ Palette enables the users to limit resource usage within the workspace optionall ## To set your Resource Quota: -1. During [Step: 3 Associate Namespaces](adding-a-new-workspace#3-associate-namespaces) of Namespace creation, **Workspace Quota** can be set by giving the **Maximum CPU** and **Maximum Memory**. Then, all the clusters launched within the Namespace can use the set Quota. +1. During [Step: 3 Associate Namespaces](./adding-a-new-workspace.md#create-your-workspace) of Namespace creation, **Workspace Quota** can be set by giving the **Maximum CPU** and **Maximum Memory**. Then, all the clusters launched within the Namespace can use the set Quota. 2. Namespace Quota can be set for an already deployed workspace as: @@ -552,7 +552,7 @@ Palette users can restrict a few container images from getting deployed into a s To restrict a container image for a particular namespace within the workspace: -1. During [Step: 4 Settings](adding-a-new-workspace.md#4-settings) of workspace creation, select the **Container Images** tab from the left ribbon. +1. During [Step: 4 Settings](adding-a-new-workspace.md#create-your-workspace) of workspace creation, select the **Container Images** tab from the left ribbon. 2. Click on **+ Add New Container Image** and provide the **Namespace** and **Restricted Images**. Multiple images can be restricted within a namespace by separating them with commas. diff --git a/redirects.js b/redirects.js index bb970687aa..413fbb6067 100644 --- a/redirects.js +++ b/redirects.js @@ -350,6 +350,10 @@ const redirects = [ { from: `/registries-and-packs/oci-registry`, to: `/registries-and-packs/registries/oci-registry` + }, + { + from: `/compliance`, + to: `/legal-licenses/compliance` } ]; diff --git a/src/components/IconMapper/dynamicFontAwesomeImports.js b/src/components/IconMapper/dynamicFontAwesomeImports.js index e3e762977c..1a53dbda4b 100644 --- a/src/components/IconMapper/dynamicFontAwesomeImports.js +++ b/src/components/IconMapper/dynamicFontAwesomeImports.js @@ -6,7 +6,6 @@ import { faDatabase } from '@fortawesome/free-solid-svg-icons'; import { faHdd } from '@fortawesome/free-solid-svg-icons'; import { faCloudArrowDown } from '@fortawesome/free-solid-svg-icons'; import { faServer } from '@fortawesome/free-solid-svg-icons'; -import { faUserShield } from '@fortawesome/free-solid-svg-icons'; import { faUsers } from '@fortawesome/free-solid-svg-icons'; import { faWarehouse } from '@fortawesome/free-solid-svg-icons'; import { faBook } from '@fortawesome/free-solid-svg-icons'; @@ -27,7 +26,6 @@ export const fontAwesomeIcons = { "hdd": faHdd, "cloud-arrow-down": faCloudArrowDown, "server": faServer, - "user-shield": faUserShield, "users": faUsers, "warehouse": faWarehouse, "book": faBook, From c742192e0df896057a81283b4ce2c3fef3c8e009 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 15 Jan 2024 12:01:18 -0700 Subject: [PATCH 03/10] docs: more finding --- docs/docs-content/devx/services/service-listings/vault.md | 2 +- .../install-palette/install-on-vmware/install.md | 2 +- docs/docs-content/integrations/ubuntu.md | 4 ++-- docs/docs-content/registries-and-packs/deploy-pack.md | 2 +- .../user-management/palette-rbac/palette-rbac.md | 6 +++--- docs/docs-content/user-management/user-management.md | 4 ---- docusaurus.config.js | 1 + 7 files changed, 9 insertions(+), 12 deletions(-) diff --git a/docs/docs-content/devx/services/service-listings/vault.md b/docs/docs-content/devx/services/service-listings/vault.md index 7ac5671913..2e70faddb2 100644 --- a/docs/docs-content/devx/services/service-listings/vault.md +++ b/docs/docs-content/devx/services/service-listings/vault.md @@ -140,7 +140,7 @@ You can validate the Vault instance deployed successfully by using the following 10. Open your browser and visit [https://localhost:8200/ui](https://localhost:8200/ui) to access the Vault UI. You will receive a warning due to the usage of a self-signed certificate but you can ignore this warning. -To acquire the Vault root token, review the [Vault Credentials](vault.md#vault-credentials) section. +To acquire the Vault root token, review the [Vault Credentials](#vault-credentials) section. # Output Variables diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md index af0bf50411..56772a3e67 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md @@ -65,7 +65,7 @@ If you are installing Palette in an airgap environment, ensure you complete all - x509 SSL certificate authority file in base64 format. This file is optional. -- Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/install-on-vmware.md#vsphere-machine-configuration) for information. +- Zone tagging is required for dynamic storage allocation across fault domains when provisioning workloads that require persistent storage. Refer to [Zone Tagging](../install-on-vmware/vmware-system-requirements.md) for information. - Assigned IP addresses for application workload services, such as Load Balancer services. diff --git a/docs/docs-content/integrations/ubuntu.md b/docs/docs-content/integrations/ubuntu.md index 7047f6b5c5..69c3046019 100644 --- a/docs/docs-content/integrations/ubuntu.md +++ b/docs/docs-content/integrations/ubuntu.md @@ -415,7 +415,7 @@ Palette applies a default set of configuration options when deploying Ubuntu. Yo | `controllerManager` | Extra settings for the Kubernetes controller manager control plane component. Review the [Kubernetes controller manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/) documentation for more information. | object | No | | `scheduler` | Extra settings for the Kubernetes scheduler control plane component. Refer to the [Kube scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler) documenation for more details. | object | No | | `kubeletExtraArgs` | Extra arguments for kubelet. Refer to the [Kubeadm init](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init) documentation for more details. | map | No | -| `files` | Additional files to pass to kubeadmconfig. Refer to the [Customize Pack](/integrations/ubuntu?22.04.x#customizepack) section to learn more. | list | No | +| `files` | Additional files to pass to kubeadmconfig. Refer to the [Customize Pack](#add-custom-files-1) section to learn more. | list | No | | `preKubeadmCommands` | Extra commands to issue before kubeadm starts. | list | Yes - Auto generated | | `postKubeadmCommands` | Extra commands to issue after kubeadm starts. | list | Yes - Auto generated | | `imageRepository` | The container registry to pull images from. If empty, `k8s.gcr.io` will be used by default. | string | No | @@ -519,7 +519,7 @@ Review the parameter documentation before you make changes to the kubeadm config ::: -Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](ubuntu.md?22.04.x#ubuntupro) section below for more details. +Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](#ubuntu-pro-1) section below for more details.
diff --git a/docs/docs-content/registries-and-packs/deploy-pack.md b/docs/docs-content/registries-and-packs/deploy-pack.md index 439127799f..c719ba4fa1 100644 --- a/docs/docs-content/registries-and-packs/deploy-pack.md +++ b/docs/docs-content/registries-and-packs/deploy-pack.md @@ -1260,7 +1260,7 @@ Packs are the building blocks of cluster profiles, allowing you to customize you To learn more about packs in Palette, we encourage you to check out the reference resources below. -- [Custom OS Pack](add-custom-packs.md#add-a-custom-pack) +- [Custom OS Pack](../integrations/byoos.md) - [Add-on Packs](adding-add-on-packs.md) diff --git a/docs/docs-content/user-management/palette-rbac/palette-rbac.md b/docs/docs-content/user-management/palette-rbac/palette-rbac.md index 5b1f662da8..f51bb39bb8 100644 --- a/docs/docs-content/user-management/palette-rbac/palette-rbac.md +++ b/docs/docs-content/user-management/palette-rbac/palette-rbac.md @@ -109,7 +109,7 @@ Tenant is an isolated workspace within the Palette. `Users` and `Teams` with spe ### Project -The Global Project Scope holds a group of resources, in a logical grouping, to a specific project. The project acts as a namespace for resource management. Users and Teams with specific roles can be associated with the project, cluster, or cluster profile you create. Users are members of a tenant who are assigned [project scope roles](./project-scope-roles-permissions.md#global-project-scope) that control their access within the platform. +The Global Project Scope holds a group of resources, in a logical grouping, to a specific project. The project acts as a namespace for resource management. Users and Teams with specific roles can be associated with the project, cluster, or cluster profile you create. Users are members of a tenant who are assigned [project scope roles](./project-scope-roles-permissions.md) that control their access within the platform.
## Palette Specific (Default) Roles: @@ -203,7 +203,7 @@ The Default (built-in) roles of Palette can be directly assigned to a user. The 1. Login to Palette console as `Tenant Admin`. -2. Select **Users and Teams** from the left **Main Menu** to list the [created users](../user-management.md#user-management). +2. Select **Users and Teams** from the left **Main Menu** to list the created users. 3. From the list of users **select the user** to be assigned with role to open the role addition wizard. @@ -302,7 +302,7 @@ If the user is creating a role under the Tenant scope for API Key operations, se 1. Login to Palette console as `Tenant Admin`. -2. Select **Users and Teams** from the left ribbon menu to list the [created users](../user-management.md#user-management). +2. Select **Users and Teams** from the left ribbon menu to list the [created users](../user-management.md). 3. From the list of users **select the user** to be assigned with role to open the role addition wizard. diff --git a/docs/docs-content/user-management/user-management.md b/docs/docs-content/user-management/user-management.md index 61070ee354..6be6bcde1d 100644 --- a/docs/docs-content/user-management/user-management.md +++ b/docs/docs-content/user-management/user-management.md @@ -9,10 +9,6 @@ tags: ["user-management"] --- - - -# User Management - This section touches upon the initial login aspects for Tenant Admins and non-admin users and the RBAC setup within Palette. ## User Login diff --git a/docusaurus.config.js b/docusaurus.config.js index d3d76da1cf..120c8d746d 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -22,6 +22,7 @@ const config = { // Usually your repo name. onBrokenLinks: "throw", + onBrokenAnchors: "throw", onBrokenMarkdownLinks: "throw", // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want From e6aa9fca0c18883b63c0e03f3302f561cb20233e Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 16 Jan 2024 14:35:16 -0700 Subject: [PATCH 04/10] docs: compliance image update --- .../integrations/kubernetes-edge.md | 2 +- docs/docs-content/integrations/kubernetes.md | 2 +- docs/docs-content/legal-licenses/compliance.md | 2 ++ .../legal-licenses_compliance_iso-27001.png | Bin 0 -> 36285 bytes 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 static/assets/docs/images/legal-licenses_compliance_iso-27001.png diff --git a/docs/docs-content/integrations/kubernetes-edge.md b/docs/docs-content/integrations/kubernetes-edge.md index 82514ca8c2..41b384876d 100644 --- a/docs/docs-content/integrations/kubernetes-edge.md +++ b/docs/docs-content/integrations/kubernetes-edge.md @@ -41,7 +41,7 @@ We also offer Palette eXtended Kubernetes (PXK) for cloud and data center deploy ### PXK and Palette VerteX -The PXK-E used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../compliance.md#fips-140-2). PXK-E is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. Refer to the [Build Edge Artifacts](../clusters/edge/edgeforge-workflow/build-artifacts.md) guide to learn more on how to build the PXK-E image with FIPS mode enabled. +The PXK-E used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../legal-licenses/compliance.md#fips-140-2). PXK-E is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. Refer to the [Build Edge Artifacts](../clusters/edge/edgeforge-workflow/build-artifacts.md) guide to learn more on how to build the PXK-E image with FIPS mode enabled. The combined usage of PXK-E and Palette VerteX provides a secure and FIPS-compliant experience as the Kubernetes distribution, OS, and management platform VerteX is FIPS-compliant. diff --git a/docs/docs-content/integrations/kubernetes.md b/docs/docs-content/integrations/kubernetes.md index 218e8b67dc..057fd82625 100644 --- a/docs/docs-content/integrations/kubernetes.md +++ b/docs/docs-content/integrations/kubernetes.md @@ -36,7 +36,7 @@ We also offer Palette eXtended Kubernetes Edge (PXK-E) for Edge deployments. Ref ### PXK and Palette VerteX -The PXK used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../compliance.md#fips-140-2). PXK is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. However, if you use a different OS through the [BYOOS](./byoos.md) pack, then you are responsible for ensuring FIPS compliance and hardening of the OS. +The PXK used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../legal-licenses/compliance.md#fips-140-2.md) PXK is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. However, if you use a different OS through the [BYOOS](./byoos.md) pack, then you are responsible for ensuring FIPS compliance and hardening of the OS. The combined usage of PXK and Palette VerteX provides a secure and FIPS-compliant experience as the Kubernetes distribution, OS, and management platform VerteX is FIPS-compliant. diff --git a/docs/docs-content/legal-licenses/compliance.md b/docs/docs-content/legal-licenses/compliance.md index 432dca9624..0df6d63291 100644 --- a/docs/docs-content/legal-licenses/compliance.md +++ b/docs/docs-content/legal-licenses/compliance.md @@ -11,6 +11,8 @@ tags: ["compliance", "soc2", "fips"] ## ISO 27001 +![](/legal-licenses_compliance_iso-27001.png "#width=300px") + The International Organization for Standardization 27001 Standard (ISO 27001) is one of the leading international standards focused on information security. Spectro Cloud has obtained the ISO 27001 Certification and undergoes periodic audits to maintain this certification. ISO 27001 Certification provides assurances that Spectro Cloud is identifying and managing risks effectively, consistently, and measurably. diff --git a/static/assets/docs/images/legal-licenses_compliance_iso-27001.png b/static/assets/docs/images/legal-licenses_compliance_iso-27001.png new file mode 100644 index 0000000000000000000000000000000000000000..a41e6dbd7e4fba0f90fe73bbee114aef957460e3 GIT binary patch literal 36285 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 literal 0 HcmV?d00001 From a52bf42f5e7f142eb7e3f4d9997b0bf147f46819 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 16 Jan 2024 15:07:38 -0700 Subject: [PATCH 05/10] docs: fixed broken achor --- docs/docs-content/integrations/kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs-content/integrations/kubernetes.md b/docs/docs-content/integrations/kubernetes.md index 057fd82625..c68d007fc9 100644 --- a/docs/docs-content/integrations/kubernetes.md +++ b/docs/docs-content/integrations/kubernetes.md @@ -36,7 +36,7 @@ We also offer Palette eXtended Kubernetes Edge (PXK-E) for Edge deployments. Ref ### PXK and Palette VerteX -The PXK used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../legal-licenses/compliance.md#fips-140-2.md) PXK is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. However, if you use a different OS through the [BYOOS](./byoos.md) pack, then you are responsible for ensuring FIPS compliance and hardening of the OS. +The PXK used in [Palette VerteX](../vertex/vertex.md) is compiled and linked with our [NIST-certified FIPS crypto module](../legal-licenses/compliance.md#fips-140-2) PXK is by default enabled with [Ubuntu Pro](https://ubuntu.com/pro) with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. However, if you use a different OS through the [BYOOS](./byoos.md) pack, then you are responsible for ensuring FIPS compliance and hardening of the OS. The combined usage of PXK and Palette VerteX provides a secure and FIPS-compliant experience as the Kubernetes distribution, OS, and management platform VerteX is FIPS-compliant. From 9972c5b315a946ff90f42be513bf212e681dc3d0 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 16 Jan 2024 15:20:40 -0700 Subject: [PATCH 06/10] docs: updated index page --- docs/docs-content/legal-licenses/legal-licenses.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/docs-content/legal-licenses/legal-licenses.md b/docs/docs-content/legal-licenses/legal-licenses.md index 9873b672c7..37e4f55106 100644 --- a/docs/docs-content/legal-licenses/legal-licenses.md +++ b/docs/docs-content/legal-licenses/legal-licenses.md @@ -16,6 +16,7 @@ This section contains legal information and acknowledgments for Palette and Pale ## Resources - [About Us](https://www.spectrocloud.com/company) +- [Compliance](compliance.md) - [Open-Source Licenses](oss-licenses.md) - [Partners](https://www.spectrocloud.com/partners) - [Security Bulletins](../security/security-bulletins/security-bulletins.md) \ No newline at end of file From eb5ab253f0f0c6c5efda28f3b7ef957dc97d4ce2 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 16 Jan 2024 15:37:00 -0700 Subject: [PATCH 07/10] docs: vale feedback --- .../cluster-management/cluster-tag-filter/create-add-filter.md | 2 +- docs/docs-content/user-management/palette-rbac/palette-rbac.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md index 18bd65618b..49a46d4d41 100644 --- a/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md +++ b/docs/docs-content/clusters/cluster-management/cluster-tag-filter/create-add-filter.md @@ -49,7 +49,7 @@ Upon creating a filter, a display message will pop up to confirm the successful You can assign the resource filter created, in combination with roles, to a [user](../../../user-management/new-user.md#create-a-new-user) to enforce access restriction. Palette provisions two types of roles: -* [Palette Global Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palette-global-resource-roles), the set of roles that are available in Palette console +* [Palette Global Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palette-global-resource-roles), the set of roles that are available in Palette by default. * [Custom Resource Roles](../../..//user-management/palette-rbac/resource-scope-roles-permissions.md#palette-custom-resource-roles), can be generated according to your requirements from the available set of permissions and operations. diff --git a/docs/docs-content/user-management/palette-rbac/palette-rbac.md b/docs/docs-content/user-management/palette-rbac/palette-rbac.md index f51bb39bb8..bf3eff5dcd 100644 --- a/docs/docs-content/user-management/palette-rbac/palette-rbac.md +++ b/docs/docs-content/user-management/palette-rbac/palette-rbac.md @@ -261,7 +261,7 @@ Palette enables the users to have custom Roles. These custom roles can be create To create a custom role, login to the Palette console as `Tenant Admin`: -1. Go to **Roles** from the left ribbon menu +1.From the left **Main Menu**, click on **Tenant Settings** and select **Roles**. 2. Click **Create Role**, to open the `Add New Role` wizard From 4ea675070a92ead8322f36b8ade160e40c559ad4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 22:40:55 +0000 Subject: [PATCH 08/10] Optimised images with calibre/image-actions --- .../legal-licenses_compliance_iso-27001.png | Bin 36285 -> 19110 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/assets/docs/images/legal-licenses_compliance_iso-27001.png b/static/assets/docs/images/legal-licenses_compliance_iso-27001.png index a41e6dbd7e4fba0f90fe73bbee114aef957460e3..41a0a08a27bbe4a865f423859d7e631d61ab8984 100644 GIT binary patch literal 19110 zcmeEui8qvQ__wh{_C$q{w4jEHu{KN;$~GBfmxPQxYZ#`ol(p5qj4;O7m$8N-WG7=L zV^3LTFv>D^@8kRXy??}e&f7Uo=kPrDecji7eXi?%Uc-%ac{oKlnV6V(?&{q(VPayz zF)=Z};y4EU29-v}1OFZO*0c0wV&W1w`T_lz2-{;~I>&VP_AS#O%JPJ|=heH-64Ru( zQ-k`_)~E7?&T4aE6apU~U;i`sCYK%a!X14W zjy1BCG4n)8g@2jCCsL=_FC1fRI=nUen7GwGE1?N&^Z)<-e-8XV%z^Z^+I>$3d4Hv+ zY{(h`}$A1-9V=#>+~vP%N$^b(mB>%+IMFL(>4l*S`>t{f8N|si7Xe<@jzJv zf4&kRCcN*l>T|H2%0l&kqt@d=OiY5mQNf;_=pDrym}bI$!nGaMTQJliihb%D6BBIi z`TFpag|I;Kj0?k2$G9;L6V+1o7lI_!a25g!vLQL1mLMK!OMXgX+VSIQ;WHat;t$?s zB~rpegh!x+2qOE`O<);M5Tr7pS|60FG2`=XiZK|tkHk%i>fB2w<>6O>bC#psU?CjV zr4jf0limoYV?&U;P(zw_0X{=?e^doq7}m9R8T6F19rP|E+*4OSI>9-?GFrr%KC1L|Ov+E9BMu$KxW{oLZL$(d*gwGS6t|l9Sg1*qgcQVdr_n1nGFfl#!ZHP2U$f{QT)4l5e_p@J4_hjroZ2rw0C-6iMZ z$H!bEY8SoIenGI5qNA0993skT=9g!t`kHLJ2j6zoGfxYGHuh>Y+wB||{GI>|8{zo6 z;CydchIJ&tf#$IgmQS}PR)0Rg_~VAo8-ZKO+ICTADm{!kTbBD$IhdH-tnRonK4 z1up!nGHieMNRlyo3SyXBqD{^*s(9d9)-u1h8yrfixIc5*MG6q@AMYJCzm_3P;gdm+ zGocdTl3kQxZVvFY9n0!(NpAyK$%|)g%@ww~B>+cABJgybb+vd-B_aJC6)Uw189V?} z1M+;S(;+;Rf{JViAVP{Zbu8tR){uYd$z`b8V=<&+kaDpQs*EZcrnJfUc96txGZlWY zi91O6IWTVUKq(jqVyoJ|kjc`>5Q>hT^`->WsEL>0bR`*Oc9&5(zgS_cLg!bC{(Q*p zA_-6&OqQwfDjBO(WGhR`ZaUaQ3_J|r)EsvD?fqSi*pa=cfww*lw~s_TtU4H3TL}%d z{Jqt-mdSUPi6mqs5iBUw;KuphW7qfp9^nJe@qv>Oot<6wYjX;j$TAD1arD3j|5Xw# zQL|}(H86VWlzQt%Lde&5;}*_@mYB%Dwuv&y25)?D3jm z!6hr2;Xz@A8rhmRHBINMXruK$A*N#9$^&>!4b5QludJnrV0%%m2a1EXy0_T9Uj8t> z>bmq~=8Zp&g&dnTNyd^4|2Cb{2<8YM@CVaoXjY_#M~LLbk(m~#@bwWDzuT>}kX#=c zPsg~~6yn7i3j^&8zLNGBE7E%<)~_AjyBl7w_73DU z$NmLw*hO23!nK21j&-X9xwVZJ4;mS5{^{KKehg#YPSO{S}Cl45|B+teVcaU!;gHNNeUC=+|ri160z8sf)d zY8`t%?VP2Hg%G@;#rSy9DujQMV3x#_n~Z98m~F=HPE;(qh{j&@#~mC07udde4)ydB z#;5MJYmm+l6Aqp=WUzHB-Trc92wWU-ldtIbIcDnTOpz5!_YwcYANLW#qOH@k!IJwT zFMf}uFn0ZS{yL?360nGhoa!*fu>Gd0gh=!Y*^?aEfxJ?Sb?m95l9(hVJoQ<7lHX{c zpTYgCBuKUwIDD*aP^Q&T>x__|0v9fPXS+6oFTU*~yBU<&V-f6@`qRO%G6bG=i_m+* z4CFsbz-K)uwuD61INkFiFV=}^t@?1<9AWYo~0YV1Wx3@0vO=h&y{gKs=PZKI_4Nxt>$e>Bs8 zoqG=)SZ3A<9F|amHohP!Njr=-;icc!-_mako@LFAvl|9^cyR!!MmRc z2BE)iz3hkLK5&+9XB9CcjmAz-H2U1nKnkv{aV#!6ew?I z!$G_l`oC+ux>}R;ccOv4o*S;Av8LP0%n|(G=mA5NH!rOs@tTWj0F>Oaw=TMQu!aEw3+c} zywAe(7UnyOHXf?8;urEbaaoq|I5)Nl>;|q(+fLcwPi8LvN#Hr^&)$OnGkm6hl`2Uoj#7Mr!RZF zK1);V3?>@yre}pmzeNDFj;JVJG_9-n6GtDsKS&7znYkRhz+L#hOqVA&e}4832oQF> zHuQ%ZmvX8n_+&Qcyt+T1Y(?AE{hIU4_GAHi$ye6v z<9(rSsREn>9JmA%olaI$1S-dwxSr$l*!LHcW&EJhA#eL7emH~|!dZ*|-9eSemOwpU zxuw?2YHB_3rOtbYD3f9Y_h+=xJL@^b=jaDFI;J=xkaVl&mnzX?t*2G6c3BUt-E zt3FRunvM~NpdMnRTumZn^GHvytrbNyI1$T#Qeun0}Z2U(Sl2hLA+;3^!U&mfA zaU6F=zL-rRVmLZ!kzj0w_7HZ+{N?3pkr*tZe$V>L!h9*!^-x61MTYa~J(83xU@*MH zp}U+s60~hr)6SZHThNG=X~Zzrl_0@5>9NB=uzg2fNv9ts%*qxpqA+K$cOtGem`b^8 zU;N5Ov=ND(pGvh#xz69ezskfD`RZvIN8?+gJYL3kcB%W!)W;(_MX9Q)!IIi9i$uf>%V+jF zf@^^j5+K#)An7)p+^hx0+D0Aztxx3bA8f=7H5YB`>9NYp+{JX&c#QM<=U}=8O5(fT zkf$Od!lZQ(f(c7iz%(DCic)@v>S*Dk2W{e~`I=fs76$!GsEp3J7(c-Fku4o?qgxx# z4%0YvYvo(mI z+sWv;1gvSb3LS19h$H%3*q{XyNrhkc6J$S=BB!-Hk1?7;O5{dnct-}P4wOeQ)b4(E zSeRbuBquKa=4!1w*t$ph!g-9*TB?}R>6@%XNtR1|sm0o;AIwhGNlD1>lh!1u+-0; zaxHI?C$-ty@Z=;t3s1nJ!kRyLQ?8_#3k6Cj4XyISMH8nE7w2bHQ^L|ZPBRysznc%? zgifD!|FH5dBYQLd6ujq2V%|isYnLpMnOZk*PIVI4)V}DdH$m5cK5R3chI7cUlFOT` z1FXDzG>TFcKLjtuZiW7|8Lj3-hv7Jfb3GCpxROW3zz_T^!i>4 zUF(nCSnm_S=YX3IViO;0NHk9{Air3N%z0`LTH^Pn!0Q@p#0ryyPf>ra5At)`M+r*e z@f!hLg)~)Ai%0M{IK{Jxvkbk10_COf8@07m@Zo(Y7OeCgWxobbjdcXX5X!8_pX$Ie ze<|E74SQ?=1Aoq}`84p>H4>`pRY2UF2wxX5Ni34}Bl=0X(_IA&*ocWU>x+({JZp#B zgvEI_)Abz97P2 zf~Ixf;91#h?6_~Wqh4Rj>d^eLp~4Mj#A^eX#}%|6Z97@Q>&gaTaCjY)f`On#nb?i7 z&w2G_nK#v0i3iz^FZu;RgqxYi99T_H!G)yod~duQnI9K4ndoyA+R7@KLyhK{V$nNx zOp61Wwb^`<86-h%0eCDQ?l>vLW8vVvvs3QbN`Z?D@EN;(EqXZh`TAw!3(5c%kygIj88%dAysp+^}JkxjOd&d^X) zRvh4oC|P!r#VAD#w=AV|o}1vzEkd;wqOD%x5&9OXhG`{E31IT~CZ>y+owIC2Gd+eX zC(g!nH<`rV`NV=-DwBSQ9oQk#1~Ox$)BHv?<{maBqt(ogWEtWAgyR%ER%IYrVq(l> zC_~Y@r`ou{(8S{R_B4=Y9^=k3F|p9i@Ay$FIZd_Oxi zH7qv$fn+o!7};aR-Oh61RKpY4K_if#GdJr`!|(nQ5tusfuqL;o04-ptjUs+-bzKV{ zzE%?F!A{H$)5z3zKI~4-Ib)J|uZbC%!?$M|-vT!CHM}2(8{lwC^PT<;oH$_b?6BZn zEByWiOcJWe!$aOngUe0VajaXh7z#D0H%7iOyq~A960f-@q(upU@wCSU3&M5;jo6Pg zhbwqG(5k9=buz>4!=oL)sbdKIv40eG8CIg}1P(TG11`8K z^8B<`>e?><=Q_zuy)EYYdIiCZbRb*Dfog~aRktY3DaWoSFtM&-~6fGvKZ%62Je?;f)M2%S4`Z&3hQegS#PBbj^he7+IAl^ z@cC*xY{W|S8#UE7k(9x$iwy^g0;bXKT)q>#>uYXzNOjJqj5dC`Lof%)hkt$P%zCw1 z;oCm$`F0@4uv@w8r+|Y-lY|scAHLqlIbPGMDUY*B9|Q56IEC70&KjqdRRrNZjbzW& zRGp@4?}Py;Vp#iTIz69(kj_;BTXM8c??PUyavfsMjjFu-e^(XD>#6lt1`BlA94~nYLr_4H* zh7OL4phSN=odw7xtnq{q@q2czNg0~zUA9A+9v2e*XHxRVYS!Q!h)~R%MIY#FWTT&E zrowZiB$q2cc1mEn2(Ny)B@Pj1ca?6C-~Ob8zh7+g@aJj9zdScQ`)BH)=P)bi+q#O= zOUM34dO#JWOW|{^NlLBE`GB?f;p0F59BpNOxoa8aHp&YI`Tu&{lRThSw*6B;tBTX-Mo<5nU~M$BL%a zvMa@fPE1D`zZcR$HmsW4lstenjYc_A-~Gukp=$vS$y67zQ~sxNS0;wL@A|(K{Ob3# zelZXseKoT{gfK93RuH}$@F?S-%7ZL=J^>sx>^1CZ?6`SOtTGT;2{kUl`@ikz>#luw z0-nw18>a%c1(b1O@57{r*Rzj#IjX~(&@P=SbAoa%n(`;@ZiT(Kk(nhMQ7(H(uBxfY zkUo*-W;R({ShQ%T`#4do)wSW>&`_+`{xC<4D7*j+M6y85eWz?~6(M-7x9R*}&o#dC zpplIm1yWcJUN;I5r#*JuR}{F;F6y+i60r%DjTabZ!y(%^*X0F4sdR8iLDuAzUFWrP zW8cN~)46bFZC+URnKgM$ERJ{u4b}^ZF*{X1<`ihCf%>Dy6ec!V(ebVLm zT)60~{qJStqTKS;jE(N}o_S>bi7oyTcY%bCTg!50@WIptuLi3?tB_ls$k-?kR${8? z-<&f)fONG7oWY4p7cqpo*SM(OX+ypqQ0x75U28_XIuf#8s5bfzsBAAWgq=SP4YSEo zqt4&!;*@G9XL=$j;|(m-z4*M2hFGqvL-^%V91J8I=z@1N#M z;?9cE3><&iZHayJ4sG>A37MWcs)vB3dLz9o?9+;wOi;KwYrh^QkbgZ|L_9#>5L9no zdlD#AtFqLT=No9mABu9x6Ti-pQX9Tm-2;tOY-)KiBPGRz$3$=52o@o|Ah8qg2FsT2 z;=?9%E*V_zukPHh9@((IavayQ%wkz$d!Pih0m|gwLzSsDQc$>lC0lFj@CkW>K#g+c zAAmn6D%RC6a^RfeD!rQcr!Td2g)uBnbI);qdCgFtC~K%b*kq=<4#{H8ocieMDnMD^ z_DBao_RH268aH9xe;jh+luhDSsGh?GkeS1U81Y*ZIDq*3(mgEnd{?KRC{ zC1sQl$`0}QKW6H7h)u9yZjK2Kz&tD-L%#i>hun=}zj*e(!F_K0Z?MbwOVec`xY@E3 z3bb+dyu_v8{p2)q*uB;A24zC+I#7`2?!KEIcXeMls_NTI^}&!l>`$vp8)>~4#uf!{ z{#p@#d@LGG-M(EvH^~AqI9>W|*{O&n>iy@MT3foo2@oVSP)1EauKkS_IqW#Fga{}$ z+rG2UjL=kE4;_8l0mUus8hWx4Z;~&2RX>qYZrzk0LSK7Ylp3`flHC5Xo9#^q47y(y zemHRG`>x~u$eAUje4`@}VM>stiT8ZSY1()7zTOWb;YB4ozUB5Jo=abc}GeW)o{KW2Q# z%)QMEy)6!JkZ!5o8qrbiyt?mx!Pz`Fro|seMWOL0U-~D03ggCmNLd>`4;)(c88z2& z$P)m>v&R)OcS$_+jA_JeSYMux1!TO9^6e}itt}$qm-@ACNM9#)B&;Z@>RfIlPdl zj*QR;GD_Wvg4UgZ&{kx#ko9|ys$X@MMSG^bgo_x8qb00w%g$uE|6!Aia0KxzDT`u$ zDHbjA!nKlFFI(+;2RjRplV+CYd}#BVHqh*RguPc5`ndSRsw4(0?Y#z{Ly;M^TM8W? z?4meka)#50;xw*gK5-r6DlXjagrqAdkFM*uf~6qf02!Cf;&GQo>Hn;?6*}KK^EBF! zVn3eHVkJ81lJt4bGE*yaX*Ge5IY%_G4)N39@x`%;Ny5;+E0{Sr)8el8&NU|{emH=X zsKd=qXqhY@E=mU;)w-#iP5JD+ApgRLNc5{`FOX(}g%Oab3Y4+!*&cS{{t7rl-OZ~S zz(%N4Eu@iS40%dHG+Cya=jQOT{zz8 z4TDDdo@+bSb2axGkmxsbcOc~C5Lu8-cc5s+imTesQf`6#cP^fHqkcgziYP$F_5IJ9{Tw)*J~q>_4wxiQ{qA|ru;S~OIa8)Z z^OQ@fzAO&_F1dKZmX*c^aV-Vv|7~;TmaXF-0Fh1*K2?+WoX_DmzYY)3AN-$LfID9O zt)Pt?`RW7dLw~+1>{1{{;yPS2s4zwzi~Qpbe$Oz~0F4km0oVBv00R6ze7(8#jF}q7 zNHTMp9LN;n)1QcA18|-ISCT_k<>&w1Go$rc3qGU>-Owj|>PbANZJwdNK0~?lVUPa_O} z26iEMCzqJl41Xyn#OXXK1o`(5NX6Ytr8d4ptIe*-CJ%bx<5Yg^#F;1-_=s= zJij+8($g&orZAHDP^!*;I6MdKG@|3 z`M0P$Tc*}FzdS$sBo-(oOO-HDn3UgHo^HZN60l56h;&&IL53DXFw|c3S!U$&WI?wL z9}l3jZX~uh&3pxXg$2xj?5Ic6~X>j#aI=rptWDNYhtJDPp4>Dh{?&$CyLM}q(q zpV&_Kb=xzLXB&vPdBir9y60Nz9O}W7u}AwLNI_w9ewlUDEvQy~$xDX~o(D&#r*m|@ z=(*?)u1b(fMrK+c$H`2&tpKto8cY@yHoF_zw)Nd@kv*K5+M^vNg}gKX2zxNLYJ;!v z_#erz1wIxEm6$Yv#q%tsQ1v<6mt004Oza@WdWv@QR?Xskj=T}M0_`+spB)P^{!wf}k3RLw8AEO7@GwMDs`ECbmB+SpsxL*<2{LBs7 z+-tdFsr+VW=X6JA?TigHyXwfiyP|C;HZ5fmoL2tSBmv+)+Uj3ODJ}226TTLmHWXsl z)!@`o)H?40TYhT8yhP^TrG*7b*jSNGmD}z zHMe$J*AI`Js)Ob4Kg`07G*Mo$K!VVV=ATSjjd>k8XX#UvnerCv(o?9jf-wMLSy#S!HK zk7!mRJ(a3|Z$xo&kp($hG2T{yy|3LhvtF?hDgcOcMB_Ieh0;cU&#$}tLRhAYH0qgm z%e3XemQqc|C=zD4J*l5TZ5%BC%(r--d=I`nQ6#=kHj3{T9&ZZLltW5Gy^#?ap ztvGzGfiJsKOl&L|um@qm2G7*Hx`mSz9d+%8b)KqgK@%_LyunfH6bL3N+gci5=Zcs$agBT7M4HF*btTxl#KBGUa<_`J|tA zd7bz!?e9~b3NJF*dhV9#gRkV{w%y+swX^R(1C-Ri*gN)(>3pZT3&n=2lwlsCaU5ru zc@n$BiJMqCv2D5m-TQ*oDY2v0#C3Uw4;w+DkkcnFMhq7;4|f1gVWgt@GFwU!%7BLmBlCMZcMK<{Iq3U>1p-`@;VyJN8%2Lb!jv=~y zua?kT6Y^*Hl)jq#ocIUY)7((}&fJLINw_9Alhch6<$3>}-WxB>8p)4Sm~DE~%i9fn zW~v9&od2U8wXQfyx91*ZS+{^Q`g+N9;uM{AMK-HT2*y`=`pK9G1+Aq!E zdFpW;@uNOKx#nK=QGe8&ct&sJ%sA2~Z$R>ogF+7At+typ22AZiklcZ9ruI2ASgPll z8Cfb1(N0C!eqjtcAddans`nq|A~W|0yg!s4D^K0}w9%p;D8PYxJJ1fiOL&=q-I=TL zOigXmzMG4kvRB-M^&Rd7XCS?7|D!oCxgp?L6v1E&86>A7avnqKDZ+d0yt#zwppyZ9 z6XFsDg2Ua!)kvrQ2paJrB9Gd6{>8YQ4@(*4PG6&sZF`>NF$59fc6~W|nUST8m{9DF z$SW^-_ z;0MxA;DvWl4wb)dz7}n%zh`;Xwb1AUh_HP2+Qaty?X>8+uKp0wiCZ5Ei~$)9haO!iE`nm$7KNta8+D>?I9KzIMx>oSM6NMAZGQ zv|hh>(e}4bn{<*bj4xr5AZn-73`}gwj{1%N1W4RbLuKV724+8FC9@=*^m0+}G)h;jAX z4O=;BG#qjQUZr+AAw2_dOG&%#$|He7Ilolg-dNlK60AZsm6f@xQ5TLH=E7Q5)Q+bO zB~F66-TUfkAs?(^%c8`8K#uWS?HS1b3xV+0zeiB<7h$RitTgceW_ZF#!X)B99pDaq zGS5Hw!^7$6Q?lG|t4!ZMAgjStozE?7cJKrG#R$MJjfhAqS=|FLml@DA{*%ca5wYqpfMYbSK9*oeOd(i?65M+%-;delI5 zM973w_k!!k_)&d`Kik}dR#U3`V>-f6ncWqH>)N{k z(a;t-apM{L_l9%tuVSc>)L)^`zRRQ>rC^-8Ft5b6KMD;AF{Op?!J~Q^@ngDo)&4=- zC=Nh-%P2OVB+G@H{R0ry1&&FP!$c7ZPBsO2{LO%;xIT}fH$`>*p6^B^0O}1^!7wv@ zDS>~iE&X~(3sVlNzP{(~vD#GXW&1mRWHaD6E|(dJ{m%|SOct+Y4LWL*pYec{_R^y~ zoW${OLJGG+mdc&_ZnRPT5ywqE1py`lLuKeCpe4iRWfW^bN7epj4hD{YG@thH#q^0O zE`N$+ONhmKeBtC#R=_OF#PnwyF!f5jH^A_;{d%CL`EQNS`?FyT$71Tr_lLnZC0sWb zxZI31%e0%;Jh+a!44h0bP-$dhf+IQ2+(Fsw8p=iff7%5gCTV+VXF=?ru#$f37JDjf zH@wmOA4*UBUJD;?Q|l-|9?iYocvvJ1ByCbleZWkhd&<4$|JG#seF6@&s00O9vcuQE z0!0!)Ua=l-?240w@ITPTHU|CSW z8koLh+?h1+{}DFsIk(+adljICO-VqGFJrcxE@`^K8##PQ`h$7vGlliQsO38Rz*cCe z8+yWc$6I1g%z0Iq+}wYgz>^d_fI!*HtN^ps3qIfKQ8%&ZsE{U)d` zax_yq(vB|I5Js4r8W?V~8ipTb>^*QH_4Lmb{tZf|(GxF8XW?U72ZHe-@h%{O{g>Sv z1FBWC*4eOm^P@!RuZesps`B@!}W|&_=tm96)huz2d0^ zD0%0s8>iIS(lTGqvMI0Rdi4+FieYfR&W$enm&>nJur=%<}A z9&xcUBp-N}+8%^=u1Lzx1Zt20pURA!_qLi~;oX?h?+GlHGn@lmC>F|;$uLKR0^`9S zu3|bogXS^-b3{7NRO>tD$W9KU`o4!ad^F~1KM@~c0dF+*$yhn#n;3%%u+=DIaCVKb zG`9u*V1Oh<#I!ZvV+j%Zp&ha8#1nLIz;6+_`V>nkt)n5TXO-UClKoG7aDx%>Orv+` zlux|j#^=RaqwO2uCT*X5;r^!5Oab3&-8oKNJPlb!3u&xnYbI(8&t(PosZ?wfXcw%9 zF&Zjjn)OR=#cw=Ho4W#VXZs1N&W>ez;h5usB~O4O_ z*-2tSCLe1v>AA#8^gl+dffQUcYAXU$P1ZDgtyyX}(N?wl(+tEj`sJHt>9O*Ls=*J! zGqX-{?)kD3lk)~dZtzL&+Rlq-xk;mt6D%A58lvw^*+4RL=d{fFj!=`~7$cdUAZ(jC z3)1?H#iP*(bOX?rY811Xsmi1x?LVI`?AjNum~*>IIu*+2>ubPpx6xIddEz|bPf@($ zK=Hnbf*BG#Gq|<&_QUcE8s3QLXogSFSK8EmENB$`omC8=u72TKc(eaK4zLwZL&V~i zjVRWd7Z*P@Y9Mr%jp)x##1hc?a_xmY$H@NChKGi*%xw|3G>ZD{eo<-LBdYJ`6}1vI zv?H0EHxoobi&(dKtov1gHhiALPB43=v2|658v>ae#7t@>=erCloex(bGs>m-2w0kp zSmW<}G3JzR!!gVbBeWaqJ!@4~f&FBrf79#HOb|Zc$yJO}KRo5?ma!PTMX+K#+UXm9 z*(hKsu&k?fksM{Voc1PUsu>`B?kTk2^xG|1=89Kb!m+FT(tt47h(DnZ`=O%qho7mj zQcbajYkf}DK_z61&}XeTGFjq>V=q66?qEi)g=9N-7o)qEZavPrPaOVa-M!xQ%0T!C zk`pBVLRDmwf!gi!UvGo;W>%sA3vzg8?Oo9lIWR&(BNQ9$u0BT!j&D!Cbd@prsLB}o zB$`xqYd=8jPQgyUSvm~nwDTr7<;k~oFzfIIn&Ir_{r*pGN7{29BOb#M48$r~O#eyv zeAd4dZ2aH+VTE&~Tgh!%ac-YG(y;Y%swPv4eL+i8_d_x#Lp=?}v>a>I($p{=&cZ)Y zFKK#IS3PN-kD=Okrrf7&R@gWJKKq{pL2ir`M!Y@wU$71zTZdwd7ZTW3#DsL8S{PtS#XHW22`9d>x zSh>{5=qUOd2J;xT)P6!Y_`%FB+=VS)N@`bB+f{r6ML z(3TmgqC1PoOdM`5NZq^z_A!2ZhWygWvk^G+B@`^VQrzZk9;&h<3*C@_7SS4`U{~8G z5$=y=n?H7FM==swS&)9!VcRkzzJ0Jo0k~-R;j6;tHCAG@S?T>~(BeCl1vpVM&i3HYqrV9&C2X`>uPZGx)alPEl?-rdyki6(rq?`JBFz9<5h&y+EK zZ?2dng;9dKO%}AdRaM>FplQZ^;>0@X=!O>F60BtO^$YGDK_y7zI~6^xSE zZa5!N2Vp6ei!0*59Wpczs>pO^tAx&s`1l5P?G>|Y^W%x&(W!9WCpnUeBX1pHO~s-H z)<1P%ws&EDPrCmoW)C?G2LIS<7%BL?;>AooPbQ{>glD5EA_u_%f_*~pSu$zf&10qJ z)YWcjB=pR1kT*j1M1STB#7M@D1h}?*d zvL^q0wfbR;(k+RxQxmhlluA{1fh~)hw8S$dtDR)=lN>Rh2Pm2yD(`RS52&lX`-poB#>n~fe|~%d?wEN61(<>u zTz)yTGizW7;eUA5-~8Be=~&;*h;ysJZI(ZwOY!;duVx68S8=;N~%dXGI8m~NMIp) z$5venK2hAV9N1`@BNd0c+Kk!@!w7%pdn6Kr9ROMF?|tuF-kDr-k7J7#m*JV4;-{J& z&bq5hVdf+fJ|SLq%PawEA`JJfJM9U^*pYaQ6=XI2XaXRDo%^#vr^eWWJH?N3k@~0g zt;QgycC+4j{(0{JbgLUFD~G_=W5F>Zm+VFKjdnLb#*m<%>{S9ove7(5;V6|&!z49+yr_=ob2_joKpynbgM%YoA_ z*qIZAx3~>I2q(KHrCtP7OM>>|))`xmoqG7&+O{E!(ZIjTqM5(Sm!Th7iE*O0>*L%F zhsv+y`&cb;AUj*G+qtTuF26uGyhDqm$2|C6rPSc;hjr`<+1t^9(?8|9SWa}#)nSi? zdTIke%o(`XOQc`Gi%+;aMfh#f=^Iw_-yiM2^c_Z^*oasAd-joP#=qi+Z|J-ri^Juo zh9r9!GMG{+Ob0$H=_%h6w^bvJ_OP$PX8=F`G|fbuHh!jYG6>M=t+<4UoeUOgZAkyi z`$WjG5Bn?d)4W>wQzK2I7G7gf1pt87-*u-oK!)zZ1tPfOA9Mq-ioX~LGC31)^|!dU zl@dnI;;QRM0Bo{UuaMny%nnB!BVv)e{$-Y0uqMB&Q0MFV&+oEOZ7-a?S@MskQ#?zw z1V9%q36@Z-S8-v(9n;K6jc`ZB+ZS#!fG7!!6}bMcpCXIsK61X9#EB^4#tjKe$|Svm z_N|L2_LypxT3)ff2lJp7|J*WZ{-KSWNKz=c#uhX;wX4FQFZc^2T7El9S%;w(Jx!^0 zobTGjL;1GDFN+?>nK|NXd@tCt8T?28P8e4m`?n-e-{kXJctsw>&T+^nl9dK`WDqMn zdJ0*Pjw!pV^&bV{vjpdES*5PPTYnw8mLKBpkL|BOMuW)cYhiYex&0#+Hu^FKkj%e+0X5C@07zyuIu{MP*PAl#6L#Pato~F`!Ggk z9LTy#5h%Cplc^d#vu2rW#8z#pwIM7e)Z;d8daM??`U&LVNW0HQya3ET)AprxmA~k? zbIM`lc9lC~t;7_b*#pClppBfm5SV-L95EB}*MEnvwBq%^>_zoZ$IKfDKkwcX@bv!n zF>ia(9bo*>^z_*>sf_nf113 ziizXmVhS@gm>KC#|C=Anys?{L6gyt_i9F8C=pfiR_KBTeOZ?Q|gd*F32!+sp2L>nL zcfqF1@evVsLonxQw!?x>c=1nTcBX*;o#2Sc@N%OGzAi26+jFQOphdpbj;M_0-iL|( zrR+wPm}T8)w4act+&wAkk>2?JX&>3bdhp&~n`|U&U@4k%s#Lo%FApt}Eu0#@&t=s% zyJX#O^K#X7Wr!kvdEGXzfKd%p&&){P91k{{k*4N)nsVd7#`B7HG)09%c=(1NP8I?f zQ8c~++Ia5M%$sHk;UI;^L+FvJQz7mYiKVQm+92ccn`1}GaGUJ6Ya(Wo0K9~){Epf4Zt3xI&12T9Htb&&7ShT3c&V> zpE8aeu(DW#m^X#FU+~5HmMk`_I?Ydxg9tu&uL+kl2UvU}Yj)Vfi_ia9*)nEDhJ?cg zd|qF>+05=b@e#1<2(fcB9rcete!ajm9d%4QVHi~_0vBy5ikxgY%DE|j#QC$DWU?zN z_@RN<3xe)r*~verU6yTUai|5qlwUSQ&g_a{$JDwBl|YyWZ_u#D$+;(MiYR(L`0_(j z?@*lRD7ST+!CuIU$cwvaGg}Khm)Bb5n2{YIa8=38B))ktPZZ4{Qbxon=N7-6OD~Ie z4Uj)at3^szFre*(ogk)-25m)|5|2QK$i*dOP3$O6~eW( zja9-q1i3$x+TfL$S&=HHswCykK3sdvWQ*azLt7q_IX7Y~V+7!!j*>vO$=_WQG`utk z+uu9)8A=i57-k2C$GZ+YUNcjjOfUDD%7FZvK>pn!Fk0nvaq@#=T(^n7{HG0h=LS-Z z0K74ZXzT`N&v4ThB-sE{wEmP{A-K9dgRVQj+ab&TapA^#ms7V-eWkA$gPgtgt$Y zyLgCvPxZy6$J3uvJM%yN1yVglOpTcz0K5_ZGPwKNYBf%EvXqqJKhkTnJMXdq}cO zBPwBVO?`W(KmI5K{1x`sAIeM(V5Vj;(51PSg)vein#xJST@%0!fd}y^4{mKJ-sh*t zo1^`0QQFDh&v@bB@o#BQDj~H$8MO2sPT&pV$VlKp| zwu!uHBXYcxHZW=Y6s$vTG6;>cEHY&T`x?07MSKb2yEhT%XyN3i?ce71_6w)174yv4 zUTYkB0I*ZebK(9HjprNt;)8_p9}I{5m2vafMJ6Ur*wJ?Z)b0&SiZ_yM9DVo27*qZG z2~zp=fi%Gp2Ca1Xj%<-`e~(O-GF_;4Dto_49WM|j@q1o^(I}y8c~w{Mj*9I;8W*(0 zKbpof&hk)}E|f##{kJU_D)EiD@^;4|BxTjh^UAi}A${Lpgzox8kLP1#6;EL@im?96 z{l0sZ|BN6L)7*$kQ|+wP&^24-h(5cVjXnB1qqSuL6L|#eYX4-+U=O)2K}&^=32oUP zBOHnUEM?Cq70Kio32iwP%R&FpHkZ&6G7+umF2BCIL-0uc^i7qCsaIaDt$xVmf&U$(W9fHTr}uUQoYWw8|d7rJp3>?X;E zV}n?jzL>PC4O;l*^@T~t-+5}VZ5vr;EuiS`k5K?#O*(BIEpl);YSfiE=9K>Sy-dp$ zqEfyx>w_sU6I0%O53%9$zTPNpr0?Gg2w2Y#wMgsh7nqp7Yngc{H-md+itkQ5hA#^s zb~N&p_tb&Wjm9@SBtbZU zFVv`a6KfvKh2&3#Z|t>?ey|{Tz|C?PL;)j)##LY!mAnIBy5Kb%v9DCOY2-7cD`Zvm z%t!qTaRJe?pFPBmd7e5HV z#M~UMBT34;6W86nd=b#CAPrv2)2`H;?;fz3xtT`eWo2uP%1FSiUMB9fqwDsN4+kWN zqV(G00?|O(AHG%5_@O4bneYdZeWlq&yuf1*Um?F$>tEYHYntegxg`67>Lfz7!|j}l zV90(8Jf8nT2DpSi=sz_=zBRKx=EFJsqADyG^@195J$qHbIx|f~_QK)c?LzIpGG76@ zzhBCjOu)|BJJbcjn~Xrbnzfs&LL_<=oWfW;VE|%67q>3fqO4j3Pj&T20+ zZU19gTrpX~;lo0y8>*j;qs{k#i`Qq05ZCkEB=g2fJha%RlCq&rO_vCAc^k5O2nC_7 zO3w}bO$V^S7>X}Xd#daO@V$;NAAr``vO3VH#X=uwdwa-cnEqxz`QkxslWDr{DS1iH zaIjqU9%Y>WgZ!|+ggi}8-J@}MFRRrpwFBU*!C9jg142^uBB65f3PJx1msI>qER(X) zYp5Nww~(DYNQt$Jk!#5Ds`l{UhRDu=Rp-#Hbzf=JJ%MuITpmws11VL5_x%)Wi1&#N zjAxzvv50UsE+=b%_s_|Fq@ zD-W2mk~rS9YZ&&kmZmMw_C6t&ZHPfAO@2GH@85*~r2{;yVTE7Oh;Fx}NARZd}ufhez3RT)?_FlKMu zdW+r)bTGc$yHoIsH{+M6j;8gd>Aq=DAw_`zXl5EYNCaVf2Dq5d4RKc(4v9^5Q-MNQ zduqQAh^a>pr?(7P0bhDRe{}uHJLgpCEh3ZPcTnF6n(?cAWCW=1Zy|U~+;OyRtLxPz zB_Ra$gh?WH51^y?wgq`qkck#^G7|pNg1^wI!Q1g#b84&TL9K^~clMAS@a{jp!ZHuZ zYpg$Le}O639dX4r4z~%q8)vQm^Z&CQxmF);tStm8I^ps@YnN=FftS?p+KUal?#oKo zJ@Y;sX3{<@;CD#4CCK4#TdrKw+RdxHVmV*^_ z?Q%3IzxAHqwd>;b{x>tDqzlgf z-}bKD%!jq^>sz32L^Res%$fO3df9ooHlO*qT2rnpeGwRHu`;bU^Q-xB=Pjnd#b*qv z+>9nYQTxI_@jl$Jk|Rib;@2f}yL7g)Tu+{_n-7$KU^I0{qHXqlho1{Ag0h#!1BHI9 z+Ng24?)#O`Tjxo|y*{^`7noW?Zin2rdmSz64zzbcVDyQcTV=~$Ux_(75vV?cyRSdC zOU~5it8M8Y+b(6G|32I-ef93);b|u2yo{goUYNv#6?U|r{q;9^w)3k4y6GYylN96v zk{dq?1=+9V%#CWlrMO_9W*-aCHXRc?lNR89iTFcyD-x^TmD*nkeskaK@4RVyL%=S0 z5Z$=M(4AwG?|$V!G$3CD<5!~*yRTwR$Bni=3yvZ zb@AMfxTRZJ`))0Jp#`$%Ktkx&d(#$3xw!#%aDla{70L$IawLBF%kjVb`XM*4UnaQk z2$kUk#^@D@o4FyPa~^pB4NY+b>jSO~0E=$e5^(hUF5R=UA(9KDChxj$`xE4#Q7{?; el!k!D#sBPIRSlLTdEIyhGRxD|&t;ucLK6TU$E{TW literal 36285 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 From 1be0782cbeaa33e2d7c74f57965798aa7c9e24db Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Wed, 17 Jan 2024 07:51:17 -0700 Subject: [PATCH 09/10] Apply suggestions from code review Co-authored-by: Lenny Chen <55669665+lennessyy@users.noreply.github.com> --- docs/docs-content/legal-licenses/compliance.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/docs-content/legal-licenses/compliance.md b/docs/docs-content/legal-licenses/compliance.md index 0df6d63291..76e810cc16 100644 --- a/docs/docs-content/legal-licenses/compliance.md +++ b/docs/docs-content/legal-licenses/compliance.md @@ -16,15 +16,15 @@ tags: ["compliance", "soc2", "fips"] The International Organization for Standardization 27001 Standard (ISO 27001) is one of the leading international standards focused on information security. Spectro Cloud has obtained the ISO 27001 Certification and undergoes periodic audits to maintain this certification. ISO 27001 Certification provides assurances that Spectro Cloud is identifying and managing risks effectively, consistently, and measurably. -Below are some reasons of why a ISO 27001 Certification is important: +Below are some reasons why a ISO 27001 Certification is important: -- Customer Trust and Confidence: Clients and partners often look for assurances that their sensitive information is handled securely. Achieving ISO 27001 certification can enhance customer trust and confidence, potentially leading to increased business opportunities. +- Customer trust and confidence: Clients and partners often look for assurances that their sensitive information is handled securely. Achieving ISO 27001 certification can enhance customer trust and confidence, potentially leading to increased business opportunities. - Risk Management: By implementing ISO controls and measures, companies can mitigate these risks, protecting sensitive data from unauthorized access or disclosure. -- Legal and Regulatory Compliance: Adhering to ISO 27001 demonstrates a commitment to information security, which can help organizations comply with various legal and regulatory requirements related to data protection and privacy. +- Legal and regulatory compliance: Adhering to ISO 27001 demonstrates a commitment to information security, which can help organizations comply with various legal and regulatory requirements related to data protection and privacy. -- Global Recognition: ISO 27001 is globally recognized, this helps organizations communicate their commitment to information security across borders. +- Global recognition: ISO 27001 is globally recognized. This helps organizations communicate their commitment to information security across borders. ## SOC 2 Type II @@ -37,7 +37,7 @@ The American Institute of Certified Public Accountants (AICPA) Service Organizat - These reports help our users and their auditors understand the controls established at Spectro Cloud to support operations and compliance. -- Spectro Cloud’s SOC 2 Type II report is available upon request for any customers or prospects with a signed Non-Disclosure Agreement in place. +- Spectro Cloud’s SOC 2 Type II report is available upon request for any customers or prospects with a signed non-disclosure agreement in place. ## FIPS 140-2 From c3ce17d09764799536d9ab8cdf33b13f2dd3efeb Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Wed, 17 Jan 2024 08:54:02 -0700 Subject: [PATCH 10/10] docs: feedback --- docs/docs-content/legal-licenses/compliance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs-content/legal-licenses/compliance.md b/docs/docs-content/legal-licenses/compliance.md index 76e810cc16..db38dbc682 100644 --- a/docs/docs-content/legal-licenses/compliance.md +++ b/docs/docs-content/legal-licenses/compliance.md @@ -11,12 +11,12 @@ tags: ["compliance", "soc2", "fips"] ## ISO 27001 -![](/legal-licenses_compliance_iso-27001.png "#width=300px") +![ISO 27001 logo](/legal-licenses_compliance_iso-27001.png "#width=300px") The International Organization for Standardization 27001 Standard (ISO 27001) is one of the leading international standards focused on information security. Spectro Cloud has obtained the ISO 27001 Certification and undergoes periodic audits to maintain this certification. ISO 27001 Certification provides assurances that Spectro Cloud is identifying and managing risks effectively, consistently, and measurably. -Below are some reasons why a ISO 27001 Certification is important: +Below are some reasons why an ISO 27001 Certification is important: - Customer trust and confidence: Clients and partners often look for assurances that their sensitive information is handled securely. Achieving ISO 27001 certification can enhance customer trust and confidence, potentially leading to increased business opportunities. @@ -45,7 +45,7 @@ The American Institute of Certified Public Accountants (AICPA) Service Organizat ![FIPS-Compliance](/docs_compliance_compliance_fips-logo.png "#width=180px") -Spectro Cloud is certified against FIPS 140-2 with [Certificate number 4349](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4349) in compliance with the Cryptographic Module Validation Program (CMVP). +Spectro Cloud is validated against FIPS 140-2 with [Certificate number 4349](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4349) in compliance with the Cryptographic Module Validation Program (CMVP). Our Spectro Cloud Cryptographic Module is a general-purpose cryptographic library. The FIPS-enforced Palette VerteX edition incorporates the module in the Kubernetes Management Platform and the infrastructure components of target clusters to protect the sensitive information of regulated industries. Palette VerteX supports FIPS at the tenant level. For more information about the FIPS-enforced Palette edition, check out [Palette VerteX](vertex/vertex.md).