diff --git a/pages/index-translations.de.yaml b/pages/index-translations.de.yaml index 9b1373e430e..492ecf9117a 100644 --- a/pages/index-translations.de.yaml +++ b/pages/index-translations.de.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Konfiguration public-cloud-network-technical-resources: Technische Ressourcen public-cloud-network-tutorials: Tutorials public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Erste Schritte web-cloud-clouddb-configuration: Konfiguration diff --git a/pages/index-translations.es.yaml b/pages/index-translations.es.yaml index c340faa7515..fa263c773d4 100755 --- a/pages/index-translations.es.yaml +++ b/pages/index-translations.es.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Configuración public-cloud-network-technical-resources: Recursos Técnicos public-cloud-network-tutorials: Tutoriales public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Primeros pasos web-cloud-clouddb-configuration: Configuración diff --git a/pages/index-translations.fq.yaml b/pages/index-translations.fq.yaml index bb2db84175f..c6c9127345b 100755 --- a/pages/index-translations.fq.yaml +++ b/pages/index-translations.fq.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Configuration public-cloud-network-technical-resources: Ressources techniques public-cloud-network-tutorials: Tutoriels public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Premiers pas web-cloud-clouddb-configuration: Configuration diff --git a/pages/index-translations.fr.yaml b/pages/index-translations.fr.yaml index 3a6eea22816..2ddb9649959 100755 --- a/pages/index-translations.fr.yaml +++ b/pages/index-translations.fr.yaml @@ -185,6 +185,78 @@ public-cloud-network-configuration: Configuration public-cloud-network-technical-resources: Ressources techniques public-cloud-network-tutorials: Tutoriels public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Premiers pas web-cloud-clouddb-configuration: Configuration diff --git a/pages/index-translations.it.yaml b/pages/index-translations.it.yaml index 14ceb48f45a..cd6a5110eae 100644 --- a/pages/index-translations.it.yaml +++ b/pages/index-translations.it.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Configurazione public-cloud-network-technical-resources: Risorse tecniche public-cloud-network-tutorials: Tutorial public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Per iniziare web-cloud-clouddb-configuration: Configurazione diff --git a/pages/index-translations.pl.yaml b/pages/index-translations.pl.yaml index c5a13e97f6a..0c9b17f94b4 100755 --- a/pages/index-translations.pl.yaml +++ b/pages/index-translations.pl.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Konfiguracja public-cloud-network-technical-resources: Zasoby techniczne public-cloud-network-tutorials: Tutoriale public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Pierwsze kroki web-cloud-clouddb-configuration: Konfiguracja diff --git a/pages/index-translations.pt.yaml b/pages/index-translations.pt.yaml index 6adef81db42..2c3fd0ec924 100755 --- a/pages/index-translations.pt.yaml +++ b/pages/index-translations.pt.yaml @@ -184,6 +184,78 @@ public-cloud-network-configuration: Configuração public-cloud-network-technical-resources: Recursos Técnicos public-cloud-network-tutorials: Tutoriais public-cloud-data-platform: Data Platform +public-cloud-data-platform-getting-started: Getting Started +public-cloud-data-platform-getting-started-app-init: Build your first app from scratch +public-cloud-data-platform-tutorials: Tutorials +public-cloud-data-platform-tutorials-app-dev: Develop your own app +public-cloud-data-platform-tutorials-segmentation: Apply segmentation to your jobs +public-cloud-data-platform-product: Platform Documentation +public-cloud-data-platform-product-navigation: Homepage and Navigation +public-cloud-data-platform-product-organisation: Organizations and user profiles +public-cloud-data-platform-product-project: Projects +public-cloud-data-platform-product-data-catalog: Data Catalog +public-cloud-data-platform-product-data-catalog-sources: Sources +public-cloud-data-platform-product-data-catalog-sources-connectors: Configure your connector +public-cloud-data-platform-product-data-catalog-analyzer: Analyzer +public-cloud-data-platform-product-lakehouse-manager: Lakehouse Manager +public-cloud-data-platform-product-lakehouse-manager-tables: Tables +public-cloud-data-platform-product-dpe: Data Processing Engine +public-cloud-data-platform-product-dpe-actions: Actions +public-cloud-data-platform-product-dpe-actions-load: Load +public-cloud-data-platform-product-dpe-actions-aggregate: Aggregate +public-cloud-data-platform-product-dpe-actions-custom: Custom +public-cloud-data-platform-product-dpe-actions-flush-update-metas: Flush & Update Metadata +public-cloud-data-platform-product-dpe-workflows: Workflows +public-cloud-data-platform-product-dpe-jobs: Jobs +public-cloud-data-platform-product-dpe-jobs-execution-preferences: Execution Preferences +public-cloud-data-platform-product-analytics-manager: Analytics Manager +public-cloud-data-platform-product-analytics-manager-queries: Queries +public-cloud-data-platform-product-analytics-manager-dashboards: Dashboards +public-cloud-data-platform-product-analytics-manager-consumers: Consumers +public-cloud-data-platform-product-machine-learning-manager: Machine Learning Manager +public-cloud-data-platform-product-machine-learning-manager-notebooks: Notebooks +public-cloud-data-platform-product-machine-learning-manager-pipelines: Pipelines +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration: Configure a pipeline +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset: Data preparation +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training: Training procedure +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator: Custom Estimator +public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation: Model selection +public-cloud-data-platform-product-machine-learning-manager-pipelines-execution: Execute a pipeline +public-cloud-data-platform-product-machine-learning-models: Models +public-cloud-data-platform-product-api-manager: API Manager +public-cloud-data-platform-product-app-manager: APP Manager +public-cloud-data-platform-product-app-manager-dashboard: Dashboard +public-cloud-data-platform-product-app-manager-extensions: Extensions +public-cloud-data-platform-product-app-manager-settings: Settings +public-cloud-data-platform-product-control-center: Control Center +public-cloud-data-platform-product-control-center-alerting: Alerting +public-cloud-data-platform-product-iam: Identity Access Manager +public-cloud-data-platform-product-iam-organisation: Organization IAM +public-cloud-data-platform-product-iam-project: Project IAM +public-cloud-data-platform-product-iam-project-applications: Applications +public-cloud-data-platform-product-iam-project-auth-providers: Auth. Providers +public-cloud-data-platform-product-iam-users: Users, Roles & Groups +public-cloud-data-platform-developer: Developer Documentation +public-cloud-data-platform-developer-api-reference: ForePaaS APIs (Legacy) +public-cloud-data-platform-developer-api-reference-query-builder: Query Builder +public-cloud-data-platform-developer-api-reference-query-builder-json-format: JSON query format +public-cloud-data-platform-developer-dataplatform-api: Data Platform APIs +public-cloud-data-platform-developer-sdk: Software Development Kits (SDK) +public-cloud-data-platform-developer-sdk-custom-actions: Custom Actions +public-cloud-data-platform-developer-sdk-custom-actions-connectors: Connectors +public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support: PySpark support +public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases: Simple use cases +public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases: Advanced Use Cases +public-cloud-data-platform-developer-sdk-front-app: Front App +public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters: Dynamic Parameters +public-cloud-data-platform-developer-sdk-front-app-charts: Charts +public-cloud-data-platform-developer-sdk-front-app-default-components: Default Components +public-cloud-data-platform-developer-sdk-front-app-default-components-containers: Containers +public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui: Basic UI +public-cloud-data-platform-developer-sdk-front-app-custom-components: Custom Components +public-cloud-data-platform-developer-sdk-front-api: Front API +public-cloud-data-platform-developer-sdk-front-api-queries: Handle queries +public_cloud-data_platform-support: Support web-cloud-clouddb: Web Cloud Databases web-cloud-clouddb-getting-started: Primeiros passos web-cloud-clouddb-configuration: Configuração diff --git a/pages/index.md b/pages/index.md index 1807b1be89f..eea9df02869 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1121,10 +1121,352 @@ + [Prefect - Guide - Getting Started](public_cloud/integrations/prefect_guide_01_getting_started) + [Prefect - Tutorial - Emails notification with blocks and automations](public_cloud/integrations/prefect_tuto_02_block_automation) + [Prefect - Tutorial - AI pipeline with training job](public_cloud/integrations/prefect_tuto_03_ai_pipeline) - + [Data Platform](products/public-cloud-data-platform) + + [Data Platform](landing/public-cloud-data-platform) + + [Data Platform](public_cloud/data_platform/00-general-what_is_the_data_platform-index) + [Data Platform 10 min video demo](public_cloud/data_platform/general-data-platform-video-demo) - + [Data Platform documentation](public_cloud/data_platform/general-what_is_the_data_platform) + [Sign-up to Data Platform](public_cloud/data_platform/general-signin_signup) + + [Getting Started](landing/public-cloud-data-platform-getting-started) + + [Getting Started](public_cloud/data_platform/getting-started/00-getting-started-index) + + [Build your first app from scratch](landing/public-cloud-data-platform-getting-started-app-init) + + [Build your first app from scratch](public_cloud/data_platform/getting-started/app-init/00-app-init-index) + + [1. Connect sources](public_cloud/data_platform/getting-started/app-init/dc) + + [2. Organize data](public_cloud/data_platform/getting-started/app-init/lhm) + + [3. Prepare data](public_cloud/data_platform/getting-started/app-init/dpe) + + [4. Create queries](public_cloud/data_platform/getting-started/app-init/query-builder) + + [5. Expose through API](public_cloud/data_platform/getting-started/app-init/api-manager) + + [6. Visualize data](public_cloud/data_platform/getting-started/app-init/app-manager) + + [Customize your first app further](public_cloud/data_platform/getting-started/customize-first-app-further) + + [Tutorials](landing/public-cloud-data-platform-tutorials) + + [Tutorials](public_cloud/data_platform/getting-further/00-getting-further-index) + + [Your project checklist](public_cloud/data_platform/getting-further/project-toolkit) + + [Develop your own app](landing/public-cloud-data-platform-tutorials-app-dev) + + [Develop your own app](public_cloud/data_platform/getting-further/app-dev/00-app-dev-index) + + [1. Build with an external repo](public_cloud/data_platform/getting-further/app-dev/build) + + [2. Discover the config files](public_cloud/data_platform/getting-further/app-dev/configuration) + + [3. Create and edit components](public_cloud/data_platform/getting-further/app-dev/component) + + [4. Add custom components](public_cloud/data_platform/getting-further/app-dev/extension) + + [Apply segmentation to your jobs](landing/public-cloud-data-platform-tutorials-segmentation) + + [Apply segmentation to your jobs](public_cloud/data_platform/getting-further/segmentation/00-segmentation-index) + + [Project table attribute](public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + + [Workflow dates perimeter](public_cloud/data_platform/getting-further/segmentation/workflow-dates) + + [Predefined values](public_cloud/data_platform/getting-further/segmentation/predefined-set) + + [Source rows chunks](public_cloud/data_platform/getting-further/segmentation/chunk-source) + + [Set of files](public_cloud/data_platform/getting-further/segmentation/files) + + [Source accounts](public_cloud/data_platform/getting-further/segmentation/source-accounts) + + [Set role conditions on one bucket](public_cloud/data_platform/getting-further/iam-conditions) + + [Stream data from Apache Kafka](public_cloud/data_platform/getting-further/kafka) + + [Learn versioning basics](public_cloud/data_platform/getting-further/versioning) + + [Export / import a configuration](public_cloud/data_platform/getting-further/export-import-project-config) + + [Extract project data with Trino](public_cloud/data_platform/getting-further/trino-connector) + + [Custom event handling action](public_cloud/data_platform/getting-further/event-handling-custom-action) + + [Export folders with a custom date](public_cloud/data_platform/getting-further/date-in-folder-name) + + [Data models with external datasets](public_cloud/data_platform/getting-further/data-models-with-external) + + [Generate API keys for external acess](public_cloud/data_platform/getting-further/generate-api-key) + + [Create a custom ML pipeline](public_cloud/data_platform/getting-further/ml-customer-sklearn) + + [Platform Documentation](landing/public-cloud-data-platform-product) + + [Platform Documentation](public_cloud/data_platform/product/00-product-index) + + [Homepage and Navigation](landing/public-cloud-data-platform-product-navigation) + + [Homepage and Navigation](public_cloud/data_platform/product/navigation/00-navigation-index) + + [Homepage](public_cloud/data_platform/product/navigation/homepage) + + [Header](public_cloud/data_platform/product/navigation/header) + + [Sidebar](public_cloud/data_platform/product/navigation/sidebar) + + [Organizations and user profiles](landing/public-cloud-data-platform-product-organisation) + + [Organizations and user profiles](public_cloud/data_platform/product/organisations/00-organisations-index) + + [Organization settings](public_cloud/data_platform/product/organisations/orga_settings) + + [Delete an organization](public_cloud/data_platform/product/organisations/delete-orga) + + [Create a Data Platform account](public_cloud/data_platform/product/organisations/create-account) + + [Edit your Data Platform profile](public_cloud/data_platform/product/organisations/profile) + + [MFA setup guide](public_cloud/data_platform/product/organisations/mfa-setup) + + [Projects](landing/public-cloud-data-platform-product-project) + + [Projects](public_cloud/data_platform/product/project/00-project-index) + + [Project Home](public_cloud/data_platform/product/project/project_home) + + [Create a Project](public_cloud/data_platform/product/project/project_creation) + + [Delete a Project](public_cloud/data_platform/product/project/delete_project) + + [Config Variables](public_cloud/data_platform/product/project/config-ids) + + [Data Catalog](landing/public-cloud-data-platform-product-data-catalog) + + [Data Catalog](public_cloud/data_platform/product/data-catalog/00-data-catalog-index) + + [Discover key concepts](public_cloud/data_platform/product/data-catalog/understanding-data-catalog-further) + + [Sources](landing/public-cloud-data-platform-product-data-catalog-sources) + + [Sources](public_cloud/data_platform/product/data-catalog/sources/00-sources-index) + + [Configure your connector](landing/public-cloud-data-platform-product-data-catalog-sources-connectors) + + [Configure your connector](public_cloud/data_platform/product/data-catalog/sources/connectors/00-connectors-index) + + [Apache Kafka](public_cloud/data_platform/product/data-catalog/sources/connectors/kafka) + + [Dropbox](public_cloud/data_platform/product/data-catalog/sources/connectors/dropbox) + + [Facebook](public_cloud/data_platform/product/data-catalog/sources/connectors/facebook) + + [File Upload](public_cloud/data_platform/product/data-catalog/sources/connectors/upload-files) + + [Data Platform Buckets](public_cloud/data_platform/product/data-catalog/sources/connectors/forepaas-buckets) + + [FTP](public_cloud/data_platform/product/data-catalog/sources/connectors/ftp) + + [Google Analytics](public_cloud/data_platform/product/data-catalog/sources/connectors/google-analytics) + + [HTTP Files](public_cloud/data_platform/product/data-catalog/sources/connectors/http) + + [HTTP REST](public_cloud/data_platform/product/data-catalog/sources/connectors/rest) + + [Microsoft Azure Blob Storage](public_cloud/data_platform/product/data-catalog/sources/connectors/blob-storage) + + [MySQL](public_cloud/data_platform/product/data-catalog/sources/connectors/mysql) + + [SFTP](public_cloud/data_platform/product/data-catalog/sources/connectors/sftp) + + [SQL Server](public_cloud/data_platform/product/data-catalog/sources/connectors/sql-server) + + [Trino](public_cloud/data_platform/product/data-catalog/sources/connectors/trino) + + [Twitter](public_cloud/data_platform/product/data-catalog/sources/connectors/twitter) + + [Analyzer](landing/public-cloud-data-platform-product-data-catalog-analyzer) + + [Analyzer](public_cloud/data_platform/product/data-catalog/analyzer/00-analyzer-index) + + [Extract the metadata](public_cloud/data_platform/product/data-catalog/analyzer/extract-metadata) + + [Add blueprint rules](public_cloud/data_platform/product/data-catalog/analyzer/add-blueprint-rules) + + [Learn more about blueprint rules](public_cloud/data_platform/product/data-catalog/analyzer/more-about-blueprints) + + [Lakehouse Manager](landing/public-cloud-data-platform-product-lakehouse-manager) + + [Lakehouse Manager](public_cloud/data_platform/product/lakehouse-manager/00-lakehouse-manager-index) + + [Discover key concepts](public_cloud/data_platform/product/lakehouse-manager/understanding-lakehouse-manager-further) + + [Datasets](public_cloud/data_platform/product/lakehouse-manager/datasets) + + [Tables](landing/public-cloud-data-platform-product-lakehouse-manager-tables) + + [Tables](public_cloud/data_platform/product/lakehouse-manager/tables/00-tables-index) + + [Manage a table](public_cloud/data_platform/product/lakehouse-manager/tables/table-interactions) + + [Attributes](public_cloud/data_platform/product/lakehouse-manager/attributes) + + [Buckets](public_cloud/data_platform/product/lakehouse-manager/buckets) + + [Explorer](public_cloud/data_platform/product/lakehouse-manager/explorer) + + [Policy Tags](public_cloud/data_platform/product/lakehouse-manager/policy-tags) + + [Data Processing Engine](landing/public-cloud-data-platform-product-dpe) + + [Data Processing Engine](public_cloud/data_platform/product/dpe/00-dpe-index) + + [Actions](landing/public-cloud-data-platform-product-dpe-actions) + + [Actions](public_cloud/data_platform/product/dpe/actions/00-actions-index) + + [Load](landing/public-cloud-data-platform-product-dpe-actions-load) + + [Load](public_cloud/data_platform/product/dpe/actions/load/00-load-index) + + [Advanced Mode](public_cloud/data_platform/product/dpe/actions/load/advanced-mode) + + [Load PySpark](public_cloud/data_platform/product/dpe/actions/load-pyspark) + + [Aggregate](landing/public-cloud-data-platform-product-dpe-actions-aggregate) + + [Aggregate](public_cloud/data_platform/product/dpe/actions/aggregate/00-aggregate-index) + + [Advanced Mode](public_cloud/data_platform/product/dpe/actions/aggregate/advanced-mode) + + [Aggregate PySpark](public_cloud/data_platform/product/dpe/actions/aggregate-pyspark) + + [Custom](landing/public-cloud-data-platform-product-dpe-actions-custom) + + [Custom](public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) + + [Default Packages](public_cloud/data_platform/product/dpe/actions/custom/default-packages) + + [Custom PySpark](public_cloud/data_platform/product/dpe/actions/custom-pyspark) + + [Load to Bucket](public_cloud/data_platform/product/dpe/actions/load-buckets) + + [PostgreSQL to Parquet](public_cloud/data_platform/product/dpe/actions/postgresql-to-parquet) + + [Predict](public_cloud/data_platform/product/dpe/actions/predict) + + [Diff](public_cloud/data_platform/product/dpe/actions/diff) + + [Delete](public_cloud/data_platform/product/dpe/actions/delete) + + [Delete_diff](public_cloud/data_platform/product/dpe/actions/delete_diff) + + [Flush & Update Metadata](landing/public-cloud-data-platform-product-dpe-actions-flush-update-metas) + + [Flush & Update Metadata](public_cloud/data_platform/product/dpe/actions/flush-update-metas/00-flush-update-metas-index) + + [Update Metadata](public_cloud/data_platform/product/dpe/actions/flush-update-metas/update-metas) + + [Flush Cache - Analytics Manager](public_cloud/data_platform/product/dpe/actions/flush-update-metas/flush-cache-qb) + + [Flush Cache - App Services](public_cloud/data_platform/product/dpe/actions/flush-update-metas/flush-cache-api) + + [Workflows](landing/public-cloud-data-platform-product-dpe-workflows) + + [Workflows](public_cloud/data_platform/product/dpe/workflows/00-workflows-index) + + [Configure a workflow](public_cloud/data_platform/product/dpe/workflows/configuration) + + [Advanced Mode](public_cloud/data_platform/product/dpe/workflows/advanced-mode) + + [Environments](public_cloud/data_platform/product/dpe/environments) + + [Jobs](landing/public-cloud-data-platform-product-dpe-jobs) + + [Jobs](public_cloud/data_platform/product/dpe/jobs/00-jobs-index) + + [Execution Preferences](landing/public-cloud-data-platform-product-dpe-jobs-execution-preferences) + + [Execution Preferences](public_cloud/data_platform/product/dpe/jobs/execution-preferences/00-execution-preferences-index) + + [Resources](public_cloud/data_platform/product/dpe/jobs/execution-preferences/resources) + + [Segmentation](public_cloud/data_platform/product/dpe/jobs/execution-preferences/segmentation) + + [Perimeter](public_cloud/data_platform/product/dpe/jobs/execution-preferences/perimeter) + + [Remarks](public_cloud/data_platform/product/dpe/jobs/execution-preferences/advanced) + + [Settings](public_cloud/data_platform/product/dpe/settings) + + [Analytics Manager](landing/public-cloud-data-platform-product-analytics-manager) + + [Analytics Manager](public_cloud/data_platform/product/am/00-analytics-manager-index) + + [Queries](landing/public-cloud-data-platform-product-analytics-manager-queries) + + [Queries](public_cloud/data_platform/product/am/queries/00-queries-index) + + [Use the visual builder](public_cloud/data_platform/product/am/queries/visual) + + [Use the SQL editor](public_cloud/data_platform/product/am/queries/sql) + + [Visualize a query as a chart](public_cloud/data_platform/product/am/queries/charts) + + [Dashboards](landing/public-cloud-data-platform-product-analytics-manager-dashboards) + + [Dashboards](public_cloud/data_platform/product/am/dashboards/00-dashboards-index) + + [Add content to a dashboard](public_cloud/data_platform/product/am/dashboards/edit) + + [Publish a dashboard](public_cloud/data_platform/product/am/dashboards/publish) + + [Consumers](landing/public-cloud-data-platform-product-analytics-manager-consumers) + + [Consumers](public_cloud/data_platform/product/am/consumers/00-consumers-index) + + [Plug PowerBI to your ForePaaS](public_cloud/data_platform/product/am/consumers/power-bi) + + [History](public_cloud/data_platform/product/am/history) + + [Resources](public_cloud/data_platform/product/am/resources) + + [Settings](public_cloud/data_platform/product/am/settings) + + [[V3.0] Changes & Updates](public_cloud/data_platform/product/am/v3-changes) + + [Machine Learning Manager](landing/public-cloud-data-platform-product-machine-learning-manager) + + [Machine Learning Manager](public_cloud/data_platform/product/ml/00-ml-index) + + [Notebooks](landing/public-cloud-data-platform-product-machine-learning-manager-notebooks) + + [Notebooks](public_cloud/data_platform/product/ml/notebooks/00-notebooks-index) + + [Create a notebook](public_cloud/data_platform/product/ml/notebooks/create) + + [Pipelines](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines) + + [Pipelines](public_cloud/data_platform/product/ml/pipelines/00-pipelines-index) + + [Configure a pipeline](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration) + + [Configure a pipeline](public_cloud/data_platform/product/ml/pipelines/configure/00-configure-index) + + [Data preparation](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-dataset) + + [Data preparation](public_cloud/data_platform/product/ml/pipelines/configure/dataset/00-dataset-index) + + [Dataset generation](public_cloud/data_platform/product/ml/pipelines/configure/dataset/input) + + [Feature engineering](public_cloud/data_platform/product/ml/pipelines/configure/dataset/features) + + [Training procedure](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training) + + [Training procedure](public_cloud/data_platform/product/ml/pipelines/configure/training/00-training-index) + + [Standard Estimator](public_cloud/data_platform/product/ml/pipelines/configure/training/standard-estimator) + + [Custom Estimator](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-training-custom-estimator) + + [Custom Estimator](public_cloud/data_platform/product/ml/pipelines/configure/training/custom-estimator/00-custom-estimator-index) + + [sklearn](public_cloud/data_platform/product/ml/pipelines/configure/training/custom-estimator/custom-scikit-learn) + + [keras](public_cloud/data_platform/product/ml/pipelines/configure/training/custom-estimator/custom-keras) + + [PyTorch](public_cloud/data_platform/product/ml/pipelines/configure/training/custom-estimator/custom-pytorch) + + [Libraries and dependencies](public_cloud/data_platform/product/ml/pipelines/configure/training/dependencies) + + [Scoring and validation](public_cloud/data_platform/product/ml/pipelines/configure/training/validation) + + [Hyper-parameter Tuning](public_cloud/data_platform/product/ml/pipelines/configure/tuning) + + [Model selection](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-configuration-validation) + + [Model selection](public_cloud/data_platform/product/ml/pipelines/configure/validation/00-validation-index) + + [Set up auto-deploy](public_cloud/data_platform/product/ml/pipelines/configure/validation/auto-deploy) + + [Deployment settings](public_cloud/data_platform/product/ml/pipelines/configure/deployment) + + [Execute a pipeline](landing/public-cloud-data-platform-product-machine-learning-manager-pipelines-execution) + + [Execute a pipeline](public_cloud/data_platform/product/ml/pipelines/execute/00-execute-index) + + [Preferences](public_cloud/data_platform/product/ml/pipelines/execute/preferences) + + [Scale pipelines](public_cloud/data_platform/product/ml/pipelines/execute/resources) + + [Triggers](public_cloud/data_platform/product/ml/pipelines/execute/triggers) + + [Models](landing/public-cloud-data-platform-product-machine-learning-models) + + [Models](public_cloud/data_platform/product/ml/models/00-models-index) + + [Import external model](public_cloud/data_platform/product/ml/models/import) + + [API Manager](landing/public-cloud-data-platform-product-api-manager) + + [API Manager](public_cloud/data_platform/product/api-manager/00-api-manager-index) + + [Create and deploy an API](public_cloud/data_platform/product/api-manager/deploy) + + [API manager interface](public_cloud/data_platform/product/api-manager/interface) + + [API extensions list](public_cloud/data_platform/product/api-manager/extensions-list) + + [APP Manager](landing/public-cloud-data-platform-product-app-manager) + + [APP Manager](public_cloud/data_platform/product/app-manager/00-app-manager-index) + + [Overview](public_cloud/data_platform/product/app-manager/overview) + + [Dashboard](landing/public-cloud-data-platform-product-app-manager-dashboard) + + [Dashboard](public_cloud/data_platform/product/app-manager/dashboard/00-dashboard-index) + + [Edit dashboards](public_cloud/data_platform/product/app-manager/dashboard/edit) + + [Style](public_cloud/data_platform/product/app-manager/style) + + [Extensions](landing/public-cloud-data-platform-product-app-manager-extensions) + + [Extensions](public_cloud/data_platform/product/app-manager/extensions/00-extensions-index) + + [Full list](public_cloud/data_platform/product/app-manager/extensions/list) + + [Menus](public_cloud/data_platform/product/app-manager/menu) + + [Translations](public_cloud/data_platform/product/app-manager/translation) + + [Formatter](public_cloud/data_platform/product/app-manager/formatter) + + [Settings](landing/public-cloud-data-platform-product-app-manager-settings) + + [Settings](public_cloud/data_platform/product/app-manager/settings/00-settings-index) + + [Git Integration](public_cloud/data_platform/product/app-manager/settings/git-integration) + + [Custom Domain](public_cloud/data_platform/product/app-manager/settings/custom-domain) + + [Storage Engines](public_cloud/data_platform/product/storage-engine) + + [Control Center](landing/public-cloud-data-platform-product-control-center) + + [Control Center](public_cloud/data_platform/product/cc/00-cc-index) + + [Monitoring](public_cloud/data_platform/product/cc/monitoring) + + [Alerting](landing/public-cloud-data-platform-product-control-center-alerting) + + [Alerting](public_cloud/data_platform/product/cc/alerting/00-alerting-index) + + [Configure job execution alerts](public_cloud/data_platform/product/cc/alerting/execution) + + [Configure health check alerts](public_cloud/data_platform/product/cc/alerting/health) + + [Send alerts to Slack](public_cloud/data_platform/product/cc/alerting/consumers/slack) + + [Send alerts to AWS SNS](public_cloud/data_platform/product/cc/alerting/consumers/sns) + + [Send alerts to Opsgenie](public_cloud/data_platform/product/cc/alerting/consumers/opsgenie) + + [Send alerts to a custom webhook](public_cloud/data_platform/product/cc/alerting/consumers/webhook) + + [Jobs Central](public_cloud/data_platform/product/cc/job-central) + + [Logs Explorer](public_cloud/data_platform/product/cc/logs) + + [Identity Access Manager](landing/public-cloud-data-platform-product-iam) + + [Identity Access Manager](public_cloud/data_platform/product/iam/00-iam-index) + + [Organization IAM](landing/public-cloud-data-platform-product-iam-organisation) + + [Organization IAM](public_cloud/data_platform/product/iam/orga-iam/00-orga-iam-index) + + [Authentication Methods](public_cloud/data_platform/product/iam/orga-iam/auth-methods) + + [Project IAM](landing/public-cloud-data-platform-product-iam-project) + + [Project IAM](public_cloud/data_platform/product/iam/project-iam/00-project-iam-index) + + [Applications](landing/public-cloud-data-platform-product-iam-project-applications) + + [Applications](public_cloud/data_platform/product/iam/project-iam/application/00-application-index) + + [Authentication page](public_cloud/data_platform/product/iam/project-iam/application/login) + + [Auth. Providers](landing/public-cloud-data-platform-product-iam-project-auth-providers) + + [Auth. Providers](public_cloud/data_platform/product/iam/project-iam/auth-provider/00-auth-provider-index) + + [Set up custom mappings](public_cloud/data_platform/product/iam/project-iam/auth-provider/custom-mapping) + + [Set up Azure AD](public_cloud/data_platform/product/iam/project-iam/auth-provider/azure_ad) + + [Set up Okta](public_cloud/data_platform/product/iam/project-iam/auth-provider/okta) + + [Set up Auth0](public_cloud/data_platform/product/iam/project-iam/auth-provider/auth0) + + [Users, Roles & Groups](landing/public-cloud-data-platform-product-iam-users) + + [Users, Roles & Groups](public_cloud/data_platform/product/iam/users/00-users-index) + + [Users](public_cloud/data_platform/product/iam/users/users) + + [Service Accounts](public_cloud/data_platform/product/iam/users/service-accounts) + + [Roles and conditions](public_cloud/data_platform/product/iam/users/roles) + + [Groups](public_cloud/data_platform/product/iam/users/groups) + + [Developer Documentation](landing/public-cloud-data-platform-developer) + + [Developer Documentation](public_cloud/data_platform/technical/00-technical-index) + + [ForePaaS APIs (Legacy)](landing/public-cloud-data-platform-developer-api-reference) + + [ForePaaS APIs (Legacy)](public_cloud/data_platform/technical/api-reference/00-api-reference-index) + + [Buckets](public_cloud/data_platform/technical/api-reference/datastore) + + [Query Builder](landing/public-cloud-data-platform-developer-api-reference-query-builder) + + [Query Builder](public_cloud/data_platform/technical/api-reference/qb/00-qb-index) + + [JSON query format](landing/public-cloud-data-platform-developer-api-reference-query-builder-json-format) + + [JSON query format](public_cloud/data_platform/technical/api-reference/qb/json-format/00-json-format-index) + + ['Data' query parameter](public_cloud/data_platform/technical/api-reference/qb/json-format/data-query) + + ['Scale' query parameter](public_cloud/data_platform/technical/api-reference/qb/json-format/scale) + + ['Filter' query parameter](public_cloud/data_platform/technical/api-reference/qb/json-format/filter) + + [Other query parameters](public_cloud/data_platform/technical/api-reference/qb/json-format/others) + + [Identity Access Manager](public_cloud/data_platform/technical/api-reference/iam) + + [ForePaaS Store](public_cloud/data_platform/technical/api-reference/store) + + [Data Platform APIs](landing/public-cloud-data-platform-developer-dataplatform-api) + + [Data Platform APIs](public_cloud/data_platform/technical/dataplatform-api/00-dataplatform-api-index) + + [Buckets](public_cloud/data_platform/technical/dataplatform-api/datastore) + + [Identity Access Manager](public_cloud/data_platform/technical/dataplatform-api/iam) + + [Software Development Kits (SDK)](landing/public-cloud-data-platform-developer-sdk) + + [Software Development Kits (SDK)](public_cloud/data_platform/technical/sdk/00-sdk-index) + + [Custom Actions](landing/public-cloud-data-platform-developer-sdk-custom-actions) + + [Custom Actions](public_cloud/data_platform/technical/sdk/dpe/00-dpe-index) + + [Connectors](landing/public-cloud-data-platform-developer-sdk-custom-actions-connectors) + + [Connectors](public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index) + + [DM Database Connector](public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm) + + [FP Buckets Connector](public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket) + + [PySpark support](landing/public-cloud-data-platform-developer-sdk-custom-actions-pyspark-support) + + [PySpark support](public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index) + + [Use cases](public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark) + + [Simple use cases](landing/public-cloud-data-platform-developer-sdk-custom-actions-simple-use-cases) + + [Simple use cases](public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index) + + [Data Manager tables](public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm) + + [ForePaaS Buckets](public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket) + + [Data Manager Source](public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source) + + [Advanced Use Cases](landing/public-cloud-data-platform-developer-sdk-custom-actions-advanced-use-cases) + + [Advanced Use Cases](public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index) + + [Use environment variables](public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter) + + [Use segmentation in a Custom action](public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation) + + [Override a Load action](public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override) + + [Use custom Python modules via Git](public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git) + + [Front App](landing/public-cloud-data-platform-developer-sdk-front-app) + + [Front App](public_cloud/data_platform/technical/sdk/app/00-app-index) + + [Dynamic Parameters](landing/public-cloud-data-platform-developer-sdk-front-app-dynamic-parameters) + + [Dynamic Parameters](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index) + + [Checkbox](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox) + + [Datepicker](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker) + + [Daypicker](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker) + + [Monthpicker](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker) + + [Monthspicker](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker) + + [Radio](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio) + + [Selectbox](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox) + + [Toggle](public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle) + + [Formatters](public_cloud/data_platform/technical/sdk/app/formatter) + + [Charts](landing/public-cloud-data-platform-developer-sdk-front-app-charts) + + [Charts](public_cloud/data_platform/technical/sdk/app/charts/00-charts-index) + + [Chart HTML](public_cloud/data_platform/technical/sdk/app/charts/chart-html) + + [Chart Table](public_cloud/data_platform/technical/sdk/app/charts/chart-table) + + [ReCharts](public_cloud/data_platform/technical/sdk/app/charts/chart-recharts) + + [JVectorMap](public_cloud/data_platform/technical/sdk/app/charts/jvectormap) + + [Templates](public_cloud/data_platform/technical/sdk/app/charts/template) + + [Templates extends](public_cloud/data_platform/technical/sdk/app/charts/template-extends) + + [Default Components](products/public-cloud-data-platform-developer-sdk-front-app-default-components) + + [Containers](public-cloud-data-platform-developer-sdk-front-app-default-components-containers) + + [Panel](public_cloud/data_platform/technical/sdk/app/container/panel) + + [Tabs](public_cloud/data_platform/technical/sdk/app/container/tabs) + + [Switch](public_cloud/data_platform/technical/sdk/app/container/switch) + + [Basic UI](public-cloud-data-platform-developer-sdk-front-app-default-components-basic-ui) + + [Button](public_cloud/data_platform/technical/sdk/app/basic-ui/button) + + [HTML](public_cloud/data_platform/technical/sdk/app/basic-ui/html) + + [Image](public_cloud/data_platform/technical/sdk/app/basic-ui/image) + + [Link](public_cloud/data_platform/technical/sdk/app/basic-ui/link) + + [Language selector](public_cloud/data_platform/technical/sdk/app/basic-ui/select-lang) + + [Username](public_cloud/data_platform/technical/sdk/app/basic-ui/username) + + [Custom Components](landing/public-cloud-data-platform-developer-sdk-front-app-custom-components) + + [Custom Components](public_cloud/data_platform/technical/sdk/app/custom-component/00-custom-component-index) + + [Custom Charts](public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart) + + [Custom Dynamic Parameter](public_cloud/data_platform/technical/sdk/app/custom-component/create) + + [Troubleshooting & FAQ](public_cloud/data_platform/technical/sdk/app/faq) + + [Front API](landing/public-cloud-data-platform-developer-sdk-front-api) + + [Front API](public_cloud/data_platform/technical/sdk/api/00-api-index) + + [Structure of an API](public_cloud/data_platform/technical/sdk/api/api-files) + + [Launch in a local environment](public_cloud/data_platform/technical/sdk/api/api-launch) + + [Manage modules](public_cloud/data_platform/technical/sdk/api/configure-module) + + [Handle queries](landing/public-cloud-data-platform-developer-sdk-front-api-queries) + + [Handle queries](public_cloud/data_platform/technical/sdk/api/queries/00-queries-index) + + [Query transformers](public_cloud/data_platform/technical/sdk/api/queries/qb-transformers) + + [Query endpoints](public_cloud/data_platform/technical/sdk/api/queries/qb-endpoint) + + [Query ACL](public_cloud/data_platform/technical/sdk/api/queries/qb-acl) + + [Create custom endpoints](public_cloud/data_platform/technical/sdk/api/custom-endpoints) + + [Expose a bucket file](public_cloud/data_platform/technical/sdk/api/download-file-datastore) + + [Support](landing/public_cloud-data_platform-support) + + [Support](public_cloud/data_platform/support) + Web Cloud + [Domains](products/web-cloud-domains) + [API](products/web-cloud-domains-api) diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.de-de.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.de-de.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.de-de.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.de-de.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.de-de.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.de-de.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-asia.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-asia.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-asia.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-asia.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-asia.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-asia.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-au.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-au.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-au.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-au.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-au.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-au.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ca.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ca.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ca.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ca.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ca.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ca.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-gb.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-gb.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-gb.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-gb.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-gb.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-gb.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ie.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ie.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ie.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ie.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-ie.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-ie.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-sg.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-sg.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-sg.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-sg.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-sg.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-sg.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-us.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-us.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-us.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-us.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.en-us.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.en-us.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-es.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-es.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-es.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-es.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-es.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-es.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-us.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-us.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-us.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-us.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.es-us.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.es-us.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-ca.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-ca.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-ca.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-ca.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-ca.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-ca.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-fr.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-fr.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-fr.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-fr.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.fr-fr.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.fr-fr.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.it-it.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.it-it.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.it-it.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.it-it.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.it-it.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.it-it.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pl-pl.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pl-pl.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pl-pl.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pl-pl.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pl-pl.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pl-pl.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pt-pt.md b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pt-pt.md similarity index 95% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pt-pt.md rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pt-pt.md index 2ffb909f287..3fed6abd014 100644 --- a/pages/public_cloud/data_platform/general-what_is_the_data_platform/guide.pt-pt.md +++ b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/guide.pt-pt.md @@ -105,7 +105,7 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ## Welcome to the Data Platform documentation portal ! @@ -149,7 +149,7 @@ We’re excited to have you on board ! There are four sections in this documenta

GETTING STARTED

You’d like to get up and running as quickly as possible? No problem, we’ve got you covered! Check out this awesome Getting Started tutorial, which will help you build a Project using sample datasets.

- +
@@ -158,7 +158,7 @@ We’re excited to have you on board ! There are four sections in this documenta

TUTORIALS

You can't get enough of the Getting Started guides and want to see hands-on tutorials for more advanced use cases? Check out our Getting Further guide series!

- +
@@ -167,7 +167,7 @@ We’re excited to have you on board ! There are four sections in this documenta

PLATFORM DOCUMENTATION

Starting out with the Platform? Still unsure of what's called what and figuring out how every feature works? This if for you.

- +
@@ -176,5 +176,5 @@ We’re excited to have you on board ! There are four sections in this documenta

DEVELOPER DOCUMENTATION

You're an advanced user and are exploring what's under the hood, check out our component's API Reference and SDK functions.

- + diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/changelog.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/changelog.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/changelog.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/changelog.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/philosophy.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/philosophy.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/philosophy.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/philosophy.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict1.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict1.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict1.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict1.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict2.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict2.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict2.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict2.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict3.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict3.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict3.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict3.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict4.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict4.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/pict4.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/pict4.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/roadmap.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/roadmap.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/roadmap.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/roadmap.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/schema_data_platform.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/schema_data_platform.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/schema_data_platform.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/schema_data_platform.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/images/status.png b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/status.png similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/images/status.png rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/images/status.png diff --git a/pages/public_cloud/data_platform/general-what_is_the_data_platform/meta.yaml b/pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/meta.yaml similarity index 100% rename from pages/public_cloud/data_platform/general-what_is_the_data_platform/meta.yaml rename to pages/public_cloud/data_platform/00-general-what_is_the_data_platform-index/meta.yaml diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.de-de.md b/pages/public_cloud/data_platform/general-signin_signup/guide.de-de.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.de-de.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.de-de.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-asia.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-asia.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-asia.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-asia.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-au.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-au.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-au.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-au.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-ca.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-ca.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-ca.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-ca.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-gb.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-gb.md index 19d824ac407..e45d452acf6 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-gb.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-gb.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-ie.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-ie.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-ie.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-ie.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-sg.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-sg.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-sg.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-sg.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.en-us.md b/pages/public_cloud/data_platform/general-signin_signup/guide.en-us.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.en-us.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.en-us.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.es-es.md b/pages/public_cloud/data_platform/general-signin_signup/guide.es-es.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.es-es.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.es-es.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.es-us.md b/pages/public_cloud/data_platform/general-signin_signup/guide.es-us.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.es-us.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.es-us.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.fr-ca.md b/pages/public_cloud/data_platform/general-signin_signup/guide.fr-ca.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.fr-ca.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.fr-ca.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.fr-fr.md b/pages/public_cloud/data_platform/general-signin_signup/guide.fr-fr.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.fr-fr.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.fr-fr.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.it-it.md b/pages/public_cloud/data_platform/general-signin_signup/guide.it-it.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.it-it.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.it-it.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.pl-pl.md b/pages/public_cloud/data_platform/general-signin_signup/guide.pl-pl.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.pl-pl.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.pl-pl.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/general-signin_signup/guide.pt-pt.md b/pages/public_cloud/data_platform/general-signin_signup/guide.pt-pt.md index 819797de5b9..b77cb428e07 100644 --- a/pages/public_cloud/data_platform/general-signin_signup/guide.pt-pt.md +++ b/pages/public_cloud/data_platform/general-signin_signup/guide.pt-pt.md @@ -8,21 +8,21 @@ updated: 2024-07-09 > [!warning] > -> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](https://docs.forepaas.io/#/en/support/index) section. +> Data Platform is currently only deployed as a beta version. If you experience any difficulties and/or would like to discuss your experience with other users, you can ask for support by reaching out to us on the Data Platform Channel within the [Discord Server](https://discord.gg/ovhcloud). You can also find a step by step guide towards joining our Discord server in the [support](/pages/public_cloud/data_platform/support) section. > ### Signin Click [here](https://eu.dataplatform.ovh.net/) to access the Data Platform. -![Data PLatform Connect](images/data_platform_connect.png) +![Data PLatform Connect](images/data_platform_connect.png){.thumbnail} If you are accessing the Data Platform for the first time, you need: - either to sign up with an existing or new OVHcloud account. - or to sign up wth a local Data Platform account, only if you have received an invitation to join an existing Data Platform Organization by an admin from your company beforehand. -![OVHcloud Connect](images/ovhcloud-connect.png) +![OVHcloud Connect](images/ovhcloud-connect.png){.thumbnail} > [!primary] > @@ -31,7 +31,7 @@ If you are accessing the Data Platform for the first time, you need: - If you are a regular user, fill the Login/Password form [here](https://hq-fp.dataintegration.ovh.net): -![invite connection](images/invite.png) +![invite connection](images/invite.png){.thumbnail} > [!primary] > diff --git a/pages/public_cloud/data_platform/getting-further/00-getting-further-index/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/guide.en-ie.md new file mode 100644 index 00000000000..00283bff280 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/guide.en-ie.md @@ -0,0 +1,120 @@ +--- +title: "Getting further: tutorials and how tos" +updated: 2025-02-15 +--- + +## Objective + +> [!primary] +> **Please note:** Some of the advanced tutorials are using the [Machine Learning Manager](/pages/public_cloud/data_platform/product/ml/00-ml-index) service that is only available on the *Legacy ForePaaS Platform*. This service is not available on OVHcloud Data Platform. + +Hello again! We are so excited to see you want to step up your Project development. + +The **Getting Further** guide series will enable you to discover the most advanced features and harness the full potential of the Platform. + +Depending on the kind of person that you are, you might be interested in different features. While the [Getting Started](/pages/public_cloud/data_platform/getting-started/00-getting-started-index) guide only covers a fraction of the Platforms' possibilities, there is so much more you can achieve with our platform. + +| | Who are you? | You might want to | +| :--: | ------------ | -------------------| +|![Exemple Panel](images/woman-green_1x-cropped.png){.thumbnail} | You are a **Project manager** | Kick-start your project using our [project toolkit](/pages/public_cloud/data_platform/getting-further/project-toolkit). | +|![Exemple Panel](images/man-red_1x-cropped.png){.thumbnail} | You are a **front-end developer** | [Customize](/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index) your applications further. | +|![Exemple Panel](images/woman-yellow_1x-cropped.png){.thumbnail} | You are a **data engineer** | Push your data pipelines to the limit using [the segmentation feature](/pages/public_cloud/data_platform/getting-further/segmentation/00-segmentation-index). | + +> [!primary] +> **Still undecided?** +> If you simply want to explore all of the Platform's cutting-edge features, we suggest you just go through our Getting Further guide step by step! + +## Getting further tutorials + +The purpose of the **Getting Further** series of tutorials is to show you advanced examples and use cases about different aspects of the platform. Code snippets and boilerplates are provided throughout the tutorials to make it easy and straightforward for you. Nonetheless, we recommend that you spend time exploring the platform's options by yourself. Remember that you can refer to the [Product Guide](/pages/public_cloud/data_platform/product/00-product-index) for an exhaustive description of each component of the platform at any time. + +At this point, you should have set up an entire system that streamlines Chicago transit data from its sourcing to its visualization. If you haven't, we suggest you go through our [Getting Started](/pages/public_cloud/data_platform/getting-started/00-getting-started-index) guide and set up your first application. This app will be the cornerstone for the more advanced examples we are about to guide you through. + +If you are ready to step up, **check out the available guides below!** + +### Code your own analytics application + +*Estimated duration: 2-4 hours* + +In this advanced step-by-step guide, learn how to create your own components and set up the charts, extensions and much more, so they best fit your application. + +[Develop your own app](/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index) + +### Optimize computing power with segmentation! + +*Estimated duration: 1-4 hours* + +In this short guide, let us walk you through the job segmentation feature so you can execute your Data Processing Engine jobs in a fraction of the time. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### How to set a role condition on a specific bucket! + +*Estimated duration: 1-4 hours* + +In this short guide, we go through how to give users in your Project restricted access to only the Lakehouse Manager bucket called my_bucket. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Stream data from Apache Kafka! + +*Estimated duration: 1-4 hours* + +In this short guide, let us walk you through the demonstrates on how to use the data from an Apache Kafka Broker in the platform. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Learn versioning and repositories basics! + +*Estimated duration: 1-4 hours* + +In this short guide, let us demonstrate to you how to use the Platform's native versioning system or how to setup a Git repository to track the changes in your Data Processing Actions. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Export or import a Project's configuration! + +*Estimated duration: 1-4 hours* + +Let's take a look at how it is possible to export and/or import your Projects' configurations for each component. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Extract project data with Trino! + +*Estimated duration: 1-4 hours* + +In this short guide, we will walkthrough how to use the Trino Connector to extract data from one project into another on the Platform. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Creating Event Handling Actions! + +*Estimated duration: 1-4 hours* + +In this guide we will go through the steps required to create an action that allows you to handle events. This can be applied to trigger actions or workflows defined in your Data Processing Engine with a body of data outside of the platform. + +[Accelerate your pipelines with segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes) + +### Create a customized machine learning pipeline + +> [!primary] +> **Please note:** This tutorial is based on the [Machine Learning Manager](/pages/public_cloud/data_platform/product/ml/00-ml-index) service that is only available on the *Legacy ForePaaS Platform*. + +*Estimated duration: 30 mins* + +In this hands-on example, learn how to make the most of the Machine Learning Manager to train your custom Scikit Learn Python script and take AI to the industrial level. + +[Create a pipeline using a custom Scikit Learn script](/pages/public_cloud/data_platform/getting-further/ml-customer-sklearn) + +It's time to head to the Project checklist and best practices. + +[Project checklist and best practices](/pages/public_cloud/data_platform/getting-further/project-toolkit) + +## Your feedback is gold! + +We are really excited that you are getting your hands on the platform. Our support & product teams are truly dedicated to making your experience as smooth as possible. For that to happen **don't hesitate to reach out directly** and **don't hold back for sharing feedback** even without filters. We'd rather know what works and what doesn't, it's all about the learning experience! + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/man-red_1x-cropped.png b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/man-red_1x-cropped.png new file mode 100644 index 00000000000..10374639387 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/man-red_1x-cropped.png differ diff --git a/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-green_1x-cropped.png b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-green_1x-cropped.png new file mode 100644 index 00000000000..dddc0b5128d Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-green_1x-cropped.png differ diff --git a/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-yellow_1x-cropped.png b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-yellow_1x-cropped.png new file mode 100644 index 00000000000..494f668fd1c Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/images/woman-yellow_1x-cropped.png differ diff --git a/pages/public_cloud/data_platform/getting-further/00-getting-further-index/meta.yaml b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/meta.yaml new file mode 100644 index 00000000000..e694578fe96 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/00-getting-further-index/meta.yaml @@ -0,0 +1,2 @@ +id: d803781f-0d65-40af-af11-6327ba58d5f2 +full_slug: public-cloud-data-platform-getting-further-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/guide.en-ie.md new file mode 100644 index 00000000000..d839780b2ef --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/guide.en-ie.md @@ -0,0 +1,68 @@ +--- +title: "Develop your own application" +updated: 2025-02-15 +--- + +## Objective + +In this advanced step-by-step guide, you will learn how to make your own custom application components, whether charts and dynamic filters, customize them, embed them in the platform and much more. + +Here, you will continue the development of the application you created in the [first part of the Getting Started Guide](/pages/public_cloud/data_platform/getting-started/app-init/00-app-init-index). + +The goal? Provide you with all the tools to create custom code based off the API references & boilerplates provided. + +> [!warning] +> This is an advanced guide aimed at developers, front-end engineers, or application architects. We recommend being familiar with basic front-end development concepts. + +Below is a **quick preview of what we will be able to achieve by the end of this guide**. As you can see you'll add a custom map component, more complex filter options & cleaner styling for all other charts. + +![alt text](images/gs-advanced-layout.png){.thumbnail} + +## Let's get rolling! + +Here are the steps that you'll need to follow: + +
+
1
+ + Connect +
+

Build

+

How to build, deploy & manage versions using external code

+
+
+
+
+
2
+ + Transfer +
+

Configure

+

Understand app architecture and configuration files

+
+
+
+
+
3
+ + Query +
+

Customize

+

Create, edit and customize charts styles using existing components

+
+
+
+
+
4
+ + Expose +
+

Extend

+

Add custom components (or extensions) as dynamic parameters and charts

+
+
+
+ +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/connect.png b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/connect.png new file mode 100644 index 00000000000..29bac3098f4 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/connect.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/expose.png b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/expose.png new file mode 100644 index 00000000000..52924ea5366 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/expose.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/gs-advanced-layout.png b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/gs-advanced-layout.png new file mode 100644 index 00000000000..195b6322f61 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/gs-advanced-layout.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/query.png b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/query.png new file mode 100644 index 00000000000..37d1c3758d0 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/query.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/transfer.png b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/transfer.png new file mode 100644 index 00000000000..ec99014374d Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/images/transfer.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/meta.yaml b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/meta.yaml new file mode 100644 index 00000000000..9f41c370a8b --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/00-app-dev-index/meta.yaml @@ -0,0 +1,2 @@ +id: dc83ce4e-148e-413e-b949-228239e5f5ab +full_slug: public-cloud-data-platform-getting-further-app-dev-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/build/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/app-dev/build/guide.en-ie.md new file mode 100644 index 00000000000..2388aeb21c1 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/build/guide.en-ie.md @@ -0,0 +1,89 @@ +--- +title: "Build your app with an external repository" +updated: 2025-02-15 +--- + +## Objective + +Here, you will learn how to set-up a React application and run it locally. + +By the end of this guide, you will be able to edit a Data Platform application by running it **locally**, **connecting** it to the Platform' ecosystem and **deploying** it with a git repository. + +## Prerequisites + +There are a few things you need before starting : + +- Follow the [Analytics App Getting Started guide](/pages/public_cloud/data_platform/getting-started/app-init/00-app-init-index) up until [this](/pages/public_cloud/data_platform/getting-started/app-init/query-builder) point. This is where you expose your API. +- Install [git](https://git-scm.com/). +- Install [Node.js](https://nodejs.org/en/). +- Install [yarn](https://yarnpkg.com/) (recommended) or [npm](https://www.npmjs.com/). +- Install [npx](https://www.npmjs.com/package/npx). +- Have a **text editor**. You'll be writing HTML, CSS, and JavaScript. + +> [!primary] +> The point of communication between your **Data Platform Project** and your app, is the **Data Platform API** that you exposed in our API Manager component. That is why it is required to complete the [Getting Started guide](/pages/public_cloud/data_platform/getting-started/app-init/00-app-init-index) until the part where you expose your data and queries on the API. + +## Set-up an application & connect it to Data Platform + +### Create an app using an existing template + +Clone this [repository](https://github.com/forepaas/getting-started/) and open it: + +```bash +git clone https://github.com/forepaas/getting-started.git +cd getting-started/ +``` + +Switch to the branch release/basic + +```bash +git checkout release/basic +``` + +Install node modules : + +```bash +yarn +``` + +> [!warning] +> If you get an error concerning **certificates** when installing yarn, you should contact your IT department to solve the issue. + +Install npx (Skip this step if you have already installed it globaly): + +```bash +yarn global add npx +``` + +Install the Platform modules + +```bash +npm run fppm i +``` + +> [!warning] +> If you run into problems installing the modules, it may be due to your NodeJS configurations. Uninstall and reinstall NodeJS to fix the issue. +> +> If the issue persists, it could be due to NodeJS version compatibility. Install NodeJS v16.20.2 to fix the issue. + +Run your app : + +```bash +yarn start +``` + +> [!primary] +> Open [localhost:3333](localhost:3333) to check your app. If you see no error but a blank screen, don't worry! You still need to adjust the app configuration before seeing the panels. The blank screen means your app is up & running. + +### Connect a git repository to the platform (optional) + +To link a git repository to the platform, please follow this [guide](/pages/public_cloud/data_platform/product/app-manager/settings/git-integration) + +> [!primary] +> Now that you've learned how to create and launch your app, it's time to understand its architecture. + +[Understand app architecture and configuration files](/pages/public_cloud/data_platform/getting-further/app-dev/configuration) + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/build/meta.yaml b/pages/public_cloud/data_platform/getting-further/app-dev/build/meta.yaml new file mode 100644 index 00000000000..8f2976ad922 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/build/meta.yaml @@ -0,0 +1,2 @@ +id: 26b4af77-7458-4aad-be46-5293d57a3268 +full_slug: public-cloud-data-platform-getting-further-app-dev-build \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/component/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/app-dev/component/guide.en-ie.md new file mode 100644 index 00000000000..131a9df0004 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/component/guide.en-ie.md @@ -0,0 +1,197 @@ +--- +title: "Create and edit components" +updated: 2025-02-15 +--- + +## Objective + +In this tutorial, you will learn how to create and edit your first charts, and add them to your dashboards. + +* [Create and edit a chart component](/pages/public_cloud/data_platform/getting-further/app-dev/component#create-and-edit-a-chart-component) + * [Add a component](/pages/public_cloud/data_platform/getting-further/app-dev/component#add-a-component) + * [Edit a chart](/pages/public_cloud/data_platform/getting-further/app-dev/component#customize-a-chart) +* [Create and edit a dynamic parameter](/pages/public_cloud/data_platform/getting-further/app-dev/component#create-and-edit-a-dynamic-parameter) + +## Create and edit a chart component + +### Add a component + +You can easily add a new component to your Rides Analytics dashboard. +To do so, append this json object to the array *items* in `rides-analytics.json` + +```json +{ + "type":"panel", + "id":"rides-holidays-container", + "sizeX":37, + "sizeY":64, + "row":191, + "col":38, + "items":[ + { + "type":"chart", + "chart":{ + "id":"chart-6930201", + "component":"recharts.bar", + "request":{ + "data":{ + "fields":{ + "avg_rides_per_day_per_station":[ + "select" + ] + } + }, + "scale":{ + "fields":[ + "cat_holiday" + ] + } + }, + "options":{ + + } + }, + "sizeX":100, + "sizeY":54, + "row":6, + "col":0 + }, + { + "type":"html", + "content":"Rides variability on Holidays", + "customclass":"chart-title", + "sizeX":100, + "sizeY":5, + "row":0, + "col":0 + } + ] +} +``` + +This json defines a panel that contains 2 items, the **chart** itself and **its title**. + +A **chart** is a special item that needs a request to work. Once the chart component is loaded, the request is performed and the result is displayed differently according to the chart's type. +The request has the same format as the [Analytics Manager's queries](/pages/public_cloud/data_platform/product/am/queries/visual). You can also create your request in the Analytics Manager and put the request id instead of the request itself. In this case, you will have to replace `request` by `requestId` in the json above. + +The type of the chart is defined with the `component` key. There are many types of charts available natively in Data Platform, but you can also create your own components, we will show you how to achieve this in the next part of this guide. +In this example, we've defined a new bar chart using the [recharts](https://recharts.org/en-US/) library. The request computes the average number of rides per day for each holiday. + +Initially, your chart looks like this: + +![alt text](images/recharts-bar-example.png "Recharts Bar example"){.thumbnail} + +### Customize a chart + +Since this chart is made with the recharts library, there are many properties that you can change. + +> [!primary] +> The full list is available in [Recharts Bar documentation page](https://recharts.org/en-US/api/BarChart). + +To pass these properties from your chart configuration json, you simply have to edit the `options` key relative to this chart. +For example, to change the size of the bars, add a `barSize` property in the `options` as below: + +```json +"options": { + "barSize": 20 +} +``` + +You can also customize the axes by adding the `xAxis` or `yAxis` property. You can then pass the properties available in [Recharts Axis documentation page](https://recharts.org/en-US/api/XAxis) +For example, change the domain and scale of your YAxis: + +```json +"options": { + "barSize": 20, + "yAxis": { + "domain": [ + 2000, + 3800 + ], + "scale": "linear" + } +} +``` + +After these few changes, your chart looks now like this: + +![alt text](images/recharts-bar-example-2.png "Recharts Bar example 2"){.thumbnail} + +Let's backtrack a minute to the chart configuration file in order to explain the **title configuration**. +This component is also natively available with Data Platform. It allows you to write HTML code in the `content` property. It will be wrapped in a div. You can associate a custom class to this div by using the `customclass` property. + +The html code associated to the json defined above is: + +```html +
Rides variability on Holidays
+``` + +Learn more about custom charts in the [**Technical Guide**](/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart)! + +## Create and edit a dynamic parameter + +A dynamic parameter allows the user to interact with one or more charts by changing their requests on the fly. + +To create a new dynamic parameter, open `config/menus/sidebar.json` and add the following json object to the *containers* object, right above the *footer* item. + +```json + { + "id": "dyn-weekday", + "items": [ + { + "type": "html", + "content": "Weekday", + "customclass": "dyn-title" + }, + { + "type": "dynamic-parameter", + "dynamic-parameter": { + "type": "filter", + "id": "dynamic-weekday", + "dictionary": "week_day", + "component": "selectbox", + "placeholder": "Select Weekday", + "multi": true + }, + "style": { + "paddingBottom": "10px" + } + } + ] + } +``` + +This json defines a dynamic parameter that allows you to filter chart requests by one or more week days. + +It follows the same logic as the one followed by charts. + +Here, we detail a bit this configuration: + +- `type`: indicates how the dynamic parameter will be used, as a filter in this case. It means that any chart associated with this dynamic parameter will see its results be filtered to display only those matching the selected weekdays. +- `dictionary`: sets the field linked to this dynamic-parameter. +- `component`: sets the component that this dynamic-parameter is associated with, in here, the *selectbox* component. +- `id`: serves to reference this object inside the platform and is commonly used to link this dynamic parameter to charts. +- `placeholder`: specific to the *selectbox* component, specifies the text displayed inside the selectbox by default. +- `multi`: specific to the *selectbox* component, it's a boolean property that allows selecting several options when set to true. + +After copy-pasting the json object above defining this dynamic parameter, your new component should now appear in the sidebar: + +![alt text](images/weekdays-selectbox.png "Weekdays Selectbox"){.thumbnail} + +To actually use this newly created dynamic-parameter, you have to link it to a chart. +You can do this by editing the charts configuration. + +- Open `config/dashboards/rides-analytics.json` +- In the json object defining the **rides history chart**, append `"dynamic-weekday"` to the dynamic-parameters array. +- Reload your page, your dynamic parameter is now linked to the rides history chart. +- Select a day to filter the chart by weekday and watch it refresh with new data. + +Learn more about dynamic parameters in the [**Technical Guide**](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index)! + +Congratulations! + +You have learned how to use existing components. You are now ready to take on [creating your own custom components and use them to make unique dynamic parameters and charts!](/pages/public_cloud/data_platform/getting-further/app-dev/extension) + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example-2.png b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example-2.png new file mode 100644 index 00000000000..205f4cb8e72 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example-2.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example.png b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example.png new file mode 100644 index 00000000000..a28876d2d6b Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/recharts-bar-example.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/component/images/weekdays-selectbox.png b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/weekdays-selectbox.png new file mode 100644 index 00000000000..2d308322d6a Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/component/images/weekdays-selectbox.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/component/meta.yaml b/pages/public_cloud/data_platform/getting-further/app-dev/component/meta.yaml new file mode 100644 index 00000000000..8c40a23a806 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/component/meta.yaml @@ -0,0 +1,2 @@ +id: 5db2c5e2-d984-4312-83b2-41242eaeb452 +full_slug: public-cloud-data-platform-getting-further-app-dev-component \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/guide.en-ie.md new file mode 100644 index 00000000000..50b68b3eed0 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/guide.en-ie.md @@ -0,0 +1,734 @@ +--- +title: "Discover the app configuration files" +updated: 2025-02-15 +--- + +## Objective + +It's time to start coding! In this guide, you'll learn the following: + +* [Understand application files](#understand-the-app-files) + * [Understand app architecture](#understand-the-app-architecture) + * [Understand configuration files](#understand-the-configuration-files) +* [Edit the application](#edit-the-configuration-files) + * [Overwrite the global configuration file](#overwrite-the-global-configuration-file) + * [Edit an existing dashboard](#edit-a-dashboard) + * [Create a new dashboard](#generate-a-dashboard) +* [Add the cat_holiday attribute to your API](#add-the-cat_holiday-attribute-to-your-api) + +## Understand the app files + +### Understand the app architecture + +You have now a complete application. Your app tree should look like this: + +```bash +├── config +├── node_modules +├── forepaas +├── public +├── scripts +└── src +``` + +Let's clarify the content of each directory: + +- `config`: Here is where most of magic happens. In this folder, you can define and update your configuration files for dashboards, menus, styles, translations etc... The most important file here is `global.json`, it allows you to declare and use all of these configuration files. (explained right after) +- `forepaas`: This is the equivalent of `node_modules` for the platform. It contains all the basic components needed to embed your application to Data Platform. All the packages listed in /forepaas.json are installed here. +- `node_modules` : The node_modules folder contains libraries downloaded from npm. It is based on /package.json. +- `public`: This folder contains all the static files (fonts, icons, images...). You can access a file stored in this folder through this url `/assets/{subfolder}/{name}.{extension}`. + For example, the url to access `favicon.png` (and display it in a `` tag) located in `assets/img` is `/assets/img/favicon.png +- `scripts`: This folder contains some useful scripts that you can use to generate components, dashboards or zip this Project to upload it easily on the platform. +- `src`: In this folder, you can create or update your own custom components and services. We will teach you how to do it in the next steps of this tutorial. + +### Understand the configuration files + +The global configuration file is `global.json`. + +This file represents the entry point of your application. +It is where you declare your environment variables, routes, dashboards, and many more important fields. + +Open `global.json` located in the `config` folder. +Initially, it looks like this: + + +```json +{ + "authentication": "{{ENV.CAM_URL}}", + "api": "{{ENV.API_URL}}", + "application_name": "{{ENV.APP_NAME || 'ForePaaS'}}", + "debug": "{{ENV.DEBUG}}", + "loader": "spinner", + "lang": "fr", + "version": 3, + "storage": { + "type": "sessionStorage" + }, + "root": "/rides-analytics", + "menu": [ + "file://config/menus/header.json", + "file://config/menus/sidebar.json" + ], + "dashboarding": { + "/rides-analytics": "file://config/dashboards/rides-analytics.json" + }, + "style": "file://config/style.json", + "reportings": "file://config/reportings.json", + "i18n": { + "en": "file://config/i18n/en.json" + }, + "formatter": "file://config/formatter.json" +} +``` + +Let's explain the most important fields below : + +- `authentication` : refers to the authentication url, it should have this shape: `https://{api-subdomain}.eu.dataplatform.ovh.net/cam?app_id={app_id}`. +By default it is defined as an environment variable. It is important to keep it this way to deploy your app on production. Please refer to this [part](#overwrite-the-global-configuration-file-for-local-use) to understand how to overwrite this field for local development purposes. +- `api` : Same as above, but, refers to the api URL, it should have this shape: `https://{api-subdomain}.eu.dataplatform.ovh.net/{api-alias}`. +- `application_name` : Your application title +- `root` : The root path of your application. +- `menu` : An array containing your menus configuration files. +The header and the sidebar are already defined by default. +- `dashboarding` : An object to define your dashboards. The attribute is the dashboard url, and the value is the dashboard configuration file. +- `style` : The style configuration file. It allows you to style the components. +Some components are already styled there. +- `i18n` : An object to define all your supported languages. The attribute is the language alias, and the value is the translation configuration file associated to the language. +- `formatter` : The formatter configuration file. It allows you to format the data, round numbers, add units, etc... +Some fields are already formatted by default. + +## Edit the configuration files + +Now that you are more familiar with app architecture, you can finally edit the app! + +### Overwrite the global configuration file + +The first step is to link your local application to the authentication service and to the API created previously on your Project. +Since we only need these changes to happen locally, we don't want to directly edit `global.json`. We will create another file `global-override.json` to override it instead. + +- Create `global-override.json` in the `config` folder +- Copy and paste this json into your new file: + +```json +{ + "authentication": "https://{api-subdomain}.eu.dataplatform.ovh.net/cam?app_id={app_id}", + "api": "https://{api-subdomain}.eu.dataplatform.ovh.net/{api-alias}" +} +``` + +There are three variables that you need to replace: + +- `{api-subdomain}` : Log into the platform, go to your API settings, this variable is referred to as the "Subdomain" in the Domain Name System panel +- `{api-alias}` : This variable can be extracted from the "Domain" by removing `eu.dataplatform.ovh.net/` + +![alt text](images/api-alias-subdomain.png "api-subdomain and api-alias"){.thumbnail} + +- `app_id` : Go to the Identity Access Manager page. In the Application tab, go to edit your app. This variable is referred to as "Id" in the application information. + +![alt text](images/app-id.png "app-id"){.thumbnail} + +!> Remember that it is necessary to modify authentication privileges to allow to fetch your online data from your local build. Do it by adding your local host (*http://localhost:3333* by default) to the CORS origin in [*Identity Access Manager*](/pages/public_cloud/data_platform/product/iam/00-iam-index) > *Settings* > *CORS origin* > *Add*. + +Save all files. The locally running app now displays exactly what you had at the end of the Getting Started guide. + +### Edit a dashboard + +As you saw in `config.json`, your application already has a dashboard called `rides-analytics`. + +In this part, you will see how to edit the dashboard configuration file to change the layout and the positions of the elements. + +Let's start by opening `rides-analytics.json` in `config/dashboards`. +You will first create a panel and control the height, the width and the position of an item. + +To create a panel, append these few lines to the end of the array `items` +It will be a placeholder for your future search bar, so let's make `search-bar` its id. + +```json +{ + "type": "panel", + "id" : "search-bar", + "sizeX": 100, + "sizeY": 100, + "row": 0, + "col": 0, + "items": [] +} +``` + +- *type:* Represents the item's type. It can be a component provided by the Platform by default or a specific component. +- *id:* The id of your item. +- *size X:* Represents the width of the item. The value must be between 0 and 100 as it represents a percentage of the containing item's width. +- *size Y:* Represents the height of the item. +- *row:* Represents the row offset. +- *col:* Represents the column offset. + +After adding the panel, the application looks like this: + +![alt text](images/gs-panel.png "Panel"){.thumbnail} + +Now, edit the panel to reduce its height by changing the value of *sizeY* to 19. +After that, move **all the other panels** to the bottom by changing the value of *row* for each of them. Add 20 to the current value to push down the other panels. + +Don't worry if you get confused, we provide you with the `rides-analytics.json` file as it should be after these changes. + +/// details | rides-analytics.json + +```json +{ + "name": "Rides analytics", + "width": 100, + "height": 100, + "margin": [ + 10, + 10 + ], + "description": "", + "items": [ + { + "type": "panel", + "id" : "rides-history-container", + "sizeX": 49, + "sizeY": 70, + "row": 20, + "col": 0, + "items": [ + { + "type": "html", + "content": "Rides history", + "customclass": "chart-title" + }, + { + "type": "chart", + "chart": { + "id": "chart-4992931", + "component": "recharts.line", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "yearmonth" + ] + }, + "filter": {}, + "order": {} + }, + "options": { + "xAxis": { + "type": "category" + } + }, + "dynamic-parameters": [ + "dynamic-date", + "dynamic-holidays", + "dynamic-stations" + ] + }, + "sizeX": 100, + "sizeY": 55, + "col": 0, + "row": 9 + } + ] + }, + { + "type": "panel", + "id" : "weekly-seasonality-container", + "sizeX": 24, + "sizeY": 70, + "row": 20, + "col": 50, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-3259339", + "component": "recharts.donut", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "week_day" + ] + } + }, + "options": {} + }, + "sizeX": 100, + "sizeY": 60, + "row": 5, + "col": 0 + }, + { + "type": "html", + "content": "Weekly seasonality", + "customclass": "chart-title", + "sizeX": 93, + "sizeY": 12, + "row": 0, + "col": 0 + } + ] + }, + { + "type": "panel", + "id" : "top-stations-container", + "sizeX": 49, + "sizeY": 70, + "row": 94, + "col": 0, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-7843335", + "component": "recharts.bar-horizontal", + "options": {}, + "request": { + "data": { + "limit": 7, + "fields": { + "rides": [ + "sum" + ] + } + }, + "scale": { + "fields": [ + "station_name" + ] + }, + "filter": {}, + "order": { + "rides": "desc" + } + } + }, + "sizeX": 100, + "sizeY": 60, + "row": 6, + "col": 0 + }, + { + "type": "html", + "content": "Station top 7", + "customclass": "chart-title", + "sizeX": 100, + "sizeY": 5, + "row": 0, + "col": 0 + } + ] + }, + { + "type": "panel", + "id" : "rides-temperature-container", + "sizeX": 24, + "sizeY": 70, + "row": 20, + "col": 75, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-6930201", + "component": "recharts.bar", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "cat_temperature" + ] + } + }, + "options": {} + }, + "sizeX": 100, + "sizeY": 54, + "row": 8, + "col": 0 + }, + { + "type": "html", + "content": "Rides per Temperature", + "customclass": "chart-title", + "sizeX": 100, + "sizeY": 8, + "row": 0, + "col": 0 + } + ] + }, + { + "type": "panel", + "id" : "search-bar", + "sizeX": 100, + "sizeY": 19, + "row": 0, + "col": 0, + "items": [ + ] + } + ], + "url": "/rides-analytics", + "path": "", + "tags": [] +} +``` + +/// + +![alt text](images/gs-panel-20.png "Panel Step 2"){.thumbnail} + +While we're at it, let's add another panel as a placeholder for a custom interactive map. + +Either do the adequate edits by yourself or replace your `rides-analytics.json` with the one provided below. + +/// details | rides-analytics.json + +```json +{ + "name": "Rides analytics", + "width": 100, + "height": 100, + "margin": [ + 10, + 10 + ], + "description": "", + "items": [ + { + "type": "panel", + "id": "search-bar", + "sizeX": 100, + "sizeY": 19, + "col": 0, + "row": 0, + "items": [] + }, + { + "type": "panel", + "id": "custom-map", + "sizeX": 75, + "sizeY": 99, + "row": 20, + "col": 0, + "items": [] + }, + { + "type": "panel", + "id": "top-stations-container", + "sizeX": 24, + "sizeY": 99, + "row": 20, + "col": 76, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-7843335", + "component": "recharts.bar-horizontal", + "options": {}, + "request": { + "data": { + "limit": 7, + "fields": { + "rides": [ + "sum" + ] + } + }, + "scale": { + "fields": [ + "station_name" + ] + }, + "filter": {}, + "order": { + "rides": "desc" + } + } + }, + "sizeX": 100, + "sizeY": 86, + "row": 6, + "col": 0 + }, + { + "type": "html", + "content": "Station top 7", + "customclass": "chart-title", + "sizeX": 100, + "sizeY": 5, + "row": 0, + "col": 0 + } + ] + }, + { + "type": "panel", + "id": "rides-history-container", + "sizeX": 75, + "sizeY": 70, + "row": 120, + "col": 0, + "items": [ + { + "type": "html", + "content": "Rides history", + "customclass": "chart-title" + }, + { + "type": "chart", + "chart": { + "id": "chart-4992931", + "component": "recharts.line", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "yearmonth" + ] + }, + "filter": {}, + "order": {} + }, + "options": { + "xAxis": { + "type": "category" + } + }, + "dynamic-parameters": [ + "dynamic-date", + "dynamic-holidays", + "dynamic-stations" + ] + }, + "sizeX": 100, + "sizeY": 55, + "col": 0, + "row": 9 + } + ] + }, + { + "type": "panel", + "id": "weekly-seasonality-container", + "sizeX": 24, + "sizeY": 135, + "row": 120, + "col": 76, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-3259339", + "component": "recharts.donut", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "week_day" + ] + } + }, + "options": {} + }, + "sizeX": 103, + "sizeY": 61, + "row": 29, + "col": 0 + }, + { + "type": "html", + "content": "Weekly seasonality", + "customclass": "chart-title", + "sizeX": 93, + "sizeY": 12, + "row": 0, + "col": 0 + } + ] + }, + { + "type": "panel", + "id": "rides-temperature-container", + "sizeX": 37, + "sizeY": 64, + "row": 191, + "col": 0, + "items": [ + { + "type": "chart", + "chart": { + "id": "chart-6930201", + "component": "recharts.bar", + "request": { + "data": { + "fields": { + "avg_rides_per_day_per_station": [ + "select" + ] + } + }, + "scale": { + "fields": [ + "cat_temperature" + ] + } + }, + "options": {} + }, + "sizeX": 100, + "sizeY": 54, + "row": 6, + "col": 0 + }, + { + "type": "html", + "content": "Rides per Temperature", + "customclass": "chart-title", + "sizeX": 100, + "sizeY": 8, + "row": 0, + "col": 0 + } + ] + } + ], + "url": "/rides-analytics", + "path": "", + "tags": [] +} +``` +/// + +Congratulations! The layout of your rides analytics page is now ready! + +Now we'll learn how to add a new dashboard to our application. + +### Generate a dashboard + +To generate a new dashboard, create a new json file in `config/dashboards`. +You can speed up the process by using our script + +```bash +yarn generate +``` + +Using the arrow keys choose **dashboard**, then type the name of your new dashboard ("learn" in this case) + +![alt text](images/generate-dashboard.png "Generate dashboard"){.thumbnail} + +To link your dashboard to your app, edit `global.json` by adding a new entry in the *dashboarding* section. + +```json +"/learn": "file://config/dashboards/learn.json" +``` + +The key represents the url path of your new dashboard. +The value represents the path to the .json file associated with this dashboard. + +Your new dashboard page should now be accessible here: [localhost:3333/#/learn](localhost:3333/#/learn) + +As a last step, let's add a new link tab next to "Rides" in the header. + +To do so, go to `config/menus/header.json` and add this entry in the *items* array of the *tabs* container right below the "Rides" item: + +```json +{ + "type": "link", + "text": "Learn", + "url": "/learn" +} +``` + +![alt text](images/learn-header.png "Learn in header"){.thumbnail} + +![alt text](images/learn-final.png "Learn"){.thumbnail} + +## Add the cat_holiday attribute to your API + +You may notice that the **Rides variability on Holidays** chart isn't displayed correctly. That is the case because, if you followed the [Getting Started guide](/pages/public_cloud/data_platform/getting-started/app-init/00-app-init-index), you have no exposed query relating holidays to the number of rides. + +In the app template provided to you, that query is named *cat_holiday*. We encourage you to try to understand why this problem appears by looking into the *rides_analytics.json* file for mentions of the query name. + +To address this, you have to: +- Add a string attribute named *cat_holiday* to the Mart table *dataset_history*. +- Build the *dataset_history* table and generate the respective DPE Action again. +- In the DPE, change the table's Aggregate Action to correct create the *cat_holiday* attribute with the code below. + +```SQL +CASE +WHEN chicago_calendar_full.christmas_holidays=1 THEN 'Christmas Holidays' +WHEN chicago_calendar_full.summer_holidays=1 THEN 'Summer Break' +WHEN chicago_calendar_full.spring_holidays=1 THEN 'SpringBreak' +WHEN chicago_calendar_full.public_holiday=1 THEN 'Bank Holiday' +WHEN chicago_calendar_full.autumn_holidays=1 THEN 'Fall Holidays' +WHEN chicago_calendar_full.sport_holidays=1 THEN 'Sport Holidays' +ELSE 'off leave' +END + ``` + +- Run the respective workflow again. +- Flush the cache in the API Manager component. + +Now, just rerun your app and the **Rides variability on Holidays** chart should be looking good. + +--- +## You're making good progress! + +You are now familiar with the app architecture and how to work on it locally. +Let's introduce the topic of the next page: customizing your application. There are several ways you can use to style your components: + +- Use [style templates](/pages/public_cloud/data_platform/technical/sdk/app/charts/template): It allows you to define templates which will be applied by default. +- Style at the component level: The style will be only applied to a specific component. You can achieve this by passing some props when declaring a chart or a dynamic parameter. +Example: Go to `config/dashboards/rides-analytics.json` and see the options field inside the line chart inside *rides-history-container* panel. +- Style at the module level (for dynamic parameter only): The style will be applied to all the dynamic parameter of this type. +Example: properties passed inside `select-box` in `style.json` + +> **Note**: We recommend you use [style templates](/pages/public_cloud/data_platform/technical/sdk/app/charts/template) for charts and `style.json` for dynamic parameters. + +> **Deprecated for chart**: +> +> - Style at the module level (eg. recharts): The style will be applied to all the components of the module. +> Example: properties passed inside `recharts` in `style.json` +> - Style at the component type level (eg. recharts-bar): The style will be applied to all the components that share the specified component type +> Example: properties passed inside `recharts-bar` in `style.json` + +Ready to take on this challenge? Let's learn how to create and edit charts! + +[Edit and create custom charts](/pages/public_cloud/data_platform/getting-further/app-dev/component) + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/api-alias-subdomain.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/api-alias-subdomain.png new file mode 100644 index 00000000000..2d2a047a4e0 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/api-alias-subdomain.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/app-id.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/app-id.png new file mode 100644 index 00000000000..4398812402f Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/app-id.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/generate-dashboard.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/generate-dashboard.png new file mode 100644 index 00000000000..a1b2c7cf9be Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/generate-dashboard.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel-20.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel-20.png new file mode 100644 index 00000000000..832d9af57e4 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel-20.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel.png new file mode 100644 index 00000000000..fb44dd032d7 Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/gs-panel.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-final.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-final.png new file mode 100644 index 00000000000..39947eac00b Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-final.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-header.png b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-header.png new file mode 100644 index 00000000000..f93a36dc54b Binary files /dev/null and b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/images/learn-header.png differ diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/configuration/meta.yaml b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/meta.yaml new file mode 100644 index 00000000000..8cd71a82a6f --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/configuration/meta.yaml @@ -0,0 +1,2 @@ +id: 5db2c5e2-d984-4312-83b2-41242eaeb453 +full_slug: public-cloud-data-platform-getting-further-app-dev-configuration \ No newline at end of file diff --git a/pages/public_cloud/data_platform/getting-further/app-dev/extension/guide.en-ie.md b/pages/public_cloud/data_platform/getting-further/app-dev/extension/guide.en-ie.md new file mode 100644 index 00000000000..98ba3bfc5d0 --- /dev/null +++ b/pages/public_cloud/data_platform/getting-further/app-dev/extension/guide.en-ie.md @@ -0,0 +1,980 @@ +--- +title: "Add custom components" +updated: 2025-02-15 +--- + + + +## Objective + +With the React framework, you can **create your own components** from scratch. These components can be used for two things: [dynamic parameters](/pages/public_cloud/data_platform/getting-further/app-dev/extension#use-a-custom-component-as-a-dynamic-parameter) and [charts](/pages/public_cloud/data_platform/getting-further/app-dev/extension#use-a-custom-component-as-a-chart). + +In this guide, you will go through the following: + +* [The dynamic parameter use case](/pages/public_cloud/data_platform/getting-further/app-dev/extension#use-a-custom-component-as-a-dynamic-parameter) + * [Create a component](/pages/public_cloud/data_platform/getting-further/app-dev/extension#generate-a-component) + * [Edit a component](/pages/public_cloud/data_platform/getting-further/app-dev/extension#edit-a-component) + * [Create a second dynamic parameter](/pages/public_cloud/data_platform/getting-further/app-dev/extension#adding-a-search-bar) +* [The chart use case](/pages/public_cloud/data_platform/getting-further/app-dev/extension#use-a-custom-component-as-a-chart) +* [Publish your local app on Data Platform](/pages/public_cloud/data_platform/getting-further/app-dev/extension#publish-your-app-on-data-platform) + * [Using a zip file](/pages/public_cloud/data_platform/getting-further/app-dev/extension#import-your-app-as-a-zip-file) + * [Using git](/pages/public_cloud/data_platform/getting-further/app-dev/extension#connect-your-app-to-a-git-repository) + +> [!primary] +> At any point, feel free to refer to the [**Technical Guide**](/pages/public_cloud/data_platform/technical/sdk/app/custom-component/00-custom-component-index) 🔧 to learn more about custom components! + +## Use a custom component as a dynamic parameter + +### Generate a component + +Let's see how to create a custom component and how to use it as a dynamic parameter. + +As an example, we will show step-by-step you how to create this checkbox group component: + +![alt text](images/dynamic-parameter-checkbox-final.png "Final checkbox"){.thumbnail} + +To generate a component, you can use our pre-build script by running the command below: + +```bash +yarn generate +``` + +Select the **component** generator, name it `DynamicParameterCheckbox` and answer "No" to the last question as shown below: + +![alt text](images/generate-checkbox.png "Generate Checkbox"){.thumbnail} + +> [!warning] +> It is important that your component name starts with **DynamicParameter** to register it as a dynamic parameter + +This script generates a folder in `src/components` containing three files : + +- `DynamicParameterCheckbox.jsx` +- `DynamicParameterCheckbox.less` +- `index.js` + +### Declare a component + +Before you start working on the component itself let's take a minute to see how to declare it and use it. + +Follow these steps to declare the new component: + +- Go to `src/components/index.js` +- Import the component by adding this line at the top of the file : + + ```js + import DynamicParameterCheckbox from "./DynamicParameterCheckbox"; + ``` + +- Declare it by adding its name to the components object + + ```js + components: { + ... + DynamicParameterCheckbox + }, + ``` + +You can now call this component in your configuration files by specifying its **alias**. To obtain a component alias, transform its name from camelCase to kebab-case (`DynamicParameterCheckbox` becomes `dynamic-parameter-checkbox`), then remove "dynamic-parameter" and/or "chart" from it. + +Here, the component's alias is `checkbox`. Now go to `config/menus/sidebar.json` and change the *component* property of *dynamic-weekday* to `"checkbox"` (i.e. the alias). + +Go to your application page, notice that **the dynamic-weekday component has changed**. + +![alt text](images/dynamic-parameter-checkbox-1.png "Dynamic Parameter Checkbox"){.thumbnail} + +Don't worry if it doesn't work right now, its behavior will be set in the next section. + +### Edit a component + +The framework used in this guide is going to be React. + +> [!primary] +> We will guide you step by step to make your components, but if you are having any trouble because you are not familiar with this framework you can check the documentation [here](https://reactjs.org/docs/getting-started.html). +Also, since we are working with functional components, we will use one of latest features available, **React Hooks**. You can check this [page](https://reactjs.org/docs/hooks-intro.html) for more information. + +Let's start editing `DynamicParameterCheckbox.jsx` + +Since this component is declared as a dynamic-parameter, some props are already automatically passed to it by Platforms data flow logic. These props can be logged when the component renders the first time, by making use of the [useEffect](https://reactjs.org/docs/hooks-reference.html#useeffect) hook. + +Start by importing `useEffect` and `useState` (you will need this one later) by changing the first line of the file: + +```js +import React, { useEffect, useState } from "react"; +``` + +Then add `props` to the arguments of the functional component: + +```jsx +const DynamicParameterCheckbox = (props) => { +``` + +Finally, add the useEffect hook inside this function right before the return statement. + +Your functional component should be defined as below: + +```jsx +const DynamicParameterCheckbox = props => { + useEffect(() => { + console.log(props); + }, []); + + return
DynamicParameterCheckbox
; +}; +``` + +Open your browser's console panel, you should be able to see the props. + +![alt text](images/dynamic-parameter-checkbox-props.png "Dynamic Parameter Props"){.thumbnail} + +As you can see, most of these props are passed in `sidebar.json` when defining the dynamic-parameter. +The only exception is `items` which is the result of an internal request querying the field specified in `dictionary` (`week_day` in this case) + +![alt text](images/dynamic-parameter-checkbox-items.png "Dynamic Parameter Items"){.thumbnail} + +Now let's create the checkboxes. + +To achieve this, you will need to install a small package: `react-checkbox-group`. Do so by running: + +```bash +yarn add react-checkbox-group +``` + +This package allows you to use a checkbox group component. You can now import it by adding this line at the top of the file: + +```js +import CheckboxGroup from "react-checkbox-group"; +``` + +Add a boolean variable `expanded` to the component state to be able to display or hide the `CheckboxGroup` with a little arrow icon: + +```js +const DynamicParameterCheckbox = (props) => { + const [expanded, setExpanded] = useState(true) + ... +``` + +Change the function return statement like this: + +```jsx +
+
+ {props.title} + setExpanded(!expanded)} + className={`fa fa-chevron-${expanded ? "down" : "right"} expand-icon`} + /> +
+ {expanded && ( + + {Checkbox => ( + + {props.items.map(option => ( +
+ +
+ ))} +
+ )} +
+ )} +
+``` + +The title section is using *props.title*. This means that you need to pass a `title` prop in **dynamic-weekday** definition in `config/menus/sidebar.json`, as shown below: (the HTML element has also been removed since it's now redundant) + +```json +{ + "id": "dyn-weekday", + "items": [ + { + "type": "dynamic-parameter", + "dynamic-parameter": { + "type": "filter", + "id": "dynamic-weekday", + "dictionary": "week_day", + "component": "checkbox", + "title": "Days" + }, + "style": { + "paddingBottom": "10px" + } + } + ] +} +``` + +Finally, style your component by changing `DynamicParameterCheckbox.less`, using the code snippet below. + +/// details | DynamicParameterCheckbox.less + +```less +// DynamicParameterCheckbox stylesheet + +@import "../../styles/_variables.less"; + +.checkbox-header { + display: flex; + flex-direction: row; + align-items: center; +} + +.dyn-checkbox-container { + display: flex; + align-items: flex-end; + margin: 3px; +} + +.dyn-checkbox { + -webkit-appearance: none; + background-color: #fafafa; + border: 1px solid #cacece; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05); + padding: 7px; + border-radius: 3px; + display: inline-block; + position: relative; +} + +.dyn-checkbox:hover { + cursor: pointer; + box-shadow: 0 1px 2px @primary-color, inset 0px 1px 3px @primary-color; + border: 1px solid @primary-color; +} + +.dyn-checkbox:active, +.dyn-checkbox:checked:active { + box-shadow: 0 1px 2px @primary-color, inset 0px 1px 3px @primary-color; +} + +.dyn-checkbox:checked { + background-color: @primary-color; + border: 1px solid @primary-color; + box-shadow: 0 1px 2px @primary-color, inset 0px -15px 10px -12px + @primary-color, inset 15px 10px -12px @primary-color; + color: white; +} + +.dyn-checkbox:checked:after { + content: "\2714"; + font-size: 12px; + position: absolute; + top: -1px; + left: 2px; + color: white; +} + +.dyn-checkbox-label { + cursor: pointer; + font-family: "Source Sans Pro"; + font-size: 14px; + letter-spacing: 0; + color: #97a7b7; + line-height: 17px; + margin-left: 5px; +} + +.fa.expand-icon { + color: #97a7b7; + font-size: 12px; + cursor: pointer; + margin-left: 5px; +} + +.fa.expand-icon:hover { + color: #3e4550; + cursor: pointer; +} +``` + +/// + +Your dynamic-parameter looks good now, but it's not working properly yet. + +![alt text](images/dynamic-parameter-checkbox-wip.png "Dynamic Parameter WIP"){.thumbnail} + +There is a problem, you cannot check any box! + +The reason is that you need to bind CheckboxGroup to our dynamic-parameter component. To do so, you have to add an array to the state of your component. It will keep track of the selected options, so name it `selectedOptions`: + +```javascript +const DynamicParameterCheckbox = (props) => { + const [expanded, setExpanded] = useState(true) + const [selectedOptions, setSelectedOptions] = useState([]) + ... +``` + +Add a function `onChange` to update the array you have just defined: + +```javascript +const onChange = options => { + setSelectedOptions(options); +}; +``` + +Finally, you need to add the two properties (`onChange` and `value`, an array containing `selectedOptions`) to CheckboxGroup. Bind them by changing the return statement: + +```js +return ( + ... + + ... +``` +Almost there! + +The last step is to bind this dynamic-parameter to the [redux global store](https://redux.js.org/api/store) to allow it to affect charts requests. Add these lines to the imports at the top of the file: + +```js +import { connect } from "react-redux"; +import { set } from "forepaas/store/querystring/action"; +``` + +Then connect this component to the global store by **replacing** the last line of the file: + +```javascript +export default connect(state => ({ querystring: state.querystring }))( + DynamicParameterCheckbox +); +``` + +Inside your `DynamicParameterCheckbox` functional component, create a helper function `updateModel` to dispatch your actions to the global store: + +```js +const updateModel = model => { + if (props.id) { + let value = model.map(item => (item && item.value ? item.value : item)); + props.dispatch(set(props.id, value.length ? value : null)); + } +}; +``` + +Then, update your `onChange` function to call `updateModel`: + +```js +const onChange = options => { + setSelectedOptions(options); + updateModel(options); +}; +``` + +Your dynamic parameter is now connected to the global store. You can make sure of this because the charts connected to `dynamic-weekday` are affected by this dynamic parameter. + +To ensure the dynamic parameter state is loaded when the page is refreshed, just change the `useEffect` hook like this: + +```js +useEffect(() => { + const selectedOptions = props.querystring[props.id] || []; + setSelectedOptions(selectedOptions); +}, [props.items]); +``` + +Congratulations! You've made your first custom dynamic parameter. +If you got lost along the way, no worries. You can find the final code [here](https://github.com/forepaas/getting-started/tree/release/advanced/src/components/DynamicParameterCheckbox). + +### Adding a search bar + +Let's add a second dynamic parameter to be able to filter by station. + +![alt text](images/dynamic-parameter-autocomplete-box.png "Dynamic Parameter Autocomplete box"){.thumbnail} + +Generate a new component: + +```bash +yarn generate +``` + +Select the **component** generator. Name it `DynamicParameterAutocompleteBox` and answer "No" to the last question. + +Change the content of the newly generated .jsx file to this: + +/// details | DynamicParameterAutocompleteBox.jsx + +```jsx +import React, { useState, useEffect } from "react"; +import { connect } from "react-redux"; +import Select from "react-select"; +import { set } from "forepaas/store/querystring/action"; + +const searchIcon = () => ({ + alignItems: "center", + display: "flex", + ":before": { + fontFamily: "FontAwesome", + content: '"\f002"', + marginRight: 8 + } +}); + +const customStyles = { + control: (base, state) => ({ + ...base, + height: "57px", + borderWidth: "0px", + boxShadow: "5px 5px -2px rgba(0, 0, 0, 0.1)" + }), + option: (base, state) => ({ + ...base, + color: state.theme.colors.neutral50, + fontSize: "13px", + height: "48px", + display: "flex", + alignItems: "center", + fontWeight: 500, + letterSpacing: 0 + }), + menu: (base, state) => ({ + ...base, + zIndex: 2000 + }), + multiValue: (base, state) => ({ + ...base, + borderRadius: "21px", + backgroundColor: state.theme.colors.primary75, + color: state.theme.colors.neutral0, + height: "34px", + alignItems: "center" + }), + multiValueLabel: (base, state) => ({ + ...base, + color: state.theme.colors.neutral0, + display: "flex", + alignItems: "center", + marginLeft: "10px", + fontWeight: 600, + letterSpacing: 0 + }), + placeholder: (base, state) => ({ + ...base, + color: state.theme.colors.neutral20, + fontSize: "14px", + ...searchIcon() + }), + multiValueRemove: (base, state) => { + return { + ...base, + color: state.theme.colors.neutral0, + borderRadius: "10px", + padding: "0px", + margin: "10px", + border: `1px solid ${state.theme.colors.neutral0}`, + ":hover": { + backgroundColor: state.theme.colors.neutral0, + color: state.theme.colors.primary75, + cursor: "pointer" + } + }; + } +}; + +const DynamicParameterAutocompleteBox = ({ items, ...props }) => { + const [selectedOptions, setSelectedOptions] = useState([]); + + const customTheme = theme => ({ + ...theme, + colors: { + ...theme.colors, + primary: props.primaryColor || "#00CCF9", + primary25: props.primary25Color || "rgba(16,182,233,0.06)", + primary50: props.primary50Color || "rgba(16,182,233,0.20)", + primary75: props.primary75Color || "rgba(16,182,233,0.8)", + neutral20: props.placeholderColor || "#97A7B7", + neutral50: props.menuColor || "#485465" + } + }); + + useEffect(() => { + const selectedValues = props.querystring[props.id] || []; + const mappedOptions = items.filter(item => + selectedValues.includes(item.value) + ); + setSelectedOptions(mappedOptions); + }, [items]); + + const updateModel = model => { + if (props.id) { + let selectedValues = + model && model.length + ? model.map(item => (item && item.value ? item.value : item)) + : []; + props.dispatch( + set(props.id, selectedValues.length ? selectedValues : null) + ); + } + }; + + const onChange = options => { + setSelectedOptions(options); + updateModel(options); + }; + + return ( + + + ) + } +``` + +At each modification of the input, we will update the component state. But as mentioned earlier, this has no effect on the store. +You must add one line in the `handleChange` function. + +```jsx + handleChange (event) { + this.setState({model: event.target.value}) + this.updateModel(event.target.value) + } +``` + +Your dynamic parameter is ready! + +* If you change its content, URL will change too (with its value). +* If you connect it to a chart, it will be filtered automatically. + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/custom-component/create/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/create/meta.yaml new file mode 100644 index 00000000000..cab1c5942b9 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/create/meta.yaml @@ -0,0 +1,2 @@ +id: 2fb38815-2793-4b0a-898b-8cf3478ebe36 +full_slug: public-cloud-data-platform-technical-sdk-app-custom-component-create \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/guide.en-ie.md new file mode 100644 index 00000000000..461701e44f1 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/guide.en-ie.md @@ -0,0 +1,504 @@ +--- +title: "Create custom charts" +updated: 2025-02-15 +--- + +## Objective + +ForePaaS makes it possible for you to **create your own chart templates**. + +As a reminder, here is the configuration example of a chart: + +```json +{ + "type": "chart", + "col": 0, + "row": 1, + "sizeX": 12, + "sizeY": 12, + "title": "", + "chart": { + "component": "my-component", + "options": { + "title": "My component" + }, + "request": { + "data": { + "fields": { + "quantity": [ + "sum" + ] + } + }, + "filter": {}, + "scale": { + "fields": [ + "city" + ] + } + }, + "dynamic-parameters": [ + "dp-datepicker", + "dp-city" + ], + "not-nullable-dynamic-parameters": [ + "dp-datepicker" + ] + } +} +``` + +> [!primary] +> This format is explained in detail in our [Getting Further on App Development](/pages/public_cloud/data_platform/getting-further/app-dev/component) and lists the different templates provided by ForePaaS (echart, table, jvectormap ....) + +## Step 1: Creating a "Hello World" component + +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + render () { + return ( +
+ Hello World +
+ ) + } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` + +This declares a ReactJS component that will simply display "Hello World". For this example, save it in `src/MyComponent.jsx`. +Finally, you must import it into your Project by adding the highlighted line in the file `src/index.jsx`: + +```jsx +FpSdk.start() + .then(() => { + var FpAppTemplate = FpSdk.modules.sdk.templates.default + FpSdk.modules['chart-my-component'] = require('./MyComponent.jsx') + render(, document.getElementById('root')) + }) +``` + +Once done, you should see your chart display "Hello World". + +> [!warning] +> If you don't, it is perhaps because your request does not return results. + +## Step 2: Display data in your chart + +Your template is called by the ForePaaS SDK. You can access it via the `props` of your ReactJS component which holds a chart object with the following information: + +* `this.props.chart.request`: copy of the query made by your chart +* `this.props.chart.options`: list of options that you have associated with your chart +* `this.props.chart.data`: result of the query sent to the [Analytics Manager](/pages/public_cloud/data_platform/product/am/00-analytics-manager-index) + +In this example, HelloWorld is replaced with a simple table: + +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + render () { + return ( +
+

{this.props.chart.options.title}

+ + {this.props.chart.data.results.map((result, i) => { + return ( + + + + ) + })} +
{JSON.stringify(result)}
+
+ ) + } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` +Thanks to this code, you now have a table with one row per result. + +> [!success] +> [See the Query Builder API reference for a sample result.](/pages/public_cloud/data_platform/technical/api-reference/qb/00-qb-index#query-sample) + +Now, let's go further and convert the JSON that appears into a real data row. +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + render () { + return ( +
+

{this.props.chart.options.title}

+ + + + + + {this.props.chart.data.results.map((result, i) => { + return + + + + })} +
CityData
{result.scales.city}{result.data.quantity.sum[0].value}
+
+ ) + } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` + +> [!warning] +> In this example, there are several **hard coded** lines. +As a result, if you change the query for the associated JSON, the Chart will not work. + +```jsx +{result.scales.city} +{result.data.quantity.sum[0].value} +``` + +Now, let's create a function that will dynamically search the **scales** and **data** of your graph: + +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + renderLine (result, i) { + let values = [] + // Here we give a sample of loop that parses automatically a query result + // You have 3 levels: + // - data : It's the data you wan't to analyse, like turnover, quantity, etc.... + // - computeMode : It's a compute mode like sum, count, avg ... + // - evol : You will always have 0 for 'now', but if you set an evol parameter like 'year', the previous year will be in 1 + // Here you just need to convert QueryBuilder values to an easier format (an array) + for (let field in result.data) { + for (let computeMode in result.data[field]) { + for (let evol in result.data[field][computeMode]) { + values.push(result.data[field][computeMode][evol].value) + } + } + } + + return ( + + {/* Here we get the scales from the result (in this case 'city' */} + {Object.values(result.scales).map((scale, j) => { + return {scale} + })} + {/* Here we display our values */} + {values.map((d, j) => { + return {d} + })} + + ) + } + + render () { + return ( +
+

{this.props.chart.options.title}

+ + {this.props.chart.data.results.map(this.renderLine.bind(this))} +
+
+ ) + } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` + +Finally, you can put the header line of your table dynamically from the query: + +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + renderHeader () { + let values = [] + // Here I loop over the request to create the column header + let request = this.props.chart.request + for (let field in request.data.fields) { + for (let computeMode of request.data.fields[field]) { + values.push(field + '-' + computeMode) + if (request.evol && request.evol.scale) { + values.push(field + '-' + computeMode + '-1') + } + } + } + return ( + + {(request.scale.fields).map((scale, j) => { + return {scale} + })} + {values.map((d, j) => { + return {d} + })} + + ) + } + + renderLine (result, i) { + let values = [] + // Here I give a sample of loop for parsing automatically a query result + // You have 3 level : + // - data : It's the data you wan't to analyse, like ca, qte, etc.... + // - computeMode : Its a compute mode like sum, count, avg ... + // - evol : You will always have 0 for 'now', but if you set an evol parameter like 'year', the last year will be in 1 + // Here we just need to convert QueryBuilder values to an easier format (an array) + for (let field in result.data) { + for (let computeMode in result.data[field]) { + for (let evol in result.data[field][computeMode]) { + values.push(result.data[field][computeMode][evol].value) + } + } + } + + return ( + + {/* Here we get the scales from the result (like in my case the 'siege_social' */} + {Object.values(result.scales).map((scale, j) => { + return {scale} + })} + {/* Here we display our values */} + {values.map((d, j) => { + return {d} + })} + + ) + } + + render () { + return ( +
+

{this.props.chart.options.title}

+ + {this.renderHeader.bind(this)()} + {this.props.chart.data.results.map(this.renderLine.bind(this))} +
+
+ ) + } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` + +Here is the visual result of your code: + +![Texte Alternatif](images/chart-custom-preres.png){.thumbnail} + +## Step 3: Use a graphics library such as D3.js, Chart.js, or other + +The first two steps have shown you how to display a simple table. + +Now let's see how to plug the result with a library such as D3.js. +For this example, the previous result is connected with: [http://bl.ocks.org/phuonghuynh/54a2f97950feadb45b07](http://bl.ocks.org/phuonghuynh/54a2f97950feadb45b07) + +First of all, let's add the dependencies requested by the plugin to index.html (this one does not seem compatible with Webpack, so simply add them to the tag) + +```html + + + + + + + ForePaaS dashboard + + +
+ + + + + + + + + + + + +``` + +Then, copy and paste the example provided on the link in the `componentDidMount` method of our ReactJS component. +There are some modifications to make: + +- Remove the `$(document).ready` from jQuery, because it will not be used by ReactJS +- Use the property `container` to pass to d3.js the **DOM node**, which will allow it to draw in the div present in the `render` function. + +```jsx +import React from 'react' +import PropTypes from 'prop-types' + +class ChartMyComponent extends React.Component { + componentDidMount () { + new window.d3.svg.BubbleChart({ + supportResponsive: true, + container: this.refs.chart, + size: 600, + innerRadius: 600 / 3.5, + radiusMin: 50, + data: { + items: [ + { text: 'Java', count: '236' }, + { text: '.Net', count: '382' }, + { text: 'Php', count: '170' }, + { text: 'Ruby', count: '123' }, + { text: 'D', count: '12' }, + { text: 'Python', count: '170' }, + { text: 'C/C++', count: '382' }, + { text: 'Pascal', count: '10' }, + { text: 'Something', count: '170' } + ], + eval: function (item) { return item.count }, + classed: function (item) { return item.text.split(' ').join('') } + }, + plugins: [ + { + name: 'central-click', + options: { + text: '(See more detail)', + style: { + 'font-size': '12px', + 'font-style': 'italic', + 'font-family': 'Source Sans Pro, sans-serif', + 'text-anchor': 'middle', + 'fill': 'white' + }, + attr: { dy: '65px' }, + centralClick: function () { + alert('Here is more details!!') + } + } + }, + { + name: 'lines', + options: { + format: [ + {// Line #0 + textField: 'count', + classed: { count: true }, + style: { + 'font-size': '28px', + 'font-family': 'Source Sans Pro, sans-serif', + 'text-anchor': 'middle', + fill: 'white' + }, + attr: { + dy: '0px', + x: function (d) { return d.cx }, + y: function (d) { return d.cy } + } + }, + {// Line #1 + textField: 'text', + classed: { text: true }, + style: { + 'font-size': '14px', + 'font-family': 'Source Sans Pro, sans-serif', + 'text-anchor': 'middle', + fill: 'white' + }, + attr: { + dy: '20px', + x: function (d) { return d.cx }, + y: function (d) { return d.cy } + } + } + ], + centralFormat: [ + {// Line #0 + style: { 'font-size': '50px' }, + attr: {} + }, + {// Line #1 + style: { 'font-size': '30px' }, + attr: { dy: '40px' } + } + ] + } + }] + }) + } + + render () { + return
+ } +} + +ChartMyComponent.propTypes = { + chart: PropTypes.object +} + +export default ChartMyComponent +``` + +So far, it displays the same graph as the example found online. + +To display your own data, convert the `this.props.chart.data` object to the format requested by the chart. + +Add a `getItems` method: + +```jsx +getItems () { + return this.props.chart.data.results.map(item => { + return { + text: item.scales.city, + count: item.data.quantity.sum[0].value + } + }) +} +``` + +That you will call in the chart configuration: + +```jsx +radiusMin: 50, +data: { + items: this.getItems(), + eval: function (item) { return item.count }, + classed: function (item) { return item.text.split(' ').join('') } +}, +plugins: [ +``` + +This is the final result: + +![Texte Alternatif](images/chart-custom-result.png){.thumbnail} + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-preres.png b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-preres.png new file mode 100644 index 00000000000..c170fd43151 Binary files /dev/null and b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-preres.png differ diff --git a/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-result.png b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-result.png new file mode 100644 index 00000000000..9b99bee592e Binary files /dev/null and b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/images/chart-custom-result.png differ diff --git a/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/meta.yaml new file mode 100644 index 00000000000..4be9a0bdfd1 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/custom-component/custom-chart/meta.yaml @@ -0,0 +1,2 @@ +id: 88fa7f9d-e1d3-49b8-8e4c-2e3e1b1a7797 +full_slug: public-cloud-data-platform-technical-sdk-app-custom-component-custom-chart \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/guide.en-ie.md new file mode 100644 index 00000000000..98c7e5ebf8e --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/guide.en-ie.md @@ -0,0 +1,93 @@ +--- +title: "Dynamic Parameters" +updated: 2025-02-15 +--- + +## Objective + +Dynamic parameters enables your end-users to select values which are passed on to Charts to be filtered on and refreshed. + +Dynamic Parameters values are applied to Chart requests at the [Front API level](/pages/public_cloud/data_platform/technical/sdk/api/00-api-index) via [Query Builder Transformers](/pages/public_cloud/data_platform/technical/sdk/api/queries/qb-transformers). You may extend default Transformers to your own needs. + +For specific display needs, it is also possible to create custom Dynamic Parameters. + +## List of available Dynamic Parameters + +| name | description | +| :--------- | :----------- | +| [selectbox](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox) | Select from a list, one or more items | +| [checkbox](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox) | Select from checkboxes one or more items | +| [radio](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio) | Selects an item through a list of radio buttons | +| [datepicker](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker) | Select a date range | +| [datepicker.day](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker) | Select a specific day | +| [datepicker.months](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker) | Select a month range | +| [datepicker.month](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker) | Select a specific month | +| [toggle](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle) | Return a boolean | + +### Configuration + +```json +{ + "id": "my-id", + "component": "selectbox", + "type": "filter" +} +``` + +| fields | description | +| :------ | :----------- | +| `id` | Used when saving its state and to connect it to Charts. | +| `component` | Specify the dynamic parameter to use, either those listed above, or your own. | +| `type` | Specify how `requests` are affected, acting either as a `filter` or as a `scale`. Custom transformers may handle your own types | + +> [!warning] +> **Tip** When using **Architect** it will auto-generate an `id` with a non-meaningful name. We strongly recommend to rename it as soon as you have created it, as this `id` will be used in `chart.dynamic-parameters`. + +## Adding Dynamic Parameters in Dashboard + +You can add a dynamic parameter : + +* from the online dashboard editor and its dialog boxes +* in **Advanced Mode** to edit JSON configuration +* by editing directly configuration files in `./config/` +* Via the `menu` tab in the main menu selection + +## Using a Dynamic Parameter in another React Component + +You may use a dynamic parameter directly from code. Use the same JSON configuration as described above, and then call it as any React component. + +Example: + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' + +const myDynP = { + id: 'city', + type: 'filter', + component: 'checkbox', + reference: 'city', + dictionary: 'city', + default: ['Paris', 'San Francisco'] +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## Creating your own Dynamic Parameter + +You can write your own component to customize the appearance of your dynamic parameter. + +Check out the available tutorial [**here**](/pages/public_cloud/data_platform/technical/sdk/app/custom-component/create)! + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/meta.yaml new file mode 100644 index 00000000000..1637fbb38b2 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/00-dynamic-parameters-index/meta.yaml @@ -0,0 +1,2 @@ +id: e8c4f625-0449-475a-abe2-8e1baa70d7e4 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/guide.en-ie.md new file mode 100644 index 00000000000..97d73a49441 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/guide.en-ie.md @@ -0,0 +1,75 @@ +--- +title: "Checkbox" +updated: 2025-02-15 +--- + +## Objective + +Checkboxes allow you to choose one or more items from a defined list. + +```json +{ + "id": "year", + "type": "filter", + "component": "checkbox", + "reference": "year", + "default": ["2020"] + "dictionary": "year", + "items": [ + { + "value": "2020", + "label": "Year 2020" + }, + { + "value": "2019", + "label": "Year 2019" + }, + { + "value": "2018", + "label": "Year 2018" + } + ] +} +``` + +| fields | description | +| :---- | :---------- | +| `reference` | Specifies the name of the field to modify in the queries in the case of a transform of type `filter` | +| `default` | When you first display, it will take this value. | +| `dictionary` | Load items automatically and dynamically from your DataPlant | +| `items` | Manually define the elements to display, `label` will be displayed, `value` will be sent in the associated queries. | + +> [!warning] +> Checkboxes choices comes either from a list of `items` **or** from a `dictionary`. + +## Code example + +Example: + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' +import moment from 'moment' + +const myDynP = { + id: 'city', + type: 'filter', + component: 'checkbox', + reference: 'city', + dictionary: 'city' +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/meta.yaml new file mode 100644 index 00000000000..82fc3cafd6b --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox/meta.yaml @@ -0,0 +1,2 @@ +id: 3cdf8913-80ed-47e8-a5c7-066e83adeb05 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-checkbox \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/guide.en-ie.md new file mode 100644 index 00000000000..38c768fefc6 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/guide.en-ie.md @@ -0,0 +1,154 @@ +--- +title: "Datepicker" +updated: 2025-02-15 +--- + +## Objective + +The Datepicker allows you to select a **date range** to filter the data in a chart. + +## Configuration + +Here is a configuration example followed by further explanations. + +```json +{ + "id": "datepicker", + "type": "filter", + "component": "datepicker", + "reference": "range_date", + "format": "YYYY-MM-DD", + "startAt": "subtract(1,'year').startOf('day')", + "endAt": "endOf('day')", + "minDate": "startOf('day')", + "maxDate": "endOf('day')", + "request": { + "data": { + "fields": { + "date": ["max", "min"] + } + } + }, + "ranges": [ + { + "label": "Past week", + "start": "subtract(1, 'week').startOf('week')", + "end": "subtract(1, 'week').endOf('week')" + }, + { + "label": "Current week", + "start": "startOf('week')", + "end": "endOf('day')" + } + ] +} +``` + +> [!warning] +> Dates are defined with the [momentjs library](https://momentjs.com/) (see below for more information). + +| field | description | +| :------- | :---------- | +| `reference` | field to `filter` when linked to a chart (`range_` **must** be added the field name) | +| `format` | *(optionnal)* Display format inside the datepicker. If not given, will use the one in `./config/formatter.json`. | +| `startAt` | *(optionnal)* Default start date of the datepicker | +| `endAt` | *(optionnal)* Default end date for the datepicker | +| `minDate` | *(optionnal)* Minimum date selectable in the datepicker | +| `maxDate` | *(optionnal)* Maximum date selectable in the datepicker | +| `request` | *(optionnal)* dynamically get `min` and `max` dates from underlying data | +| `ranges` | Allows you to display selectable ranges directly via a shortcut bar. With parameters `start` and `end` to select the beginning and end of the range proposed, as well as `label` to be displayed. | + +## Configuring minimum and maximum dates available + +The following rules explains how to control the datepicker edges : + +* in case a `request` is provided + * `datepicker` will look for the first field in the query, looking for `min` and `max` compute mode + * if only `max` is given, `min` takes same value as `max` +* if `request` is not set : + * `max` is set to `now()` + * `min` is set to now() +* `maxDate`, `startAt`, `endAt` are defined relative to `max` +* `minDate` is defined relative to `min` +* if `minDate` is not provided, it will be the beginning of previous year relative to `max` +* in all case, you may specifiy a precise date by `set({'year': 2020, 'month': 0, 'date': 1})` + +> [!primary] +> *To wrap it up*, to define selectable dates : + +* by default it goes : + * from beginning of previous year + * until today +* you may define them using `minDate` and `maxDate` properties relative from today +* you may define a `request` to select `min` and/or `max` date + +> [!warning] +> When getting a `min` from `request`, `minDate` is relative to `min` and not anymore from `max` + +## Adding it in another React component + +Example: + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' +import moment from 'moment' + +const myDynP = { + id: 'datepicker', + type: 'filter', + component: 'datepicker', + reference: 'range_date', + startAt: 'subtract(1,"year")', + endAt: 'endOf("day")', + minDate: moment().subtract(3, 'year'), + maxDate: moment().endOf('day'), + format: 'YYYY-MM-DD', + request: { + data: { + fields: { + date: ['max'] + } + } + }, + ranges: [{ + start: moment().subtract(1, 'week').startOf('week'), + end: moment().subtract(1, 'week').endOf('week'), + label: 'Past week' + }, { + start: moment().startOf('week'), + end: moment().endOf('day'), + label: 'Current week' + }] +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## moment.js Library + +The datepicker uses the library [momentjs](https://momentjs.com/). +This allows you to easily select a desired period. +In code you can directly supply an object in momentjs format for each parameter. +However, in JSON format, momentjs is used through a "string" format. + +For instance: +```js +moment().subtract(1, 'week').endOf('week') +``` +becomes +```json +"subtract(1, 'week').endOf('week')" +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/meta.yaml new file mode 100644 index 00000000000..2a40deb8f1f --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker/meta.yaml @@ -0,0 +1,2 @@ +id: e9c8a4ba-946f-41b9-afa0-13a74c583ae1 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-datepicker \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/guide.en-ie.md new file mode 100644 index 00000000000..321d24b5e02 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/guide.en-ie.md @@ -0,0 +1,40 @@ +--- +title: "Daypicker" +updated: 2025-02-15 +--- + +## Objective + +The Daypicker allows you to select a date to filter the data of a graph. + +> [!primary] +> Please refer to [datepicker](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker) for a full reference. +The only difference is value of `component`. + +## Configuration + +```json +{ + "id": "daypicker", + "type": "filter", + "component": "datepicker.day", + "reference": "range_date", + "startAt": "startOf('day')", + "endAt": "endOf('day')", + "minDate": "subtract(3, 'year').startOf('month')", + "maxDate": "endOf('day')", + "disable_reference_date": false, + "request": { + "data": { + "fields": { + "date": ["max"] + } + } + }, + "diamonds": null +} +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/meta.yaml new file mode 100644 index 00000000000..54f87d9acd4 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/daypicker/meta.yaml @@ -0,0 +1,2 @@ +id: 601e0da3-a06d-4aa5-8df6-d30329bf3f16 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-daypicker \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/guide.en-ie.md new file mode 100644 index 00000000000..eb62e3019a9 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/guide.en-ie.md @@ -0,0 +1,39 @@ +--- +title: "Monthpicker" +updated: 2025-02-15 +--- + +## Objective + +The monthpicker allows you to select a month to filter data from a chart + +> [!primary] +> Please refer to [datepicker](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker) for a full reference. The only difference is value of `component`. + +## Configuration + +```json +{ + "id": "monthpicker", + "type": "filter", + "component": "datepicker.month", + "reference": "range_date", + "startAt": "startOf('month')", + "endAt": "endOf('day')", + "minDate": "subtract(3, 'year').startOf('month')", + "maxDate": "endOf('day')", + "disable_reference_date": false, + "request": { + "data": { + "fields": { + "date": ["max"] + } + } + }, + "diamonds": null +} +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/meta.yaml new file mode 100644 index 00000000000..d6c8a908678 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthpicker/meta.yaml @@ -0,0 +1,2 @@ +id: 6609a48c-98db-4e5f-ad37-4b01b8f1bdd7 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-monthpicker \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/guide.en-ie.md new file mode 100644 index 00000000000..897a8e7a521 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/guide.en-ie.md @@ -0,0 +1,48 @@ +--- +title: "Monthspicker" +updated: 2025-02-15 +--- + +## Objective + +The Monthspicker allows you to select **a range of months** to filter the data in a chart. + +> [!primary] +> Please refer to [datepicker](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/datepicker) for a full reference. The only difference is value of `component`. + +## Configuration + +```json +{ + "id": "monthspicker", + "type": "filter", + "component": "datepicker.months", + "reference": "range_date", + "startAt": "startOf('month')", + "endAt": "endOf('day')", + "minDate": "subtract(3, 'year').startOf('month')", + "maxDate": "endOf('day')", + "disable_reference_date": false, + "request": { + "data": { + "fields": { + "date": ["max"] + } + } + }, + "diamonds": null, + "ranges": [{ + "label": "Past month", + "start": "subtract(1, 'month').startOf('month')", + "end": "subtract(1, 'month').endOf('month')" + }, { + "label": "Current month", + "start": "startOf('month')", + "end": "endOf('day')" + }] +} +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/meta.yaml new file mode 100644 index 00000000000..b1d954a2493 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/monthspicker/meta.yaml @@ -0,0 +1,2 @@ +id: c7fd6cb8-77bd-424f-879a-1c2236b0088e +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-monthspicker \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/guide.en-ie.md new file mode 100644 index 00000000000..c80091ebaf0 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/guide.en-ie.md @@ -0,0 +1,74 @@ +--- +title: "Radio" +updated: 2025-02-15 +--- + +## Objective + +The radio buttons allow you to choose **one** item from a defined list. + +> [!primary] +> Please refer to [checkbox](/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/checkbox) for a full reference. +The differences are : + +* `component` : **radio** +* `default` : that is a `string` and not an `array` + +```json +{ + "id": "year", + "type": "filter", + "component": "radio", + "reference": "year", + "dictionary": "year", + "default": "2020", + "items": [ + { + "value": "2020", + "label": "Year 2020" + }, + { + "value": "2019", + "label": "Year 2019" + }, + { + "value": "2018", + "label": "Year 2018" + } + ] +} +``` +* __items__ : Allows to manually define the elements to display, the label will be displayed on the screen, the value will be displayed in the associated queries. +* __dictionary__ : load items automatically and dynamically from your DataPlant. +* __default__ : When you first see your radio buttons, this value will be selected. +* __reference__ : Specifies the name of the field to modify in the queries in the case of a transform of type "filter". + +## Code example + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' +import moment from 'moment' + +const myDynP = { + id: 'city', + type: 'filter', + component: 'radio', + reference: 'city', + dictionary: 'city' +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/meta.yaml new file mode 100644 index 00000000000..8180ee54902 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/radio/meta.yaml @@ -0,0 +1,2 @@ +id: cde3597b-baad-4eac-866a-a5ca52f27ca6 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-radio \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/guide.en-ie.md new file mode 100644 index 00000000000..823f7f82ee6 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/guide.en-ie.md @@ -0,0 +1,149 @@ +--- +title: "Selectbox" +updated: 2025-02-15 +--- + +## Objective + +Selectboxes allow you to choose one or more items (depending on the desired configuration) from a defined list. + +```json +{ + "id": "the-year", + "type": "filter", + "component": "selectbox", + "customclass": "my-selectbox" + "reference": "year", + "placeholder": "Select a year", + "sortBy": "value", + "notEmpty": true, + "multi": false, + "default": [ + "2019" + ], + "dictionary": "year", + "tableName": null, + "order": null, + "parents": [], + "items": [ + { + "value": "2020", + "label": "Year 2020" + }, + { + "value": "2019", + "label": "Year 2019" + }, + { + "value": "2018", + "label": "Year 2018" + } + ] +} +``` + +| field | description | +| :------ | :---------- | +| `customclass` | Adds a custom CSS class around the selectbox. | +| `reference` | Specifies the name of the field to modify in the queries in the case of a transform of type `filter`. | +| `placeholder` | Sets the message displayed when no item is selected. | +| `sortBy` | Allows you to order your results by value or label (possible value `none`, `label`, `value`, `-label`, `-value`). | +| `notEmpty` | On the first load, if notEmpty is used and no default value is set, the first element will automatically be selected. | +| `multi` | If this value is used, several values ​​can be selected in the selectbox. | +| `default` | When you first display your selectbox, it will take this value. | +| `dictionary` | Load items automatically and dynamically from your DataPlant. See below for further details. | +| `tableName` | (Optional) When using `dictionary` it forces the Query Builder to use a given table. This is not the recommended usage. | +| `order` | (Optional) Only when `type` is `scale`, see below for further details | +| `parents` | Array to list the `id` of Dynamic Parameters that will filter the contents of this one | +| `items` | allows to manually define the elements to display in the selectbox, the label will be displayed on the screen, the value will be sent in the query. | + +### dictionary + +The `dictionary` attribute may be: + +* a `string` that refers to a **field name** +```json +"dictionary": "year" +``` +* an `object` with `id` for the **field name** and a `filter` to specify some criteria + +```json +{ + ... + "dictionary": { + "id": "year", + "filter": { + "year": { + "gte": ["2015"] + } + } + } + ... +} +``` + +Then, the Query Builder will request all values for this **field** requesting it from the table with that field and minimum number of rows. + +If the **field name** is a primary key (i.e. **station_id**) and has been assoicated in Data Manager to an **Object's Label**, the **Query Builder** will automatically retrieve *label* to display and *value* to pass as *reference* when filtering *charts*. + +### order + +When dynamic parameter `type` is `scale`, the `value` will be added to `scale.fields` request. +The `order` is an object that details for each `value` how it should be ordered. +For instance: +```json +{ + "type": "dynamic-parameter", + "dynamic-parameter": { + "type": "scale", + "id": "select_scale", + "component": "selectbox", + "default": "yearmonth", + "order": { + "yearmonth": "asc", + "date": "asc" + }, + "items": [ + { + "label": "by month", + "value": "yearmonth" + }, + { + "label": "by date", + "value": "date" + } + ] + }, + "label": "Scales" +} +``` + +## Code example + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' +import moment from 'moment' + +const myDynP = { + id: 'city', + type: 'filter', + component: 'selectbox', + reference: 'city', + dictionary: 'city' +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/meta.yaml new file mode 100644 index 00000000000..c27279555c8 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/selectbox/meta.yaml @@ -0,0 +1,2 @@ +id: 12a4f6c6-6282-4e4c-a622-82ea23ee5a87 +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-selectbox \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/guide.en-ie.md new file mode 100644 index 00000000000..ab48146095c --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/guide.en-ie.md @@ -0,0 +1,49 @@ +--- +title: "Toggle" +updated: 2025-02-15 +--- + +## Objective + +Toggle allows to return a Boolean. + +```json +{ + "id": "my-toggle", + "type": "filter", + "component": "toggle", + "default": false +} +``` + +| field | description | +| :---- | :---------- | +| `default` | When you first display your toggle, it will be initialized with this value (true / false). | + +## Code example + +```jsx +import React from 'react' +import FpDynamicParameter from 'forepaas/dynamic-parameter' +import moment from 'moment' + +const myDynP = { + id: 'my-toggle', + type: 'filter', + component: 'toggle' +} +class MyComponent extends React.Component { + render () { + return ( +
+ +
+ ) + } +} +export default MyComponent +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/meta.yaml new file mode 100644 index 00000000000..e30213fa73b --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/dynamic_parameters/toggle/meta.yaml @@ -0,0 +1,2 @@ +id: 125b0b34-51be-4131-9928-b9ec4a2df49d +full_slug: public-cloud-data-platform-technical-sdk-app-dynamic-parameters-toggle \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/faq/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/faq/guide.en-ie.md new file mode 100644 index 00000000000..c3c9f8af289 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/faq/guide.en-ie.md @@ -0,0 +1,130 @@ +--- +title: "Troubleshooting & FAQ" +updated: 2025-02-15 +--- + +## Objective + +This page provides an accessible reference to solutions for common issues you may have when developing your application on ForePaaS as well as some **Frequently Asked Questions**. + +* [Troubleshooting](/pages/public_cloud/data_platform/technical/sdk/app/faq#troubleshooting) + * [Incorrect query](/pages/public_cloud/data_platform/technical/sdk/app/faq#incorrect-query) +* [FAQ](/pages/public_cloud/data_platform/technical/sdk/app/faq#faq) + * [How to use a specific NodeJS version?](/pages/public_cloud/data_platform/technical/sdk/app/faq#how-to-use-a-specific-nodejs-version) + * [How to format a value using an existing formatter?](/pages/public_cloud/data_platform/technical/sdk/app/faq#how-to-format-a-value-using-an-existing-formatter) + * [How to use registered translations?](/pages/public_cloud/data_platform/technical/sdk/app/faq#how-to-use-registered-translations) + * [How to make a query and get its results outside a Chart?](/pages/public_cloud/data_platform/technical/sdk/app/faq#how-to-make-a-query-and-get-its-results-outside-a-chart) + * [How to deploy a Simple Web App?](/pages/public_cloud/data_platform/technical/sdk/app/faq#how-to-deploy-a-simple-web-app) + +If you do not find an answer to your question, please reach out to our [Support team](/pages/public_cloud/data_platform/technical/sdk/app/faq#cannot-find-an-answer-to-your-question-)! + +## Troubleshooting + +### Incorrect Query + +#### Occurrence + +This error occurs when you use attempt to access a *query* that isn't available. + +![incorrect_query](images/incorrect_query.png){.thumbnail} + +##### Common causes & solutions + +**Undeployed API** + +If the API associated to your APP isn't deployed, your APP won't be able to retrieve the query in the [Analytics Manager](/pages/public_cloud/data_platform/product/am/00-analytics-manager-index). + +Check if your API is deployed and deploy it if it isn't. + +**Typo in your query** + +Check if the fields in your query are written correctly and if they exist in the Analytics Manager. + +## FAQ +### How to use a specific NodeJS version? + +It is possible to specify the NodeJS version to use when building App by specifying in `./forepaas.json`: +```json + "node": 14, +``` + +### How to format a value using an existing formatter? + +```jsx +// Leverage "turnover" as declared in ./config/formatter.json to format a given value +import { FpMeasure } from 'forepaas/formatter' +function formatValue(field, value) { + let measure = new FpMeasure(field); + return measure.setValue(value).toString(); +} +console.log(formatValue("turnover", 100)); +``` + +### How to use registered translations? + +```jsx +import FpTranslate from 'forepaas/translate' +console.log(FpTranslate("key_to_be_translated"}) +``` + +### How to make a query and get its results outside a Chart? + +```jsx +import FpQueryBuilder from 'forepaas/query-builder' + const query = { + data: { + fields: { + date: ["min","max"] + } + } + } + let request = new FpQueryBuilder.FpQuery(query) + request.compute().then((response) => { + // display array of results from the query + console.log(response.results) + // displays the first item in results + console.log(response.results[0]) + // get 'data' from 1st item and displays values + let item= response.results[0].data + console.log(item.date.min[0].value, item.date.max[0].value) + }) +``` + +### How to deploy a Simple Web App? + +Sometimes it is needed to deploy a simple web app or using a different SDK. + +App's code may be provided either through a ZIP file or a Git repository. +It must provide at least: + +* `forepaas.json`: minimal version described below +* `package.json`: minimal version described below +* `production/`: folder that will be the root of the website after deployment, the `package.json` file may contain a `build` command to make that folder + +**forepaas.json** + +```json + { + "type": "app", + "language": "js", + "framework": "custom", + "modules": {} + } +``` + +**package.json** + +```json + { + "name": "app_name", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "build": "echo no build to do" + } + } +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/faq/images/incorrect_query.png b/pages/public_cloud/data_platform/technical/sdk/app/faq/images/incorrect_query.png new file mode 100644 index 00000000000..5dad403c365 Binary files /dev/null and b/pages/public_cloud/data_platform/technical/sdk/app/faq/images/incorrect_query.png differ diff --git a/pages/public_cloud/data_platform/technical/sdk/app/faq/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/faq/meta.yaml new file mode 100644 index 00000000000..a0c6375efaf --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/faq/meta.yaml @@ -0,0 +1,2 @@ +id: 92ab723c-779e-4f64-9dd0-105a506faa0e +full_slug: public-cloud-data-platform-technical-sdk-app-faq \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/formatter/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/app/formatter/guide.en-ie.md new file mode 100644 index 00000000000..b8a6e8afab1 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/formatter/guide.en-ie.md @@ -0,0 +1,125 @@ +--- +title: "Formatters" +updated: 2025-02-15 +--- + +## Objective + +Formatters are used to format the data of your application so they display correctly, with units and separators for example. + +This configuration will go into the `./config/formatter.json` configuration file loaded from `./config/global.json`. + +## Formatters list + +### `separator` + +**Description**: Allows you to choose the separators of thousands and decimals. + +| Option | Description | Type | Values | +| :--------- | :----------------------- | :------- | :----- | +| `thousand` | Thousand separator | _string_ | _-_ | +| `decimal` | Decimal separator | _string_ | _-_ | + +**Example**: + +```json +{ + "separator": { + "thousand": ",", + "decimal": "." + } +} +``` + +### `measures` + +**Description**: Allows you to format a number with a suffix. + +| Option | Description | Type | Values | +| :--------- | :----------------------- | :-------- | :----- | +| `unit ` | Unit suffixed to the value of the data | _string_ | - | +| `round` | The rounding of the data (ignored if `short` is not empty) | _number_ | - | +| `mult` | Multiplication of the data by the provided value | _number_ | - | +| `pows` | List of unit prefixes to applied at every threshold (1, 103, 106, 109, ...) | _array_ | - | +| `short` | Number of digits displayed, will be used by "pows" to determine which prefix to apply | _number_ | - | + +**Example**: + +In the following example, **turnover** is the data to be formatted. The configuration can be read as follows: + +> [!primary] +> The unit displayed will be €; rounded to 2 digits and multiplied by 1000. +When the value reaches **10**, the value displayed will be **10 k€**. + +```json +{ + "measures": { + "turnover": { + "unit": "€", + "round": 2, + "mult": 1000, + "pows": [ + " ", + " k", + " M", + " G" + ], + "short": 3 + } + } +} +``` + +> [!warning] +> Measure format will be **automatically applied by all Charts** on field **turnover** included in a Query Builder request. +You may also use it through code in your own components : + +```jsx +import { FpMeasure } from 'forepaas/formatter' +function formatValue(field, value) { + let measure = new FpMeasure(field); + return measure.setValue(value).toString(); +} +console.log(formatValue("turnover", 100)); +``` + +### `dimensions` + +**Description**: Allows you to indicate the nature of the data used for axes. + +| Option | Description | Type | Values | +| :--------- | :----------------------- | :-------- | :----- | +| `type ` | Data type | _null_; _string_ | - _null_
- _temporal_ | +| `subtype` | Data subtype | _string_ | - _year_
- _month_
- _quarter_
- _semester_
- _date_
- _datetime_
- _month-year_
- _week-year_ | +| `format` | Formatting to apply | _string_ | Multiples | + +**Example:** + +```json +{ + "dimensions": { + "sample_year": { + "type": "temporal", + "subtype": "year", + "format": "YYYY" + }, + "sample_month": { + "type": "temporal", + "subtype": "month", + "format": "MM" + }, + "sample_date": { + "type": "temporal", + "subtype": "date", + "format": "DD/MM/YYYY" + } + } +} +``` + +> [!warning] +> Dimension format will be automatically used by Chart components for `scale` rendering in general and X-axis specifically. + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/app/formatter/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/app/formatter/meta.yaml new file mode 100644 index 00000000000..bb01538e6ee --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/app/formatter/meta.yaml @@ -0,0 +1,2 @@ +id: 364be10e-cedb-43e5-9cdd-fe5b3cc67b92 +full_slug: public-cloud-data-platform-technical-sdk-app-formatter \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/guide.en-ie.md new file mode 100644 index 00000000000..3bce769033a --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/guide.en-ie.md @@ -0,0 +1,126 @@ +--- +title: "Custom Actions SDK" +updated: 2025-02-15 +--- + +## Objective + +ForePaaS provides a Python SDK to create your own [custom actions](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) within the [Data Processing Engine](/pages/public_cloud/data_platform/product/dpe/00-dpe-index) (DPE). +It may also be used in other parts of the platform as described below. + +- [Where is the Python SDK accessible](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#where-is-the-python-sdk-accessible) +- [The connect function](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#the-connect-function) +- [The bulk_insert function](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#the-bulk_insert-function) +- [PySpark Support](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#pyspark-support) +- [Simple Use Cases](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#simple-use-cases) +- [Advanced Use Cases](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#advanced-use-cases) + +## Where is the Python SDK accessible + +Most SDK functions are usable in 4 contexts, if they are not, it will be explicitly stated: + +- When creating a [Custom Action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) in the DPE. +- When creating a [Custom PySpark Action](/pages/public_cloud/data_platform/product/dpe/actions/custom-pyspark) in the DPE. +- When writing code in a MLM [Integrated Jupyter Notebook](/pages/public_cloud/data_platform/product/ml/notebooks/00-notebooks-index). +- When creating a [Custom Estimator](/pages/public_cloud/data_platform/product/ml/pipelines/configure/training/custom-estimator/00-custom-estimator-index) in the [Machine Learning Manager](/pages/public_cloud/data_platform/product/ml/00-ml-index) (MLM). + +You could, for example, write code and test it in a [Jupyter Notebook](/pages/public_cloud/data_platform/product/ml/notebooks/00-notebooks-index) and, once you are done, copy and paste it into a DPE Custom Action. + +## The connect function + +The `connect()` function is, most of the time, the main entry point to interact with the [Project](/pages/public_cloud/data_platform/product/project/00-project-index). + +It takes a **connection string** as parameter and returns a **Connector object**. +For example: + +```python +from forepaas.dwh import connect + +connection_string = "dwh/data_prim/" +connector_prim = connect(connection_string) +``` + +Change the connection string to connect to different sources within the ForePaaS environment. +As a consequence, the object, and aveilable methods, returned by `connect(...)` will be different. + +Our [Connectors and Connection Strings article](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index) explains each option available in more detail and below you will find the method list for two common connectors: + +* [Lakehouse Manager Dataset Connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm) +* [ForePaaS Buckets Connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket) + +## The bulk_insert function + +The `bulk_insert()` function is a very important part of the SDK. You can use it to insert data back into a table. As shown in the code below, it takes a [Dataset Connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm), a table name and a pandas DataFrame as parameters. + +```python +import pandas as pd +from forepaas.dwh import connect +from forepaas.dwh import bulk_insert + +# make connection to the Prim Dataset +cn = connect("dwh/data_prim/") + +# extract data from the table with no SQL required +df = cn.select("stations_rides") + +# perform your custom transform in the dataframe +df.loc[df["station_name"] == 'Harlem-Lake', "rides"] = 0 + +# reinsert your dataframe in the destination table +stats = bulk_insert(cn, "stations_rides", df) +``` + +### bulk_insert(connector, table, data, source_default_schema={}, batch_size=None) + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| connector | Connector| Connector instance from the connect() function | ```cn = connect("dwh/data_prim/")``` | +| table | str | name of the destination table where the data is going to be loaded in | - | +| dataframe | pandas.DataFrame | Dataframe of data to insert, must to have the same column names and types that the target table does. | - | +| default_schema | dict | - | - | +| batch_size | int | insertion batch size | - | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| Tuple(stats, error) | tuple of the statistics of the insertion | - | + +## PySpark Support + +ForePaaS offers extensive support to handle data with PySpark. +All is done through Spark-compatible methods in the Connector object. +Check out our [PySpark article](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index) for further details. + +## Simple use cases + +We have prepared sample scripts for common use cases to get you started right away: + +* [Custom Action with a Lakehouse Manager table](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm) +Extract data from a Lakehouse Manager table, transform it and re-insert it into another table. +* [Custom Action with ForePaaS Buckets](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket) +Extract data from a specific file format, linearize it and load it into a Lakehouse Manager table. +* [Custom Action with a Data Catalog Source directly](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source) +Use a Source defined in the Data Catalog to load it into a Lakehouse Manager table. + +## Advanced use cases + +Feeling confident ? Here are a few more specific use cases: + +* [A. Environment variables](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter) +* [B. Segmentation and perimeter usage](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation) +* [C. Override load action](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override) +* [D. Using custom Python modules](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git) + +## Technical documentation + +You may also check out the [Technical Documentation](https://forepaas-sdk.readthedocs.io/en/latest/) for a complete technical description of the SDK. +* [Connect](https://forepaas-sdk.readthedocs.io/en/latest/packages/dwh/index.html#connectors-connect) +* [Bucket](https://forepaas-sdk.readthedocs.io/en/latest/packages/dwh/index.html#datastore-connect) +* [Protocols](https://forepaas-sdk.readthedocs.io/en/latest/packages/dwh/index.html#protocols-connect) + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/meta.yaml new file mode 100644 index 00000000000..c69fc307ad0 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index/meta.yaml @@ -0,0 +1,2 @@ +id: 07e1726c-088e-4208-a8d9-d4e9a24d7f19 +full_slug: public-cloud-data-platform-technical-sdk-dpe-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/guide.en-ie.md new file mode 100644 index 00000000000..a31068ce833 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/guide.en-ie.md @@ -0,0 +1,17 @@ +--- +title: "Advanced use cases" +updated: 2025-02-15 +--- + +## Objective + +Feeling confident ? Here are a few more specific use cases: + +* [A. Environment variables](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter) +* [B. Segmentation and perimeter usage](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation) +* [C. Override load action](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override) +* [D. Using custom Python modules](/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git) + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/meta.yaml new file mode 100644 index 00000000000..28cb722b6eb --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/00-advanced-use-cases-index/meta.yaml @@ -0,0 +1,2 @@ +id: 147dc363-4be7-48c2-8cf2-4f1673be4481 +full_slug: public-cloud-data-platform-technical-sdk-dpe-advanced-use-cases-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/guide.en-ie.md new file mode 100644 index 00000000000..8188cf925ca --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/guide.en-ie.md @@ -0,0 +1,28 @@ +--- +title: "Use environment variables in a Custom action" +updated: 2025-02-15 +--- + +## Objective + +In a [Custom action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index), you might want to use environment variables. You can set your own in the preferences or set them in the JSON *Advanced Mode* of the action, in the `params` JSON object, and re-use them in your custom action. + +```python +import sys +from logging import getLogger +from forepaas.core.settings import PARAMS + +logger = logging.getLogger(__name__) + +def my_custom(event): + try: + # Show the parameter value + logger.info("Environment variable value is: ".format(PARAMS["env variable key"])) + + except Exception as err: + raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno)) +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/meta.yaml new file mode 100644 index 00000000000..dc144a30692 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3A-parameter/meta.yaml @@ -0,0 +1,2 @@ +id: caea59d2-5a4b-4a16-9e05-fb58411684a2 +full_slug: public-cloud-data-platform-technical-sdk-dpe-advanced-use-cases-3a-parameter \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/guide.en-ie.md new file mode 100644 index 00000000000..a523c4c8797 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/guide.en-ie.md @@ -0,0 +1,64 @@ +--- +title: "Use segmentation (and perimeter) in a Custom action" +updated: 2025-02-15 +--- + +## Objective + +In a [Custom action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index), you can fully benefit from the segmentation system and even go further: +* parallelizing the calculation of your complex algorithm +* parallelizing huge custom data loading +* etc.. + +You can set the **segmentation type and values** as you would do in other compatible action types, through the interface, or through advanced JSON mode. +For more information, please refer to the [segmentation documentation page](/pages/public_cloud/data_platform/product/dpe/jobs/execution-preferences/segmentation) + +Here, you will learn **how to get the segmentation configuration and values** in your custom Python script, in order to apply it as you want. +Let's dig into an example where you set a segmentation over a set of values, and apply a filter on the source. + +```python +import sys +from logging import getLogger + +from forepaas.core.settings import PARAMS +from forepaas.dwh import connect +from forepaas.dwh import bulk_insert + +logger = logging.getLogger(__name__) + +def my_custom(event): + try: + # get the segmentation and perimeter settings + segmentation = PARAMS.get("segmentation",{}) + segmentationValues = PARAMS.get("segmentation",{}).get("values") + perimeter = PARAMS.get("perimeter",{}) + perimeterValues = PARAMS.get("perimeter",{}).get("values") + + # set a filter dict regarding the segmentation and perimeter configuration + filters = {} + if segmentation["type"] in ["workflow_dates", "dwh_attributes", "predefined_set"] and segmentationValues is not None: + filters[segmentation["var_name"]] = segmentationValues + if perimeter["type"] in ["workflow_dates", "dwh_attributes", "predefined_set"] and perimeterValues is not None: + filters[perimeter["var_name"]] = perimeterValues + + cn = connect("dwh/data_prim/") + + # extract with filters + df = cn.select(table_name, filters) + + # perform some changes on the df optionaly + # df = df + + # insert into destination + bulk_insert(cn, table_destination, df) + + # close connection + del cn + except Exception as err: + raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno)) + +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/meta.yaml new file mode 100644 index 00000000000..dce9219f0cd --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3B-segmentation/meta.yaml @@ -0,0 +1,2 @@ +id: 8b614f05-5f45-436b-adf3-3b5bd5aaa15d +full_slug: public-cloud-data-platform-technical-sdk-dpe-advanced-use-cases-3B-segmentation \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/guide.en-ie.md new file mode 100644 index 00000000000..f878832de17 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/guide.en-ie.md @@ -0,0 +1,53 @@ +--- +title: "Override a Load action" +updated: 2025-02-15 +--- + +## Objective + +In a [Custom action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index), you can re-use existing action types, overriding some parameters or creating "hooks". + +Here is an example of re-using a [Load action](/pages/public_cloud/data_platform/product/dpe/actions/load/00-load-index), adding a mapping value equals to the date contained in the source filename. + +> [!primary] +> **Some requirements to follow :** +> 1. select the `aggregate` module in the required modules +> 2. your JSON `params` must follow the [required format for the load action](/pages/public_cloud/data_platform/product/dpe/actions/load/advanced-mode) + +**Tip** : you may first create your action configuration through a regular Load action, then copy / paste the "params" JSON object into your custom action JSON `params` object. + +```python +import sys,os +from logging import getLogger + +from forepaas.core.settings import PARAMS +from forepaas.actions.aggregate.fpaggregate import aggregate + +logger = getLogger(__name__) + +def override_aggregate(event): + + try: + # Set filename. could be get through segmentation or parameters + filename = "sales_2020-01-01.csv" + + # Override source filename + path = "/".join(PARAMS["load_from"][0]["source"].split("/")[:-1]) + "/" + filename + PARAMS["load_from"][0]["source"] = path + + # override source_date in schema + source_date = filename.replace("sales_","").replace(".csv","") + PARAMS["schema"]["source_date"] = {"type":"replace", "value": str(source_date)} + logger.info(f"{filename} {source_date}") + + # executing the aggregate (=load) action, it will use the overriden PARAMS. + aggregate(event) + + except Exception as err: + message="error on file:{}: {} L:{}".format(filename,err,sys.exc_info()[2].tb_lineno) + raise Exception(message) +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/meta.yaml new file mode 100644 index 00000000000..3cb7f06e83a --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3C-load-override/meta.yaml @@ -0,0 +1,2 @@ +id: 3fc7555c-a619-4724-b604-7e8868badeb6 +full_slug: public-cloud-data-platform-technical-sdk-dpe-advanced-use-cases-3C-load-override \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/guide.en-ie.md new file mode 100644 index 00000000000..3a2a75e4715 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/guide.en-ie.md @@ -0,0 +1,74 @@ +--- +title: "Use custom Python modules from a Git repository" +updated: 2025-02-15 +--- + +## Objective + +In some cases, you will want to use your own and already existing Python code. + +In order to import your custom Python modules and use it in a [Custom action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index), you may refer to an external Git repository that will be pulled before each build of your job. + +Here are the steps in order to use an external Git repository as a Python module: + +1. Adapt your module so that its compatible with `pip install` + * see [setuptools documentation](https://packaging.python.org/guides/distributing-packages-using-setuptools/) +2. Your Python module must be hosted on an accessible host, if repository is private, you need to get an `access token`. +For instance, in [GitHub](https://github.com), you must generate a **personal access token** +(Other providers may have similar procedures) + * [how to set tokens](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token) + * [set your personal token in GitHub](https://github.com/settings/tokens) +3. Check that downloading of the package works well with your token + * Zip Archive: `https://@github.com///archive/.zip` + * Git: `git+https://@github.com//.git` + * Git with a tag name: `git+https://@github.com//.git@` +4. Check that `pip install` works with your URL on your local computer +```bash +pip install +``` +5. On your dataplant, in a custom action, add the dependencies in the **Advanced Mode** in `forepaas.json`: + * with a HTTPS Zip archive +```json + { + "dependencies": { + "python": { + "https://@github.com///archive/.zip": null + } + } + } +``` + * with a Git+HTTPS repository +```json + { + "dependencies": { + "python": { + "git+https://@github.com//.git": null + } + } + } +``` + * with a Git+HTTPS repository, including a `tag` name or a `commit hash` +```json + { + "dependencies": { + "python": { + "git+https://@github.com//.git@": null + } + } + } +``` + +> [!warning] +> Note that there is no automatic detection of change in a custom Git module.
+In order to force the dependency rebuild, you need to specify which version of the module to use (e.g. `tag` or `commit hash`).
+When this version is updated, the instance image will be rebuilt at the next execution.
+This allows a better control of which version is actually used at execution time. + +6. In your custom action python code, you can now import and use it! +```python +import mypackage +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/meta.yaml new file mode 100644 index 00000000000..6411f5bed1e --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/advanced-use-cases/3D-git/meta.yaml @@ -0,0 +1,2 @@ +id: 2dce838f-1a9e-417e-a70b-4107c5bcf487 +full_slug: public-cloud-data-platform-technical-sdk-dpe-advanced-use-cases-3d-git \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/guide.en-ie.md new file mode 100644 index 00000000000..dc439ea8e83 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/guide.en-ie.md @@ -0,0 +1,166 @@ +--- +title: "PySpark Support" +updated: 2025-02-15 +--- + +## Objective + +> [!primary] +> In a [Custom Action PySpark](/pages/public_cloud/data_platform/product/dpe/actions/custom-pyspark), you can use the Connector object's Spark-compatible methods. These methods are available **only in Custom PySpark Actions** and they vary according what type of source you are connected to. + +Do not hesitate to check out the [sample code](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark) for common use cases. + +* [The connect module with PySpark](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#the-connect-module-with-pyspark) +* [Spark-compatible Connector methods](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#spark-compatible-connector-methods) + * [get_spark_options()](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#get_spark_options) + * [get_spark_context()](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#get_spark_context) + * [get_spark_session()](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#get_spark_session) + * [get_spark_url(path, bucket=None)](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#get_spark_urlpath-bucketNone) + * [insert_dataframe(table, dataframe)](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#insert_dataframetable-dataframe) + * [extract_dataframe()](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index#extract_dataframeparams) + +## The connect module with PySpark + +When you create a [Custom PySpark action](/pages/public_cloud/data_platform/product/dpe/actions/custom-pyspark), two things are done by ForePaaS: + +- *SparkContext* is created before calling the script. +- *SparkContext.stop()* is called after the script. + +So you can simply access Spark's functionalities with: + +```python +SparkContext.getOrCreate() +``` + +To access the data stored within ForePaaS, you have to first instantiate a [Connector object with the connect function](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#the-connect-module). Then you can use **Spark-compatible methods in the Connector object** to interact with the connected data. + +For instance, the method for getting a Spark Dataframe object is **connnector.extract_dataframe()**. The sample code below connects directly to a source and then uses that method to get the Spark object: + +```python +from forepaas.dwh import connect + +cn_source = connect("dwh/file_upload_source/chicago_calendar_full.csv") + +# Spark compatible connector extract_dataframe function returns Spark DataFrame +spark_df = cn_source.extract_dataframe() +``` + +> [!primary] +> Note that not all ForePaaS connectors are compatible with PySpark. Some compatible connectors are: Snowflake, PostgreSQL, MySQL, Amazon S3, File-Upload and ForePaaS Bucket but this list is evolving constantly. + +## Spark-compatible Connector Methods + +### get_spark_options() + +Returns Spark options to connect to a Database. + +*Not available with Protocol sources (Buckets, File Upload, Amazon S3, etc).* + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| Dict | SparkOptions to connect to a Database. | See below. | + +```python +{ + "sfAccount": ..., + "sfURL": ..., + "sfUser": ..., + "sfSchema": ..., + "sfDatabase": ..., + "sfTimezone": ..., + "sfWarehouse": ..., + "preactions": ..., +} +``` + +### get_spark_context() + +Returns the current SparkContext. + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| pyspark.SparkContext | Current SparkContext. | - | + +### get_spark_session() + +Returns current spark session, configured with different settings when using ForePaaS bucket / file-upload. + +*Available only with Protocol sources (Buckets, File Upload, Amazon S3, etc).* + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| pyspark.sql.SparkSession | Current Spark session. | - | + +### get_spark_url(path, bucket=None) + +Returns file url to given path of object in object store. path needs to be absolute path in object store, and if bucket is not set, it uses the one from the user config + +*Available only with Protocol sources (Buckets, File Upload, Amazon S3, etc).* + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| path | str| Absolute path within the bucket to the file. | - | +| bucket (optional)| str | Bucket in the object store. | - | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| str | File Spark URL. | ```s3a://bucket_name/path/chicago_calendar.csv``` | + +### insert_dataframe(table, dataframe) + +Inserts a Spark DataFrame into the connected source. + +*Available with Databases and some Protocol sources (Buckets, Amazon S3, Azure Blob Storage).* +For more details, check the [use case 4 and 5](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark). + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table | str| Table name inside the database. | ```my_s3_table``` | +| dataframe | pyspark.sql.DataFrame | DataFrame containing data to be inserted. | - | + +### extract_dataframe(params={}) + +Extract SparkDataframe from file. File extraction options can be set via params or in table.parameters + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| params | Dict| Dict that contain a SQL query structure to execute. An empty dictionary by default, results in getting all rows. | Empty dict: ```{}```| + +Detailed example: +```python + params = { + "scale": ["attribute_1", "attribute_2"], + "joins": [{ + "type": "INNER", + "table": "table_1", + "condition": "table_1.attribute = table_2.attribute" + }], + "schema": { + "attribute_dest": "attribute_source" + } + } +``` + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| pyspark.sql.DataFrame | DataFrame with the sources data. | - | + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/meta.yaml new file mode 100644 index 00000000000..aed709b853a --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/00-connect-spark-index/meta.yaml @@ -0,0 +1,2 @@ +id: c6953554-04e3-42ab-9341-2bd9ac4af9f6 +full_slug: public-cloud-data-platform-technical-sdk-dpe-connect-spark-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/guide.en-ie.md new file mode 100644 index 00000000000..0f6a1a6fbfe --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/guide.en-ie.md @@ -0,0 +1,169 @@ +--- +title: "PySpark Use Cases" +updated: 2025-02-15 +--- + +## Objective + +- [Use Case 1: read from Bucket and write to Dataset](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark#use-case-1-read-from-bucket-and-write-to-database) +- [Use Case 2: SQL query the Databases](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark#use-case-2-sql-query-the-databases) +- [Use Case 3: Extracting a PySpark Dataframe (with options)](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark#use-case-3-extracting-a-pyspark-dataframe-with-options) +- [Use Case 4: write to another ForePaaS bucket](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark#use-case-4-write-to-another-bucket) +- [Use Case 5: write to object storage using insert_dataframe](/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark#use-case-5-write-to-object-storage-using-insert_dataframe) + +## Use Case 1: read from Bucket and write to Dataset + +This sample show how to retrieve data from ForePaaS Bucket *bucket_test* and insert it into the *prim* dataset from the [Lakehouse Manager](/pages/public_cloud/data_platform/product/lakehouse-manager/00-lakehouse-manager-index). + +Please refer to [ForePaaS Buckets Connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket) and [Lakehouse Manager Dataset Connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm) for more details on the connection strings. + +```python +from logging import getLogger +from forepaas.dwh import connect +from pyspark import SparkContext +from pyspark.sql import SQLContext + +logger = getLogger(__name__) + +cn_source = connect("dwh/bucket_test/chicago_calendar_full.csv") +cn_prim = connect("dwh/data_prim/") + +# Spark compatible connector extract_dataframe function returns Spark DataFrame +spark_df = cn_source.extract_dataframe() +logger.notice(f"CSV Columns: {list(spark_df.columns)}") + +# insert_dataframe uses Spark DataFrame as well +cn_prim.insert_dataframe("chicago_calendar_full_copy", spark_df) + +``` + +## Use Case 2: SQL query the Databases + +This sample highlights the querying of databases through the *get_spark_options()* and *get_spark_context()* methods of the [ForePaaS Connector object](/pages/public_cloud/data_platform/technical/sdk/dpe/00-dpe-index#the-connect-module). + +```python +from logging import getLogger +from forepaas.dwh import connect +from pyspark import SparkContext +from pyspark.sql import SQLContext + +logger = getLogger(__name__) + +# get_spark_context() and get_spark_options() are available for database connectors (snowflake, postgresql, mysql) +cn_prim = connect("dwh/data_prim/") +sc_prim = cn_prim.get_spark_context() +so_prim = cn_prim.get_spark_options() + +# Depends on Snowflake or PostgreSQL +sql_driver = "net.snowflake.spark.snowflake" # "jdbc" or "net.snowflake.spark.snowflake" + +spark_prim = SQLContext(sc_prim) +sql = "select * from chicago_calendar_full" +spark_df = spark_prim.read.format(sql_driver).options(**so_prim).option("query", sql).load() + +logger.notice(f"SQL Columns: {list(spark_df.columns)}") +``` + +## Use Case 3: extracting a PySpark Dataframe (with options) + +This sample shows how to quickly extract Spark DataFrames with the *extract_dataframe()* method and also how to do it manually with the *get_spark_url()*, *get_spark_context()* and *get_spark_session()* methods. + +```python +from logging import getLogger +from forepaas.dwh import connect +from pyspark import SparkContext +from pyspark.sql import SQLContext + +logger = getLogger(__name__) + +cn_source = connect("dwh/bucket_test/chicago_calendar_full.csv") + +# Check with Spark documentation for available options +options = {"encoding": "utf-8", "sep": ",", "header": True} + +# Manual override extract_dataframe file options +spark_df = cn_source.extract_dataframe(options) +logger.notice(f"CSV1 Columns: {list(spark_df.columns)}") + +# Manual read from file +# get_spark_url(), get_spark_context() and get_spark_session() are available for s3 / buckets connectors +spark_session = cn_source.get_spark_session() + +# getting stations_rides.csv under bucket buc_test +url = cn_source.get_spark_url("stations_rides.csv", bucket="buc_test") +logger.notice(f"SparkURL: {url}") + +# Use format(file_suffix) for other files, check spark documentation for more information +options= {"encoding": "utf-8", "sep": ";", "header": True} +spark_df = spark_session.read.format("csv").options(**options).load(url) + +logger.notice(f"CSV2 Columns: {list(spark_df.columns)}") +``` + +## Use Case 4: write to another bucket + +This sample shows how to use the *get_spark_url()* method to write from one [ForePaaS Bucket](/pages/public_cloud/data_platform/product/lakehouse-manager/buckets) to another. + +```python +from logging import getLogger +from forepaas.dwh import connect +from pyspark import SparkContext +from pyspark.sql import SQLContext + +logger = getLogger(__name__) + +cn_source = connect("dwh/bucket_test/stations_rides.csv") +spark_df = cn_source.extract_dataframe() + +url_dst = cn_source.get_spark_url("stations_rides_copy.csv", bucket="test2") +logger.notice(f"SparkURL Dest: {url_dst}") +spark_df.write.format("csv").options(**options).save(url_dst) + +url_dst = cn_source.get_spark_url("stations_rides_copy.parquet", bucket="test3") +logger.notice(f"SparkURL Dest: {url_dst}") +spark_df.write.format("parquet").save(url_dst) +``` + +## Use Case 5: write to object storage using insert_dataframe + +The `insert_dataframe()` function simplifies operations in the previous use case. +It is available for compatible object-storage-type PySpark connectors (currently ForePaaS Buckets, S3 and [Azure Blob Storage](/pages/public_cloud/data_platform/product/data-catalog/sources/connectors/blob-storage)) + +```python +from logging import getLogger +from forepaas.dwh import connect + +logger = getLogger(__name__) + +cn_source = connect("dwh/bucket_test/chicago_calendar_full.csv") +spark_df = cn_source.extract_dataframe() + +# cn_dest: ForePaaS Buckets, S3, Azure Blob Storage +cn_dest = connect("dwh/dest_bucket/") + +# Insert using default type inferred from file name and default ForePaaS options +# Raises an exception if file suffix not in ["csv", "json", "parquet"] +# Destination file will be destination.csv under the configured path of the source +cn_dest.insert_dataframe("destination.csv", spark_df) + +# Insert using custom type +params = {"type": "parquet"} +# Reads from params.type, if not provided and no suffix in file name, an exception will be raised +cn_dest.insert_dataframe("destination", spark_df, params) + +# Insert to specified absolute path +params = {"path": "output"} +# Destination file will be output/destination.csv +cn_dest.insert_dataframe("destination.csv", spark_df, params) + +# Insert with custom options +params = {"write_options": {"sep": ",", "header": False}} +cn_dest.insert_dataframe("destination.csv", spark_df, params) + +# Current default ForePaaS options: +# CSV: {"encoding": "utf-8", "sep": ";", "header": True} +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/meta.yaml new file mode 100644 index 00000000000..cb07238d344 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connect-spark/quick-start-spark/meta.yaml @@ -0,0 +1,2 @@ +id: 4be45ecb-ec10-4b71-9699-eb655b433cea +full_slug: public-cloud-data-platform-technical-sdk-dpe-connect-spark-quick-start-spark \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/guide.en-ie.md new file mode 100644 index 00000000000..f42d462c6ed --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/guide.en-ie.md @@ -0,0 +1,85 @@ +--- +title: "Connectors and Connection Strings" +updated: 2025-02-15 +--- + +## Objective + +In ForePaaS's Project, all available **data sources** are defined and configured in the [Data Catalog](/pages/public_cloud/data_platform/product/data-catalog/00-data-catalog-index). + +In the Python SDK, all those **data sources** are named by a unique **connection string** and accessible through **connectors** returned by the `connect()` function. The returned **Connector object** as well as its available methods depend on the **data source's type**. + +A simple example to list tables from the default storage engine: + +```python +from forepaas.dwh import connect + +# connect to default PRIM storage engine +cn_prim = connect('dwh/data_prim/') +# list databases tables +tables = cn.list() +``` + +Data sources may be split in 4 categories: + +* [Buckets](#buckets) +* [Storage Engines](#storage-engines) +* [Query Engine](#query-engine) +* [Sources](#sources) + +> [!primary] +> **Connection strings** are used in all Project's components to reference **data sources**, for instance in Data Processing Engine [Load](/pages/public_cloud/data_platform/product/dpe/actions/load/advanced-mode) and [Aggregate](/pages/public_cloud/data_platform/product/dpe/actions/aggregate/advanced-mode) actions or when [applying segmentation](/pages/public_cloud/data_platform/getting-further/segmentation/dwh-attributes#understanding-advanced-parameters). + +## Buckets + +Buckets are ForePaaS' built-in object store. Below, the connection string and its respective Connector object returned by the `connect function`. + +| connection string | Connector | description | +| :---------------- | :-------: | :---------- | +| `connect("data_store")`| DataStore | Connects to the buckets | +| `connect("data_store/my-bucket")` | Bucket | Connects to a specific bucket | + +Read more about [DataStore and Bucket connectors](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket). + +## Storage Engines + +Projects are linked to [Storage Engines](/pages/public_cloud/data_platform/product/storage-engine) as main databases to store and query data at the heart of your Project. + +A Project can be defined with multiple [datasets](/pages/public_cloud/data_platform/product/lakehouse-manager/datasets), but by default you will receive 3 datasets **PRIM, MART and ML**. You can also create custom internal and external datasets. Each of these datasets can be linked to a different storage engine. + +| connection string | Connector | description | +| :---------------- | :-------: | :---------- | +| `connect("dwh/data_prim/")`| Dataset | Connects to the default dataset - **PRIM** | +| `connect("dwh/data_mart/")`| Dataset | Connects to the default dataset - **MART** | +| `connect("dwh/exampleDataset/")`| Dataset | Connects to the custom dataset created by you - **exampleDataset** | +| `connect("dwh/data_prim/my_table")`| Dataset | Connects to the default dataset - **PRIM** that contains **my_table** | + +Read more about [Database connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm). + +## Query Engine + +When a [query engine has been activated](/pages/public_cloud/data_platform/product/am/resources#manage-the-query-engine), it may be used to request different storage engines and some compatible sources in an unified way. + +| connection string | Connector | description | +| :---------------- | :-------: | :---------- | +| `connect("query_engine")`| Trino | Connects to the query engine (Trino) | +| `connect(f"query_engine/{catalog}/{schema}")` | Trino | Connects directly to a **schema** in a **catalog** | + +## Sources + +You may also connect to external data sources declared in [Data Catalog's Sources](/pages/public_cloud/data_platform/product/data-catalog/sources/00-sources-index). Each external source has an associated **connection string** based on the initial name given to the source. +For instance, a new data source named `My first data` will have the connection string equal to `dwh/my_first_data`. +The **technical name** is displayed on the main Data Catalog Source's page. + +External sources may be split in a few types: + +* **Databases connectors** have same methods as storage engines, see [Database connectores](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#data-manager-connector-methods) +(i.e. Snowflake, PostgreSQL, Oracle, Microsoft SQL Server, Amazon Redshift, MongoDB...) +* **Protocol connectors** when accessing file storage or object store (ForePaaS Buckets, ForePaaS File Upload, SFTP, Amazon S3, ...) +Those connectors have same methods as [Bucket connector](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucket-connector-methods) +* **Stream** (i.e. Kafka, MQIT, Amazon Kinesis) or **External APIs** (i.e. Google Analytics, Facebook, Twitter, Mailchimp..) +Those connectors are mainly designed to be used from [Data Catalog Analyzer](/pages/public_cloud/data_platform/product/data-catalog/analyzer/00-analyzer-index) and [Data Processing Engine Load Actions](/pages/public_cloud/data_platform/product/dpe/actions/load/00-load-index). + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/meta.yaml new file mode 100644 index 00000000000..c865b19dda0 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/00-connectors-index/meta.yaml @@ -0,0 +1,2 @@ +id: 6d5fe8fa-8b51-4011-b4b6-18effbd313b5 +full_slug: public-cloud-data-platform-technical-sdk-dpe-connectors-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/guide.en-ie.md new file mode 100644 index 00000000000..d0ff38b7271 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/guide.en-ie.md @@ -0,0 +1,324 @@ +--- +title: "ForePaaS Buckets connector" +updated: 2025-02-15 +--- + +## Objective + +> [!primary] +> In the current ForePaaS SDK, the **Datastore connector** is used to interact with the ForePaaS Buckets. You may think of the Datastore simply as a bucket container. + +* [Connect to the Datastore](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#connect-to-the-datastore) +* [Datastore Connector methods](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastore-connector-methods) + * [datastore.list(...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastorelistreturn_type-39array39) + * [datastore.get_buckets()](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastoreget_buckets) + * [datastore.get_bucket(name)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastoreget_bucketname) + * [datastore.create_bucket(name)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastorecreate_bucketname) + * [datastore.remove_bucket(name)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastoreremove_bucketname) + * [datastore.bucket_exists(name)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#datastorebucket_existsname) +* [Bucket Connector methods](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucket-connector-methods) + * [bucket.list(...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketlistbool-metadatatrue-bool-recursivetrue-kwargs) + * [bucket.list_filename(...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketlist_filenamereturn_type39array39-contains3939-recursivetrue-kwargs) + * [bucket.get(file_name, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketgetfile_name-kwargs) + * [bucket.getobject(object_name, file_path, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketfgetobject_name-file_path-kwargs) + * [bucket.put(object_name, data, length, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketputobject_name-data-int-length-kwargs) + * [bucket.fput(object_name, file_path, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketfputobject_name-file_path-kwargs) + * [bucket.put_request(url, path, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketput_requesturl-path-data-method39get39-headers-kwargs) + * [bucket.delete(path, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketdeletepath-kwargs) + * [bucket.stat(path, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketstatpath-kwargs) + * [bucket.fcopy_to(new_bucket, object_name, object_source, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket#bucketfcopy_tonew_bucket-object_name-object_source-kwargs) + +## Connect to the Datastore + +In order to interact with the Datastore you have to connect to it first, as shown in the code below: + +```python +from forepaas.dwh import connect + +cn_datastore = connect('data_store') +``` + +After that you can use the `Connector.list()` method to see the buckets available in your Datastore and then connect to the bucket of your choice to interact with it. + +You can connect directly to a specific bucket in the Datastore as shown in the code below: + +```python +from forepaas.dwh import connect + +bucket_name = "name" +cn_bucket = connect('data_store/' + bucket_name) +``` + +The datastore connector will return a Data Store Connector object and connecting directly to a bucket will return a Bucket Connector object. + +See the next section of this article for additional details on the methods of each connector. + +## Datastore Connector methods + +### datastore.list(return_type = 'array') + +Lists all buckets in the Datastore. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| return_type | str | Determine the type you want to get `array` or `str` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `str` or `array` | List of buckets in Data Store | | + +### datastore.get_buckets() + +Gets all buckets from the Datastore + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `list[bucket]` | list of `bucket` instances | | + +### datastore.get_bucket(name) + +Gets a bucket instance from its name. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| name | str | Bucket name | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `bucket` | Bucket instance to handle files | | + +### datastore.create_bucket(name) + +Adds a bucket in the Data Store. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| name | str | Bucket name | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `boolean` | Success of operation | | + +### datastore.remove_bucket(name) + +Removes a bucket from the Data Store. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| name | str | Bucket name | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `boolean` | Success of operation | | + +### datastore.bucket_exists(name) + +Finds out if a bucket exists or not. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| name | str | Bucket name | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `boolean` | Success of operation | | + +## Bucket Connector methods + +### bucket.list(bool metadata=True, bool recursive=True, **kwargs) + +Lists files from Data Store's bucket. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| metadata | bool | (optionnal) Get metadata for all files listed, defaults to True | | +| recursive | bool | (optionnal) Determine if you want to list all folder as well, defaults to True | | +| ```**kwargs``` | | Remaining keyword arguments are passed to `self.minio.list_objects_v2()` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `list[Object]` | List of bucket files | | + +### bucket.list_filename(return_type='array', contains='', recursive=True, **kwargs) + +Lists filenames from Data Store's bucket. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| return_type | str | Type of return you want, defaults to `array` | | +| contains | str | Filter filenames list with filename containing the value, defaults to '' | | +| recursive | bool | DetermineS if you want to list all folders as well, defaults to True | | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.list_objects_v2()` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `[str]` or `str` | | List of bucket files either in `array` or in a string separated by comma | + +### bucket.get(file_name, **kwargs) + +Gets raw file content from a Data Store bucket. + +```python +from forepaas.dwh import connect + +ds = connect('data_store') +bucket = ds.get_bucket('my_bucket') +bucket.get('folder/file_name.csv') +data = bucket.get('file_name.csv') +for d in data.stream(32*1024): + print(d) +``` + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| file_name | str | File name you want to get from bucket | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| `urllib3.response.HTTPResponse` | Response from Data Store request | | + +### bucket.fget(object_name, file_path, **kwargs) + +Gets an object from Datastore's bucket to local path. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| object_name | str | Object name you want to get from bucket | | +| file_path | str | File path (path/filename) on the local filesystem to save the file | | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.fget_object()` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| Object | Object stat info from the server | | + +### bucket.put(object_name, data, int length, **kwargs) + +Puts an object to Data Store's bucket. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| object_name | str | Name of the object to upload | | +| data | `io.RawIOBase` | Data to upload to minio | | +| length | int | Data length | | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.put_object()` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| str | Object etag computed by the server | | + +### bucket.fput(object_name, file_path, **kwargs) + +Puts a file to Data Store's bucket. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| object_name | str | Destination name of the object to upload | | +| file_path | str | Path on the local filesystem from which file will be read | | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.fput_object()` | | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| str | Object etag computed by the server | | + +### bucket.put_request(url, path, data={}, method='GET', headers={}, **kwargs) + +Gets an object from an HTTP request and upload it to Datastore's bucket + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| url | str | URL to get the file from | | +| path | str | Where to upload the file in Datastore's bucket, defaults to '' | | +| data | dict | Dictionary, list of tuples, bytes, or file-like object to send in the body of the request. | | +| method | str | Method used by request to get file, defaults to 'GET' | | +| headers | dict | Headers send in request, defaults to {} | | + +### bucket.delete(path, **kwargs) + +Deletes multiple/single file in Data Store's bucket + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| path | `str` or `[str]` | File(s) path to remove | | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.remove_object(s)` | | + +### bucket.stat(path, **kwargs) + +Gets stats for a file in Datastore's bucket. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| path | `str` or `[str]` | File(s) path to get stats from | +| `**kwargs` | | Remaining keyword arguments are passed to `self.minio.stat_object()` | | + +### bucket.fcopy_to(new_bucket, object_name, object_source, **kwargs) + +Copies file from bucket to a new bucket in Data Store. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| new_bucket | str | Name of the bucket for new object. | | +| object_name | str | Name of the new object. | | +| object_source | str | Name of the object to be copied. | | +| `**kwargs` | | Remaining keyword arguments are passed to self.minio.copy_object | | + +## Additional methods + +The ForePaaS Datastore is built on [Minio](https://min.io/) technology. Please refer to the [Minio Technical Documentation](https://docs.min.io/docs/python-client-api-reference.html) for more information on the advanced settings of the SDK functions. + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/meta.yaml new file mode 100644 index 00000000000..1745e37e44b --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-bucket/meta.yaml @@ -0,0 +1,2 @@ +id: fa9fb263-c6a8-41df-98ab-c4bc112b3161 +full_slug: public-cloud-data-platform-technical-sdk-dpe-connectors-connect-bucket \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/guide.en-ie.md new file mode 100644 index 00000000000..3dc4ec4f48f --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/guide.en-ie.md @@ -0,0 +1,176 @@ +--- +title: "Lakehouse Manager Dataset connector" +updated: 2025-02-15 +--- + +## Objective + +> [!primary] +> Using Dataset connector, you may query, insert, update or delete content programmatically. + +* [Connect to the Lakehouse Manager](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#connect-to-the-data-manager) +* [Lakehouse Manager Connector methods](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#data-manager-connector-methods) + * [list()](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#list) + * [query(sql, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#querysql-limit-1-return_type39dataframe39) + * [select(table_name, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#selecttable_name-conds-limit-1-return_type39dataframe39-) + * [update(table_name, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#updatetable_name-set-condsnone-ignorefalse) + * [delete(table_name, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#deletetable_name-conds) + * [truncate(table_name)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#truncatetable_name) + * [insert(table_name, rows, ...)](/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm#inserttable_name-rows-odku0-returnwarningsfalse) + +## Connect to the Lakehouse Manager + +In order to create a Connector and use it to interact with a [Lakehouse Manager table](/pages/public_cloud/data_platform/product/lakehouse-manager/00-lakehouse-manager-index), you can connect to the **Default Dataset Tables** or to **Custom Dataset Tables**. + +Below, you will see the connection strings used for each type: + +```python +from forepaas.dwh import connect + +cn_prim = connect("dwh/data_prim/") +cn_custom = connect("dwh/custom_dataset_name/") +``` + +After that you can use the `Connector.list()` method to see the tables available in your Lakehouse Manager and then `Connector.select(...)` or `Connector.query(...)` to get the data from the table you want. + +See the next section of this article for additional details. + +> [!warning] +> Note that **tables need to be loaded in the DPE** before using the `Connector.list()` method and other Connector object methods. In other words, you have to create and run a load action in the DPE in order to use a table in the SDK. + +## Lakehouse Manager Connector methods + +### list() +Get the list of tables in the dataset. + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| list | list of table names | ```["chicago_calendar_full", "stations_rides"]``` | + +### query(sql, limit=-1, return_type='dataframe') + +Execute a SQL query on a compatible `source`, returns a dataframe (default), an iterable cursor, or a list of dict. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| sql | str| SQL query to execute | ```select * from stations_rides``` | +| limit | int | maximum number of results (-1: no limit) | -1 | +| return_type | str | type of return | 'dataframe', 'cursor' or 'dict' | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| mixed | results in the choosen type (dataframe, cursor, list[dict] | | + +### select(table_name, conds={}, limit=-1, return_type='dataframe' ) + +Extract data from a table with simple filters, returns a dataframe (default), an iterable cursor, or a list of dict. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table_name | str | source table name | `stations_rides` | +| conds | dict | Dict of values to use as filters. `Keys` are attributes to filter with `values` as the filtering values. `List` produces a IN operator, otherwise produce a `=` operator | None / ```{"date":["01/11/2013", "01/12/2013"], "station_name":"Harlem-Lake"}``` | +| limit | int | maximum number of results. (-1: no limit) | -1 | +| return_type | string | type of return | 'dataframe', 'cursor' or 'dict' | + +**Output** + +| Type | Description | Example | +| :---: | :--- | :--- | +| mixed | results in the choosen type (dataframe, cursor, list[dict] | | + +### update(table_name, set, conds=None, ignore=False) + +Performs an `UPDATE` SQL query through simple parameters and return the number of affected rows. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table_name | str | name of the source table | `'stations_rides'` | +| set | dict | Dict of values to update. Key as the field name to update, values as the value to update. | ```{“rides”:0}``` | +| conds | dict | Dict of values to use as filters. `Keys` are attributes to filter with `values` as the filtering values. `List` produces a IN operator, otherwise produce a `=` operator | None / ```{"date":["01/11/2013", "01/12/2013"], "station_name":"Harlem-Lake"}``` | +| ignore | boolean | If `True`, performs an `UPDATE IGNORE` query. Otherwise `UPDATE` query. | `True`, `False` | + +**Outputs** + +| Type | Description | Example | +| :---: | :--- | :--- | +| int | Number of updated rows (if DBMS compatible) | 42 | + +### delete(table_name, conds) + +Performs a deletion based on a specific query with filtering conditions. Returns the number of deleted rows. +If you don’t need any filter, use the `truncate` method described below. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table_name | str | name of the source table | `'stations_rides'` | +| conds | dict | Dict of values to use as filters. `Keys` are attributes to filter with `values` as the filtering values. `List` produces a IN operator, otherwise produce a `=` operator | ```{"station_name":"Harlem-Lake"}``` | + +**Outputs** + +| Type | Description | Example | +| :---: | :--- | :--- | +| int | Number of deleted rows (if DBMS compatible) | 42 | + +### truncate(table_name) +Truncates (clears) all rows from a table. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table_name | str | name of the source table | `'stations_rides'` | + +**Outputs** + +| Type | Description | Example | +| :---: | :--- | :--- | +| boolean | True if truncate succeeded. False if table does not exist. Raise Exception if anything else occurred. | `True`, `False` | + +### insert(table_name, rows, odku=0, returnWarnings=False) + +Executes an insert query, adds `on duplicate key update` (ODKU) operation optionally, and returns statistics about the insertion of the batch. +If you activate the ODKU option, the query will automatically performs updates on existing rows instead of returning errors, regarding the existing primary key values in each row that you are inserting. + +> [!warning] +> Please note that you **MUST** provide, for each row that you want to insert, at least the primary key of the destination table. + +> [!primary] +> We encourage you to use the module **bulk_insert** instead of this function as described [here](https://forepaas-sdk.readthedocs.io/en/latest/packages/connector.html?highlight=bulk_insert#bulk-insert) as this module has a better management of data chunk and insertion management. + +**Input Parameters** + +| Name | Type | Description | Example | +| :--- | :---: | :--- | :--- | +| table_name | str | name of the source table | `'stations_rides'` | +| rows | dataframe | Dataframe to insert or update. | ```pd.DataFrame([ {"station_id": 1, "station_name":"First Station"}, {"station_id":2, "name":"Second Station"}])``` | +| odku | boolean | `False` = Don’t perform an ODKU; `True` = Performs an ODKU | `True`, `False` | +| returnWarnings | boolean | If True, return warnings aggregated and counted for each type of warning strings returned | True / False | + +**Outputs** + +| Type | Description | Example | +| :---: | :--- | :--- | +| dict | Statistics about the inserted batch. | ```{"inserts":13, "skipped":10, "updates":3, "records": 30, "affected":4, "warnings": {"integer truncated":4}}``` | + +### Complementary notes + +Due to lacks of metrics collected by PostgreSQL or Snowflake libraries, the statistics returned by ForePaaS connectors are calculated based on limited factors. +- When no error happens, *inserts* and *skipped* rows are calculated based on total rows before and after inserting, as well as the *records* (length of data to insert) provided. For example, if we try to insert 3 rows into a table of 5 rows, and the result is 7 rows in total, we consider 2 rows are *inserted* and 1 row *skipped*, while *records* is 3. +- If error happens in a batch of data, the whole batch will be marked as warnings. +- Note for Snowflake: statistics returned by `insert_many()` and `insert_dataframe()` wont have *warnings* calculated, all rows fail to insert or skipped will be marked as *skipped* + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/meta.yaml new file mode 100644 index 00000000000..c9620bbf69b --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/connectors/connect-dm/meta.yaml @@ -0,0 +1,2 @@ +id: ed153895-fa15-4d34-983c-94581dc117c9 +full_slug: public-cloud-data-platform-technical-sdk-dpe-connectors-connect-dm \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/guide.en-ie.md new file mode 100644 index 00000000000..a542d6e9581 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/guide.en-ie.md @@ -0,0 +1,19 @@ +--- +title: "Simple use cases" +updated: 2025-02-15 +--- + +## Objective + +We have prepared sample scripts for common use cases to get you started right away: + +* [Custom Action with a Lakehouse Manager table](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm) +Extract data from a Lakehouse Manager table, transform it and re-insert it into another table. +* [Custom Action with ForePaaS Buckets](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket) +Extract data from a specific file format, linearize it and load it into a Lakehouse Manager table. +* [Custom Action with a Data Catalog Source directly](/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source) +Use a Source defined in the Data Catalog to load it into a Lakehouse Manager table. + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/meta.yaml new file mode 100644 index 00000000000..d2a90090f79 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/00-simple-use-cases-index/meta.yaml @@ -0,0 +1,2 @@ +id: 894c3b3c-bd6d-4d99-bbfb-dd1c27f706c3 +full_slug: public-cloud-data-platform-technical-sdk-dpe-simple-use-cases-index \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/guide.en-ie.md new file mode 100644 index 00000000000..3e6a180826e --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/guide.en-ie.md @@ -0,0 +1,99 @@ +--- +title: "Custom Action with ForePaaS Buckets" +updated: 2025-02-15 +--- + +## Objective + +Sometimes you need to handle a complex file format beyond our [Load Action](/pages/public_cloud/data_platform/product/dpe/actions/load/00-load-index) capabilities. +In this case, we advise you to store and manipulate files with the [ForePaaS Buckets](/pages/public_cloud/data_platform/product/lakehouse-manager/buckets) in your DataPlant. + +> [!primary] +> In the current ForePaaS SDK, the **Datastore connector** is used to interact with the ForePaaS Buckets. You may think of the Datastore simply as a bucket container. + +The following sample is written in [Custom Action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) context. You may adapt it as needed. + +```python +import sys +import pandas as pd +from logging import getLogger + +from forepaas.dwh import connect +from forepaas.dwh import bulk_insert + +logger = getLogger(__name__) +def extract_func(event): + try: + # we get data from a bucket and we will archive them in another bucket + bucket_source_name = "your_source_bucket_name_here" + bucket_archives_name = "your_source_bucket_name_here" + + # create a connector to handle bucket + bucket_connector = connect("data_store/{}".format(bucket_source_name)) + + # list files from bucket + files = bucket_connector.list() + + # retrieve a file from Data Store bucket to temporary local folder + bucket_filepath = "stations_rides.csv" + local_filepath = "/tmp/stations_rides.csv" + bucket_connector.fget(bucket_filepath, local_filepath) + + # read then transform the file as you need + # here the date column format is simply adjusted for compatibility reasons + df = pd.read_csv(local_filepath, sep=';') + df['date'] = pd.to_datetime(df['date']) + + # load the dataframe into a dataplant table named 'raw_file' + cn = connect("dwh/data_prim/") + bulk_insert(cn, "stations_rides_artur", df) + del cn + + # option 1 : copy the file into the archives bucket + bucket_archive_filepath = "archives/stations_rides.csv" + bucket_connector.fcopy_to(bucket_archives_name, bucket_archive_filepath, bucket_filepath) + + # option 2 : put a file into the archives + bucket_archives = connect("data_store/{}".format(bucket_archives_name)) + bucket_archives.fput(bucket_archive_filepath, local_filepath) + del bucket_archives + + # delete file from source bucket + bucket_connector.delete(bucket_filepath) + + # disconnect from datastore + del bucket_connector + except Exception as err: + raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno)) +``` + +## Another example + +Below is an example code which uploads an image to a bucket from a simple URL. + +```python +from forepaas.dwh import connect + +data_store = connect('data_store') + +# Get bucket and upload image from URL to path forepaas/test.jpg. +# And finally get the image from the bucket +bucket_test = data_store.get_bucket('test') + +lists = bucket_test.list(recursive=True) + +bucket_test.put_request("https://i.stack.imgur.com/r8jTK.jpg", path='forepaas/test.jpg') +data = bucket.get('hello/test.jpg') + +# Create a bucket if it does not already exists +if data_store.bucket_exists('test-exists') is False: + data_store.create_bucket('test-exists') + +# Connect directly to the bucket test and remove the file +bucket_test2 = connect('data_store/test') +bucket_test2.delete('hello/test.jpg') +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/meta.yaml new file mode 100644 index 00000000000..b7082731b16 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-bucket/meta.yaml @@ -0,0 +1,2 @@ +id: b067a996-b339-451f-a4a0-c127c4c5a45f +full_slug: public-cloud-data-platform-technical-sdk-dpe-simple-use-cases-quick-start-bucket \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/guide.en-ie.md new file mode 100644 index 00000000000..77d16ef8c19 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/guide.en-ie.md @@ -0,0 +1,61 @@ +--- +title: "Custom Action with Lakehouse Manager tables" +updated: 2025-02-15 +--- + +## Objective + +This short example shows how to extract data from a table in Lakehouse Manager, transform it and then insert it or update the Lakehouse Manager. + +The code is written in [Custom Action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) context and it uses the *stations_rides* table from the [Getting Started](/pages/public_cloud/data_platform/getting-started/00-getting-started-index) Tutorial. If you did that tutorial, you can just copy and paste the code below to test it, otherwise you need to adapt it to your tables and data sources. + +> [!primary] +> Do not forget to build the table you use in the DM and then load it with a [DPE Load Action](/pages/public_cloud/data_platform/product/dpe/actions/load/00-load-index). You need to load your table before using the code below, otherwise it will not work. + +```python +import sys +import pandas as pd +import logging + +from forepaas.dwh import connect +from forepaas.dwh import bulk_insert + +logger = logging.getLogger(__name__) +def customfunc(event): + try: + logger.notice("Begin function") + + # make connection to the Prim DBMS + cn = connect("dwh/data_prim/") + + # option 1 : extract data from the table with no SQL required + df = cn.select("stations_rides") + + # option 2 : extract data with custom SQL + df = cn.query("SELECT station_id, date, rides, station_name FROM stations_rides") + + # perform your custom transform in the dataframe + df.loc[df["station_name"] == 'Harlem-Lake', "rides"] = 0 + + # reinsert your dataframe in the destination table + stats = bulk_insert(cn, "stations_rides", df) + + # show insertion statistics (if DBMS compatible) + logger.info(stats) + + # delete rows where station name is "Davis" + cn.delete("stations_rides", {"station_name":"Davis"}) + + # update rows set rides to 0 where station_id=40040 + cn.update("stations_rides", {"rides":0}, {"station_id":40040}) + + # when finished, disconnect cn + del cn + logger.notice("END function") + except Exception as err: + raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno)) +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/meta.yaml new file mode 100644 index 00000000000..6a9d26207ab --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-dm/meta.yaml @@ -0,0 +1,2 @@ +id: 8052e767-3124-4586-b7ba-80ec54845a84 +full_slug: public-cloud-data-platform-technical-sdk-dpe-simple-use-cases-quick-start-dm \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/guide.en-ie.md b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/guide.en-ie.md new file mode 100644 index 00000000000..d1a8692b4ef --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/guide.en-ie.md @@ -0,0 +1,62 @@ +--- +title: "Custom Action with Data Catalog source directly" +updated: 2025-02-15 +--- + +## Objective + +This example will show you how to get a file directly from a [Data Catalog Source](/pages/public_cloud/data_platform/product/data-catalog/sources/00-sources-index), treat it and put the treated data into a [Lakehouse Manager Table](/pages/public_cloud/data_platform/product/lakehouse-manager/tables/00-tables-index). + +The code is written in the [Custom Action](/pages/public_cloud/data_platform/product/dpe/actions/custom/00-custom-index) context and it uses the *chicago_files* source from the [Getting Started Tutorial](/pages/public_cloud/data_platform/getting-started/00-getting-started-index). If you did that tutorial, you can just copy and paste the code below to test it, otherwise you need to adapt it to your tables and data sources. + +> [!primary] +> **Tip** : This works with any `Source` protocol such as [FTP](/pages/public_cloud/data_platform/product/data-catalog/sources/connectors/ftp), [Dropbox](/pages/public_cloud/data_platform/product/data-catalog/sources/connectors/dropbox), etc. + +```python +import sys +from forepaas.dwh.connect import connect +from forepaas.dwh import bulk_insert +import logging + +logger = logging.getLogger(__name__) + +def customfunc(event): + try: + # here we are connecting to a source named 'chicago_files' + source_address = "dwh/chicago_files_artur/" + + # specfify unsupported filename from list of files in source + filename_w_extension = "stations_rides.csv" + + # connecto to file toget the address + source_file_connector = connect(source_address + filename_w_extension) + + # connect to file directly + file_address = source_file_connector.get() + file_connector = connect(file_address) + + # Extract and treat the file so it is usable + df = file_connector.extract(return_type='dataframe') + + # Treat the data + # - - - - + + # connect to the Lakehouse Manager + dm_connector = connect("dwh/data_prim/") + + # insert into an existing destination table + stats = bulk_insert(dm_connector, "chicago_calendar_full", df) + + logger.info(stats) + + # disconnect from datastore and remote source + del source_connector + del dm_connector + + except Exception as err: + raise Exception(f"err:{err} L:{sys.exc_info()[2].tb_lineno}") +``` + +## Go further + +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/meta.yaml b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/meta.yaml new file mode 100644 index 00000000000..9af46acec03 --- /dev/null +++ b/pages/public_cloud/data_platform/technical/sdk/dpe/simple-use-cases/quick-start-source/meta.yaml @@ -0,0 +1,2 @@ +id: ba922efb-f952-41a6-bbc6-283da48ef2ea +full_slug: public-cloud-data-platform-technical-sdk-dpe-simple-use-cases-quick-start-source \ No newline at end of file