From 66623db148176507e124fafb1241016bc2f1aa11 Mon Sep 17 00:00:00 2001 From: Anne-Laure Date: Wed, 6 Mar 2024 00:06:56 +0100 Subject: [PATCH] SDKTECHNO-259 Rewrite the README files for app technologies + the principal README --- README.md | 81 ++-- technologies/app/airbyte/README.md | 62 +-- technologies/app/airbyte/metadata.yaml | 4 +- technologies/app/airbyte/technology.yaml | 4 +- technologies/app/apache-superset/README.md | 40 +- .../app/apache-superset/metadata.yaml | 4 +- .../app/apache-superset/technology.yaml | 4 +- technologies/app/cloudbeaver/dockerhub.md | 8 +- technologies/app/cloudbeaver/metadata.yaml | 4 +- technologies/app/cloudbeaver/technology.yaml | 4 +- technologies/app/dash/README.md | 113 +++-- technologies/app/dash/metadata.yaml | 4 +- technologies/app/dash/technology.yaml | 4 +- technologies/app/docker/metadata.yaml | 2 +- technologies/app/grafana-8.2/README.md | 28 +- technologies/app/grafana-8.2/metadata.yaml | 4 +- technologies/app/grafana-8.2/technology.yaml | 4 +- technologies/app/grafana/README.md | 34 +- technologies/app/grafana/metadata.yaml | 4 +- technologies/app/grafana/technology.yaml | 4 +- technologies/app/jupyter/README.md | 401 +++++++++--------- technologies/app/jupyter/ToDo.md | 6 +- technologies/app/jupyter/dockerhub.md | 8 +- technologies/app/jupyter/metadata.yaml | 4 +- technologies/app/jupyter/technology.yaml | 4 +- technologies/app/kibana/README.md | 102 ++--- technologies/app/kibana/dockerhub.md | 8 +- technologies/app/kibana/metadata.yaml | 4 +- technologies/app/kibana/technology.yaml | 4 +- technologies/app/metabase/README.md | 39 +- technologies/app/metabase/metadata.yaml | 4 +- technologies/app/metabase/technology.yaml | 4 +- technologies/app/mlflow-server/README.md | 183 ++++---- technologies/app/mlflow-server/metadata.yaml | 4 +- .../app/mlflow-server/technology.yaml | 6 +- technologies/app/nifi/README.md | 92 ++-- technologies/app/nifi/dockerhub.md | 8 +- technologies/app/nifi/metadata.yaml | 4 +- technologies/app/nifi/technology.yaml | 4 +- technologies/app/orientdb/README.md | 108 ++--- technologies/app/orientdb/dockerhub.md | 10 +- technologies/app/orientdb/metadata.yaml | 4 +- technologies/app/orientdb/technology.yaml | 4 +- technologies/app/pgadmin4/README.md | 45 +- technologies/app/pgadmin4/metadata.yaml | 4 +- technologies/app/pgadmin4/technology.yaml | 4 +- technologies/app/rstudio/README.md | 74 ++-- technologies/app/rstudio/dockerhub.md | 8 +- technologies/app/rstudio/metadata.yaml | 4 +- technologies/app/rstudio/technology.yaml | 4 +- .../saagie-hf-modelserver-textclf/README.md | 68 +-- .../metadata.yaml | 4 +- .../technology.yaml | 4 +- .../app/saagie-usage-monitoring/README.md | 65 +-- .../app/saagie-usage-monitoring/metadata.yaml | 4 +- .../saagie-usage-monitoring/technology.yaml | 4 +- .../app/spark-history-server/README.md | 33 +- .../app/spark-history-server/metadata.yaml | 4 +- .../app/spark-history-server/technology.yaml | 4 +- technologies/app/vscode/README.md | 66 ++- technologies/app/vscode/metadata.yaml | 6 +- technologies/app/vscode/technology.yaml | 6 +- technologies/app/zeppelin/README.md | 124 +++--- technologies/app/zeppelin/dockerhub.md | 8 +- technologies/app/zeppelin/metadata.yaml | 4 +- technologies/app/zeppelin/technology.yaml | 4 +- 66 files changed, 1033 insertions(+), 949 deletions(-) diff --git a/README.md b/README.md index 9fc15f333..ee7405dea 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Saagie Technologies - [![GitHub release](https://img.shields.io/github/release/saagie/technologies?style=for-the-badge)][releases] [![GitHub release date](https://img.shields.io/github/release-date/saagie/technologies?style=for-the-badge&color=blue)][releases] @@ -19,68 +18,80 @@ [build_promote]: https://github.com/saagie/technologies/actions?query=workflow%3APROMOTE [build_modified]: https://github.com/saagie/technologies/actions?query=workflow%3A%22BUILD+ONLY+MODIFIED%22 -This repository contains all certified technologies used in Saagie. -It also contains some experimental technologies before being certified. +This repository contains all the certified technologies used in Saagie. +It also includes some technologies that are still in the experimental phase. -For information about using these technologies with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use these technologies with your Saagie platform, see the official Saagie documentation. -## CONTRIBUTING +## How to contribute to this repository? -All contributions are made via Github Pull Requests. +All contributions are made with Github pull requests. -### Build +## About the build -The build is using [Gradle](https://gradle.org/) +The build uses Gradle. -Launch the Gradle task `localBuildModifiedJobs` or `localBuildModifiedApps` to build locally the technology modified locally: +Launch the Gradle task `localBuildModifiedJobs` or `localBuildModifiedApps` to build the modified technology locally: ./gradlew localBuildModifiedJobs ./gradlew localBuildModifiedApps -### CI +### Continuous Integration (CI) -The build is running using a Github Action workflow (build only modified). It builds only technologies modified and generate a pre release containing assets. The name of the pre release = current version + name of the branch. +The build is executed using a Github Action workflow called `BUILD ONLY MODIFIED`. It builds only the modified technologies and generates a pre-release containing the assets. The name of the pre-release is `the current version + the branch name`. ### Structure -The build is using the [Gradle plugin for Saagie technologies repository](https://github.com/saagie/technologies-plugin). It expects a specific directory structure: -- `technologies`: the required base directory. It contains sub directories for each type of technology metadata: --- `app`: contains folders of each app technology --- `job`: contains folders of each job technology --- `connectiontype`: contains folders of each connection type --- `scripts` is a sub directory dedicated to external technologies which share the same javascript files +The build is based on our Gradle plugin for the Saagie technology repository. It expects to see a specific directory structure, which includes: + +- The `technologies` directory: This is the base directory required. It contains subdirectories for each type of technology metadata. + - The `app` subdirectory: It contains folders for each app technology. + - The `job` subdirectory: It contains folders for each job technology. + - The `connectiontype` subdirectory: It contains folders for each connection type. + - The `scripts` subdirectory: It is dedicated to external technologies that share the same JavaScript files. +- A `metadata.yaml` file for each metadata folder. For `job` and `app` technology metadata, the build automatically generates them from the `technology.yaml` file and from each `context.yaml` found in the subfolders. -Each metadata folder must then contain a `metadata.yaml` file. For `job` and `app` technology metadata, the build is automatically generating them from the `technology.yaml` file and each `context.yaml` found in the sub folders. +> [!NOTE] +> Generated files, such as `metadata.yaml`, `.js` files, and others, must be checked in Git, as the build tries to avoid rebuilding technologies that have not been modified. -NOTE: Generated files (metadata.yaml, js files, etc..) need to be checked in git, since the build is trying to avoid rebuilding technologies which didn't change. +#### Docker-based technologies -#### Docker based technologies +> [!NOTE] +> These technologies are not external. They are based on a Docker image and embedded in Saagie. -For each context of a job (non external, based on an Docker image) or of an app technology, the folder dedicated to the context must then contain: -- `build.gradle.kts` which apply the `SaagieTechnologiesGradlePlugin` and the `DockerRemoteApiPlugin`. -- `Dockerfile` which declares how to build the Docker image -- `image_test.yml`: if present, the generated Docker image will be tested with the [GoogleContainerTools/container-structure-test](https://github.com/GoogleContainerTools/container-structure-test) +For each job or app technology context, there must be a context-specific folder that includes: +- A `build.gradle.kts` file, which is mandatory. It applies the `SaagieTechnologiesGradlePlugin` and the `DockerRemoteApiPlugin` Gradle tasks. +- A `Dockerfile` file, which is mandatory. It declares how to build the Docker image. +- A `image_test.yml` file, which is optional. If present, the generated Docker image will be tested with the GoogleContainerTools/container-structure-test project. #### External technologies -For contexts of an external job technology, the `context.yaml` file will reference javascript files, relatively to its location. The referenced javascript files should be generated by a dedicated javascript build. +> [!NOTE] +> These technologies are external. They are not part of Saagie. -The build of such javascript files can be setup anywhere in the directory structure, as long as the relative path is proprely filled in the `context.yaml` file. +Each context of an external job technology has its dedicated `context.yaml` file, in which JavaScript files are referenced. The JavaScript files can be placed anywhere in the directory structure, as long as the relative path is proprely filled in the `context.yaml` file. These referenced `.js` files must be generated by a dedicated JavaScript build. -The Saagie Gradle plugin can be used to trigger the build of the javascript file in the CI. It needs: -- a `build.gradle.kts` which apply the `SaagieTechnologiesGradlePlugin` and the `NodePlugin`. -- a `package.json` with a `build` and `test` scripts. +Saagie’s Gradle plugin can be used to trigger the build of these JavaScript files in the CI. For that, your external technology context folder must include: +- A `build.gradle.kts` file, which is mandatory. It applies the `SaagieTechnologiesGradlePlugin` and the `NodePlugin` Gradle tasks. +- A `package.json` file, which is mandatory. This file includes a `build` script and a `test` script. -The Saagie Gradle plugin will launch [Yarn](https://yarnpkg.com/) to install depednencies and run the scripts to build and test the javascript files. +Saagie’s Gradle plugin will launch Yarn to install dependencies and run the scripts to build and test JavaScript files. -### Developping an External Job Technology +#### Build an external job technology -It is highly recommended to use the [Saagie SDK](https://github.com/saagie/sdk) when developping an external job technology. +> [!IMPORTANT] +> We strongly recommend that you use the Saagie SDK repository to develop your external job technologies. The Saagie SDK will help you to create your own technologies and integrate them into your Saagie platform. For more information, see our documentation on Saagie SDK. -In technologies which doesn't share scripts with other technologies, it should be already setup. For instance, in the technology folder of `dataiku`, just run `yarn dev` and the build of the javascript files will be running with the watch mode, and the SDK webapp will start. +For technologies that do not share the same scripts with other technologies, it should already be setup. +
For example, in the `dataiku` folder, run `yarn dev` to build the JavaScript files with the watch mode and start the SDK webapp. +> [!NOTE] +> What is _watch mode_? +>
After the task is completed, the tool enters a loop where it watches the file system for changes to your source files. Whenever a change is detected, the task runs again to update its output. -For technologies which share javascript files, like `aws`, `gcp` or `azure`, the setup is split in two parts. In the folder dedicated to the shared scripts, run `yarn dev` to run the build with the watch mode. Then in the folder dedicated to the technology to develop, like `aws-lambda`, run `npx @saagie/sdk start` to start the SDK webapp. +For technologies that share `.js` scripts with other technologies, such as `aws`, `gcp`, or `azure`, the setup is split into two parts. +1. In the folder dedicated to the shared scripts, run `yarn dev` to execute the build with the watch mode. +2. In the folder dedicated to the technology to be developed, such as `aws-lambda`, run `npx @saagie/sdk start` to start the SDK webapp. ### Promotion -When the pull-request is merged in master, another Github action (running a gradle task) starts. It will retag docker images with branch name into a "production" name and generate a real release (and delete the pre release) +When the pull-request is merged into `master`, another GitHub action starts. This action will run a Gradle task to re-tag the Docker images with the branch name to a “production” name. It will then generate a real release, deleting the pre-release. \ No newline at end of file diff --git a/technologies/app/airbyte/README.md b/technologies/app/airbyte/README.md index fc4b49bc8..daccf1bb3 100644 --- a/technologies/app/airbyte/README.md +++ b/technologies/app/airbyte/README.md @@ -1,35 +1,45 @@ -# Airbyte - ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/saagie/airbyte/1.0) -## Description +> [!NOTE] +> A project can create its own Airbyte connections without being seen by other projects, whereas there is only one user on the Airbyte Open-Source (OSS) version. For more details on the limitation of Airbyte OSS, see the Airbyte Open Source documentation. + +## How to launch Airbyte? + +To make Airbyte work on your platform, you must meet the following requirements. + +1. Ask Saagie a VM containing Airbyte. To do so, open a ticket at the Saagie Help Center. +2. Once your VM has been created, you will receive the information required to configure Airbyte in Saagie, that is, your credentials and URL of the VM you have requested. Remember them for the next step. +3. On your Saagie platform, create the following environment variables: -This folder contains the image of the redirection to the VM containing the OSS version of Airbyte allowing the creation of data flows. + | Name | Value | + |--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `AIRBYTE_URL` | This is the URL of the VM containing Airbyte. | + | `AIRBYTE_LOGIN` | This is the login of the VM containing Airbyte. | + | `AIRBYTE_PASSWORD` | This is the password of the VM containing Airbyte. | + | `SAAGIE_URL` | This is the URL of your Saagie platform.
For example, `https://saagie-workspace.prod.saagie.io`. | + | `SAAGIE_PLATFORM_ID` | This is the ID of your Saagie platform. The default value is `1`. | + | `SAAGIE_LOGIN` | This is the Saagie platform user login.
**IMPORTANT**: Make sure this user have editor rights to the corresponding project, that is, the project you will be referencing for `SAAGIE_PROJECT_NAME`. | + | `SAAGIE_PASSWORD` | This is the Saagie platform user password.
**NOTE**: The user credentials referenced here and in the `SAAGIE_PASSWORD` environment variable are required for project management. Any other user who has access to the project will be able to use the Airbyte app as well. | + | `SAAGIE_PROJECT_NAME` | This is the name of your Saagie project. | + | `AIRBYTE_WORKSPACE_NAME` | This is the Airbyte workspace name. If not configured, it will retrieve the value of the `SAAGIE_PROJECT_NAME` environment variable. | +4. You can now access Airbyte in the following ways: + - as a Saagie app. + - as an API. -A project can create his own Airbyte connections without being seen by other projects while there is only one single user on the OSS version of Airbyte. -For more details about the limitation of OSS version of Airbyte, click [here](https://airbyte.com/airbyte-open-source) +*** +> _For more information on Airbyte, see the official documentation._ -## How to build in local -Inside the `airbyte` folder corresponding to your version, run : -``` -docker build -t saagie/airbyte: . -docker push saagie/airbyte: -``` + \ No newline at end of file diff --git a/technologies/app/airbyte/metadata.yaml b/technologies/app/airbyte/metadata.yaml index b7442d159..00f0017a6 100644 --- a/technologies/app/airbyte/metadata.yaml +++ b/technologies/app/airbyte/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: airbyte label: Airbyte -baseline: "Airbyte is a cloud-native, open-source data integration platform" -description: " Airbyte is a powerful data integration tool that can help organizations streamline their data workflows and ensure the accuracy and reliability of their data." +baseline: "Airbyte is a cloud-native and open-source data integration platform." +description: "Airbyte's features enable you to easily connect date sources and destinations, ensuring that data is moved efficiently and accurately between systems." available: true icon: airbyte defaultResources: diff --git a/technologies/app/airbyte/technology.yaml b/technologies/app/airbyte/technology.yaml index 50fe09231..423d5b43b 100644 --- a/technologies/app/airbyte/technology.yaml +++ b/technologies/app/airbyte/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: airbyte label: Airbyte -baseline: "Airbyte is a cloud-native, open-source data integration platform" -description: " Airbyte is a powerful data integration tool that can help organizations streamline their data workflows and ensure the accuracy and reliability of their data." +baseline: "Airbyte is a cloud-native and open-source data integration platform." +description: "Airbyte's features enable you to easily connect date sources and destinations, ensuring that data is moved efficiently and accurately between systems." available: true icon: airbyte defaultResources: diff --git a/technologies/app/apache-superset/README.md b/technologies/app/apache-superset/README.md index 0c51a7513..e9b472256 100644 --- a/technologies/app/apache-superset/README.md +++ b/technologies/app/apache-superset/README.md @@ -1,22 +1,30 @@ -# Apache Superset +## How to launch Apache Superset? -## Description -This directory contains version of Apache Superset contenairized and customized for Saagie Platform. -See Apache Superset official documentation for more information https://superset.apache.org/docs/intro +To make Apache Superset work on your platform, you must meet the following requirements. -## How to build in local +1. On your Saagie platform, create the following environment variable: -Inside the `apache-superset-x.y` folder corresponding to your version, run : -``` -docker build -t saagie/apache-superset- . -docker push saagie/apache-superset- -``` + | Name | Value | + |----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `SUPERSET_ADMIN_PASSWORD` | This is the password of the Superset admin user.
**NOTE**: The default admin user login is `admin`. You can change it after your first connection. | -## Job/App specific information -You have to set the following environment variables: -- `SUPERSET_ADMIN_PASSWORD`: the password of admin user for Superset +> [!NOTE] +> Apache Superset does not support basic URL configuration. The app relies on `nginx` sub-filters that rewrite hard-coded URLs to HTML, such as assets. This solution works, but is not optimal, as it requires disabling GZip compression. Hard-coded URLs in JavaScript are directly replaced in the Python lib folder on startup. For more information, see the `assets/entrypoint.sh` file. -Default admin user login is `admin`. You can change them after your first connection. +*** +> _For more information on Apache Superset, see the official documentation._ -## Improvements -Apache Superset does not support the configuration of a base url so currently this app relies on nginx subfilters that rewrites hardcoded urls (such as assets for instance) in html. This works but is not optimal and requires to disable gzip compression. Hardcoded urls in javascript are replaced during startup direclty in the python lib folder (see `entrypoint.sh`). + + \ No newline at end of file diff --git a/technologies/app/apache-superset/metadata.yaml b/technologies/app/apache-superset/metadata.yaml index e36d513c4..e243e71fd 100644 --- a/technologies/app/apache-superset/metadata.yaml +++ b/technologies/app/apache-superset/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: apache-superset label: Apache Superset -baseline: "Apache Superset is a modern data exploration and visualization platform" -description: "Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts" +baseline: "Apache Superset is an open-source modern data exploration and visualization platform." +description: "Apache Superset is fast, lightweight, and intuitive. It is loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple pie charts to highly detailed geospatial charts." available: true icon: superset defaultResources: diff --git a/technologies/app/apache-superset/technology.yaml b/technologies/app/apache-superset/technology.yaml index fe0aecd09..48db2aefc 100644 --- a/technologies/app/apache-superset/technology.yaml +++ b/technologies/app/apache-superset/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: apache-superset label: Apache Superset -baseline: "Apache Superset is a modern data exploration and visualization platform" -description: "Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts" +baseline: "Apache Superset is an open-source modern data exploration and visualization platform." +description: "Apache Superset is fast, lightweight, and intuitive. It is loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple pie charts to highly detailed geospatial charts." available: true icon: superset defaultResources: diff --git a/technologies/app/cloudbeaver/dockerhub.md b/technologies/app/cloudbeaver/dockerhub.md index 1690e19c6..f86617247 100644 --- a/technologies/app/cloudbeaver/dockerhub.md +++ b/technologies/app/cloudbeaver/dockerhub.md @@ -1,7 +1,7 @@ -# Jupyter Notebook - customized by and for Saagie +# Jupyter Notebook – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/cloudbeaver/metadata.yaml b/technologies/app/cloudbeaver/metadata.yaml index e2fa2c319..4fea814cb 100644 --- a/technologies/app/cloudbeaver/metadata.yaml +++ b/technologies/app/cloudbeaver/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: cloudbeaver label: CloudBeaver -baseline: Free Universal Database Tool -description: CloudBeaver is free and open source product that already supports the most popular open source databases, such us PostgreSQL, MySQL, MariaDB, SQLite and Firebird. +baseline: "CloudBeaver is an open-source technology designed to manage and administer databases." +description: "Designed for comprehensive data management, CloudBeaver simplifies interaction with multiple databases, including SQL, NoSQL and cloud-based databases. All from a single interface. It also provides an easy-to-use graphical interface to run queries, view and edit data, and perform other database administration tasks." available: true icon: cloudbeaver defaultResources: diff --git a/technologies/app/cloudbeaver/technology.yaml b/technologies/app/cloudbeaver/technology.yaml index c05650562..3addefd09 100644 --- a/technologies/app/cloudbeaver/technology.yaml +++ b/technologies/app/cloudbeaver/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: cloudbeaver label: CloudBeaver -baseline: Free Universal Database Tool -description: CloudBeaver is free and open source product that already supports the most popular open source databases, such us PostgreSQL, MySQL, MariaDB, SQLite and Firebird. +baseline: "CloudBeaver is an open-source technology designed to manage and administer databases." +description: "Designed for comprehensive data management, CloudBeaver simplifies interaction with multiple databases, including SQL, NoSQL and cloud-based databases. All from a single interface. It also provides an easy-to-use graphical interface to run queries, view and edit data, and perform other database administration tasks." available: true icon: cloudbeaver defaultResources: diff --git a/technologies/app/dash/README.md b/technologies/app/dash/README.md index c947475ad..231867e02 100644 --- a/technologies/app/dash/README.md +++ b/technologies/app/dash/README.md @@ -1,77 +1,76 @@ -# Dash - customized by Saagie +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official Python Docker image, python:3.8-slim. -This Docker image is available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/dash) is based on the official [python:3.8-slim](https://hub.docker.com/_/python) image. +## How to launch Dash? -It is specially designed to run on Saagie's V2 platform. +To make Dash work on your platform, you must meet the following requirements. -It adds a few features, such as: -* Automatically checkout a git project located at : **${DASH_GIT_URL_REPOSITORY}** -* By default checkout the **master** branch -* If provided checkout branch : **${DASH_GIT_BRANCH}** -* Then install files in app **requirements.txt** files -* And finally launches **app.py** +1. On your Saagie platform, create the following environment variables: + | Name | Value | + |---------------------------|--------------------------------------------------------------------------| + | `DASH_GIT_URL_REPOSITORY` | This is the URL of the Git repository from which Dash is to be deployed. | + | `DASH_GIT_BRANCH` | This is the Git branch to checkout.
For example, `master`. | -## Build the image + This will automatically checkout the Git project and Git branch specified in the environment variables when installing the app. +2. Verify that the `app.py` file of your Dash app have the `host` parameter set to `0.0.0.0`. This tells your operating system to listen on all network interfaces, including your LAN. + ``` + if __name__ == "__main__": + app.run_server(debug=True, host='0.0.0.0') + ``` +*** +> _For more information on Dash, see the official documentation._ -### Using gradle build -This gradle build is based on [Saagie's technology plugin](https://github.com/saagie/technologies-plugin). + \ No newline at end of file diff --git a/technologies/app/dash/metadata.yaml b/technologies/app/dash/metadata.yaml index c3ba0b449..6c4dd50c6 100644 --- a/technologies/app/dash/metadata.yaml +++ b/technologies/app/dash/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: dash label: Dash -baseline: Dash Enterprise is the end-to-end development & deployment platform for low-code AI Dash applications. -description: The Dash platform empowers data science teams to focus on the data and models, while producing and sharing enterprise-ready analytic apps that sit on top of Python and R models. +baseline: "Dash Enterprise is the end-to-end development and deployment platform for low-code Dash apps." +description: "Dash Enterprise is a platform for operationalizing data science initiatives. It allows data science teams to focus on data and models, while producing and deploying ready-to-use analytical apps based on Python and R models." available: true icon: dash backgroundColor: "#3F4F75" diff --git a/technologies/app/dash/technology.yaml b/technologies/app/dash/technology.yaml index 8ad8df0c3..62779f553 100644 --- a/technologies/app/dash/technology.yaml +++ b/technologies/app/dash/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: dash label: Dash -baseline: Dash Enterprise is the end-to-end development & deployment platform for low-code AI Dash applications. -description: The Dash platform empowers data science teams to focus on the data and models, while producing and sharing enterprise-ready analytic apps that sit on top of Python and R models. +baseline: "Dash Enterprise is the end-to-end development and deployment platform for low-code Dash apps." +description: "Dash Enterprise is a platform for operationalizing data science initiatives. It allows data science teams to focus on data and models, while producing and deploying ready-to-use analytical apps based on Python and R models." available: true icon: dash backgroundColor: "#3F4F75" diff --git a/technologies/app/docker/metadata.yaml b/technologies/app/docker/metadata.yaml index b31c24ffc..c37a55ece 100644 --- a/technologies/app/docker/metadata.yaml +++ b/technologies/app/docker/metadata.yaml @@ -3,7 +3,7 @@ type: APP id: docker-app label: Docker image baseLine: Docker container technology. -description: A generic Docker image that can be used to execute code in a Docker container +description: This is a generic Docker image that can be used to execute code in a Docker container. available: true icon: generic-app customFlags: ["GenericApp"] diff --git a/technologies/app/grafana-8.2/README.md b/technologies/app/grafana-8.2/README.md index ea73068c4..93ee8ba5d 100644 --- a/technologies/app/grafana-8.2/README.md +++ b/technologies/app/grafana-8.2/README.md @@ -1,18 +1,26 @@ -# Grafana + + ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/saagie/grafana/8.2.1?label=8.2.1%20image%20size&style=for-the-badge) -## Description -This directory contains version of Grafana contenairized and customized for Saagie Platform. -See Grafana official documentation for more information https://grafana.com/docs/grafana/latest/ +For more information on Grafana, see the [official documentation](https://grafana.com/docs/grafana/latest/). + +## How to launch Grafana? + +To make Grafana work on your platform, you must meet the following requirements. + +1. On your Saagie platform, create the following project environment variable: -## How to build in local + | Name | Value | + |-------------------------------------------------|------------------------------------------------------| + | `GRAFANA_ADMIN_PASSWORD` | This is the password of the Grafana admin user. | + > [!NOTE] + > The default admin user login is `admin`. You can change it after your first connection. -Inside the `grafana-x.y.z` folder corresponding to your version, run : +## How to build the image in local? + +Inside the `grafana-x.y.z` folder corresponding to your version, run the following command lines: ``` docker build -t saagie/grafana: . docker push saagie/grafana: ``` - - -## Job/App specific information -Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable. +Where `` must be replaced with the version number. diff --git a/technologies/app/grafana-8.2/metadata.yaml b/technologies/app/grafana-8.2/metadata.yaml index 1968bc366..1d3b6b50b 100644 --- a/technologies/app/grafana-8.2/metadata.yaml +++ b/technologies/app/grafana-8.2/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: grafana-8.2 label: Grafana 8.2 -baseline: "The open-source platform for monitoring and observability. Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable." -description: "Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture." +baseline: "Grafana is an open-source data visualization platform for monitoring and observability." +description: "Grafana is a visualization and dashboard platform that allows you to query, visualize, alert on, and understand your metrics, logs, and traces no matter where they are stored." available: false icon: grafana backgroundColor: "#1857B8" diff --git a/technologies/app/grafana-8.2/technology.yaml b/technologies/app/grafana-8.2/technology.yaml index c7197d7f7..4069604fb 100644 --- a/technologies/app/grafana-8.2/technology.yaml +++ b/technologies/app/grafana-8.2/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: grafana-8.2 label: Grafana 8.2 -baseline: "The open-source platform for monitoring and observability. Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable." -description: "Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture." +baseline: "Grafana is an open-source data visualization platform for monitoring and observability." +description: "Grafana is a visualization and dashboard platform that allows you to query, visualize, alert on, and understand your metrics, logs, and traces no matter where they are stored." available: false icon: grafana backgroundColor: "#1857B8" diff --git a/technologies/app/grafana/README.md b/technologies/app/grafana/README.md index ea73068c4..9d53fa207 100644 --- a/technologies/app/grafana/README.md +++ b/technologies/app/grafana/README.md @@ -1,18 +1,28 @@ -# Grafana ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/saagie/grafana/8.2.1?label=8.2.1%20image%20size&style=for-the-badge) -## Description -This directory contains version of Grafana contenairized and customized for Saagie Platform. -See Grafana official documentation for more information https://grafana.com/docs/grafana/latest/ +## How to launch Grafana? -## How to build in local +To make Grafana work on your platform, you must meet the following requirements. -Inside the `grafana-x.y.z` folder corresponding to your version, run : -``` -docker build -t saagie/grafana: . -docker push saagie/grafana: -``` +1. On your Saagie platform, create the following environment variable: + | Name | Value | + |--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `GF_SECURITY_ADMIN_PASSWORD` | This is the password of the Grafana admin user.
**NOTE**: The default admin user login is `admin`. You can change it after your first connection. | -## Job/App specific information -Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable. +*** +> _For more information on Grafana, see the official documentation._ + + diff --git a/technologies/app/grafana/metadata.yaml b/technologies/app/grafana/metadata.yaml index 5d1d7df99..276b18755 100644 --- a/technologies/app/grafana/metadata.yaml +++ b/technologies/app/grafana/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: grafana label: Grafana -baseline: The open-source platform for monitoring and observability. Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable. -description: Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. +baseline: "Grafana is an open-source data visualization platform for monitoring and observability." +description: "Grafana is a visualization and dashboard platform that allows you to query, visualize, alert on, and understand your metrics, logs, and traces no matter where they are stored." available: true icon: grafana defaultResources: diff --git a/technologies/app/grafana/technology.yaml b/technologies/app/grafana/technology.yaml index 87d6e0765..8eb1ab6a1 100644 --- a/technologies/app/grafana/technology.yaml +++ b/technologies/app/grafana/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: grafana label: Grafana -baseline: The open-source platform for monitoring and observability. Default admin login is `admin`. Default admin password must be set with the GRAFANA_ADMIN_PASSWORD environment variable. -description: Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. +baseline: "Grafana is an open-source data visualization platform for monitoring and observability." +description: "Grafana is a visualization and dashboard platform that allows you to query, visualize, alert on, and understand your metrics, logs, and traces no matter where they are stored." available: true icon: grafana defaultResources: diff --git a/technologies/app/jupyter/README.md b/technologies/app/jupyter/README.md index 6defa789d..902dcf4e9 100644 --- a/technologies/app/jupyter/README.md +++ b/technologies/app/jupyter/README.md @@ -1,227 +1,208 @@ -# Jupyter Datascience Notebook for Python - customized by Saagie +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official Jupyter Docker Stacks image, FROM jupyter/minimal-notebook:f9e77e3ddd6f. The chosen tag is the latest with a CDH5-compatible version of the Ubuntu OS. +> +> This Docker image relies on a first minimal image based on the official Jupyter image, plus some features required by the Saagie platform. It then provides the Saagie base image of Jupyter using the minimal image and includes all the Python libraries of the Saagie Python image. -This Docker image is officially available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/jupyter-python-nbk) and is based on the official [FROM jupyter/minimal-notebook:f9e77e3ddd6f](https://hub.docker.com/r/jupyter/minimal-notebook/) image. -(Note: the chosen tag is latest with an Ubuntu OS version compatible with CDH5) +## How to launch Jupyter Notebook? -It is specially designed to run on Saagie's platform v2. +To make Jupyter Notebook work on your platform, there are no special steps to take. -It relies upon a first minimal image based on Jupyter official one plus some features required by Saagie's platform. -Then it provides the Saagie base image of Jupyter using the minimal image and includes all the Python libraries from Saagie's Python image [saagie/python:3.6-1.46.0](https://hub.docker.com/r/saagie/python). +You can directly click **Install** to install your app. -## How to use jupyter_ai plugin +## How to use the `jupyter_ai` plugin? -In order to use the `jupyter_ai` plugin available for the context `JupyterLab+GenAI 4.0 Python 3.10`, -based on the model that you want to use, you have to create a new environment -variable in your Saagie project and set it to `your_credential`. +> [!IMPORTANT] +> You can use the `jupyter_ai` plugin only with the `JupyterLab+GenAI 4.0 Python 3.10` context. -For example, if you want to use the GPT model of OpenAI, you have to create a new environment variable named `OPENAI_API_KEY`. -For all the models, you can find the name of the environment variable in this [documentation](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers). +1. On your Saagie platform, create an environment variable that is based on the model provider you want to use: + | Name | Value | + |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `PROVIDER_KEY` | This is your API key for the model provider you want to use. Where `PROVIDER_KEY` must be replaced with the environment variable name of the desired provider. You can find all the models in the Jupyter AI documentation.
For example, if you want to use OpenAI's ChatGPT model, you must create an environment variable named `OPENAI_API_KEY`. For more information, see how to use Generative AI in Jupyter Notebook. | -## Build the image +## How to install libraries? -You can build the image with either Gradle or Docker. +The Jupyter app provided by Saagie already includes many libraries. They are listed below. -Gradle builds take place in the root of the project as a whole. -Docker builds take place in the directory for the individual technology. +However, if you need other libraries, install them by running the following command line: -### Using gradle build - -This gradle build is based on [Saagie's technology plugin](https://github.com/saagie/technologies-plugin). - -To build the project, go to the root of this project. -Then run: - -``` -./gradlew :jupyter-base:buildImage ``` - -If you want to test the image, you can run: -``` -./gradlew :jupyter-base:testImage +!pip install libraryName ``` - -### Using Docker commands - -First go to context/version sub-directory for the minimal image of the technology: - -``` -cd technologies/app/jupyter/jupyter-minimal -``` - -Then run the following command: -``` -docker build -t saagie/jupyter-python-nbk:v2-minimal . -``` -It builds the intermediate minimal image. - -Then go to the base folder -``` -cd ../jupyter-base -``` - -And run: -``` -docker build --build-arg BASE_CONTAINER=saagie/jupyter-python-nbk:v2-minimal -t saagie/jupyter-python-nbk:v2-app . -``` - - -## Run Jupyter container +Where `libraryName` must be replaced with the name of the desired library. + +
+ +Jupyter’s Main Libraries + +| Category | Library Name | +|---------------------|----------------------------------------------------------------------------------| +| Data Processing | - `numpy`
- `scipy`
- `pandas` | +| Machine Learning | - `sklearn`
- `keras`
- `statsmodel`
- `networkx` | +| Data Visualisation | - `skimage`
- `matplotlib`
- `bokeh`
- `mpld3`
- `folium` | +| Database connection | - `pyodbc`
- `hdfs`
- `impyla`
- `ibis-framework`
- `SQLAlchemy`
- `pymongo` | +| Utils | - `ipywidgets`
- `fiona`
- `shapely` | +
+ +
+ +Saagie Python Image Libraries + +- `addok` +- `apiclient` +- `automl` / `auto-sklearn` +- `beautifulsoup4` +- `bokeh` +- `bs4` +- `confluent-kafka` +- `crypto` +- `cython` +- `django` +- `dryscrape` +- `elasticsearch` +- `excel` +- `fastparquet` +- `fiona` +- `folium` +- `gensim` +- `geopandas` +- `geopy` +- `graphviz` +- `h5py` +- `hdfs[avro,dataframe,kerberos]` +- `ibis-framework` +- `imbalanced-learn` +- `impyla` +- `ipywidgets` +- `jellyfish` +- `joblib` +- `kafka-python` +- `keras` +- `lime` +- `llvmlite` +- `lxml` +- `matplotlib` +- `mpld3` +- `mysql-connector` +- `neo4j-driver` +- `networkx` +- `nltk` +- `numba` +- `numpy` +- `opencv-python` +- `openpyxl` +- `pandas` +- `pdfminer.six` +- `psycopg2` +- `pybrain` +- `pycrypto` +- `pycurl` +- `pydotplus` +- `pymongo` +- `pyodbc` +- `pyshp` +- `pytesseract` +- `python-levenshtein` +- `requests-kerberos` +- `scikit-image` +- `scikit-learn` +- `scipy` +- `scrapy` +- `seaborn` +- `setuptools` +- `shap` +- `shapely` +- `simplejson` +- `six` +- `spacy` +- `SQLAlchemy` +- `statsmodels` +- `tabula-py` +- `tensorflow` +- `tensorflow-gpu` +- `textract` +- `Theano` +- `thrift-sasl` +- `tika` +- `tokenizer` +- `torch` +- `torchvision` +- `tpot` +- `umap-learn` +- `wand` +- `xgboost` +- `xlwt` + +
+ +*** +> _For more information on Jupyter, see the official documentation_ + + + \ No newline at end of file diff --git a/technologies/app/jupyter/ToDo.md b/technologies/app/jupyter/ToDo.md index 1c59f4dd1..dff4c8999 100644 --- a/technologies/app/jupyter/ToDo.md +++ b/technologies/app/jupyter/ToDo.md @@ -1,6 +1,6 @@ -To Do tasks +To Do Tasks ============ - - Find a way to test libs that are not tested yet - - add Jupyter-Spark context from [Draft PR](https://github.com/saagie/jupyter-python-nbk/pull/21) + - Find a way to test libs that are not tested yet. + - Add Jupyter-Spark context from [Draft PR](https://github.com/saagie/jupyter-python-nbk/pull/21). \ No newline at end of file diff --git a/technologies/app/jupyter/dockerhub.md b/technologies/app/jupyter/dockerhub.md index 1690e19c6..f86617247 100644 --- a/technologies/app/jupyter/dockerhub.md +++ b/technologies/app/jupyter/dockerhub.md @@ -1,7 +1,7 @@ -# Jupyter Notebook - customized by and for Saagie +# Jupyter Notebook – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/jupyter/metadata.yaml b/technologies/app/jupyter/metadata.yaml index 5e5249171..6d3a22ccd 100644 --- a/technologies/app/jupyter/metadata.yaml +++ b/technologies/app/jupyter/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: jupyter label: Jupyter Notebook -baseline: Data Science Notebook. -description: The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualization and narrative text. +baseline: "Jupyter Notebook is a web-based notebook environment for interactive computing." +description: "Jupyter Notebook is a notebook authoring application. It is an open-source web application to create and share documents that contain live code, equations, visualization and narrative text." available: true icon: jupyter defaultResources: diff --git a/technologies/app/jupyter/technology.yaml b/technologies/app/jupyter/technology.yaml index 9d852e22f..0eb563c0e 100644 --- a/technologies/app/jupyter/technology.yaml +++ b/technologies/app/jupyter/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: jupyter label: Jupyter Notebook -baseline: Data Science Notebook. -description: The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualization and narrative text. +baseline: "Jupyter Notebook is a web-based notebook environment for interactive computing." +description: "Jupyter Notebook is a notebook authoring application. It is an open-source web application to create and share documents that contain live code, equations, visualization and narrative text." available: true icon: jupyter defaultResources: diff --git a/technologies/app/kibana/README.md b/technologies/app/kibana/README.md index 0e9d71b9f..2d9d3a7e5 100644 --- a/technologies/app/kibana/README.md +++ b/technologies/app/kibana/README.md @@ -1,70 +1,72 @@ -# Kibana - customized by Saagie +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official Elasticsearch Docker image, docker.elastic.co/kibana/kibana:7.15.1. -This Docker image is available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/kibana) and is based on the official [docker.elastic.co/kibana/kibana:7.15.1](https://www.elastic.co/guide/en/kibana/current/docker.html) image. +## How to launch Kibana? -It is designed to run on Saagie's V2 platform. +To make Kibana work on your platform, you must meet the following requirements. -# Environment Variables -There are 1 mandatory environment variable : - - `ELASTICSEARCH_HOSTS` (eg : http://my_elasticsearch_server:9200) +1. On your Saagie platform, create the following environment variable: + | Name | Value | + |-----------------------|-----------------------------------------------------------------------------------------| + | `ELASTICSEARCH_HOSTS` | This is the Elasticsearch host.
For example, `http://my_elasticsearch_server:9200`. | -## Build the image locally + Note that some versions have a different value for the `rewriteUrl` parameter in their `context.yaml` file. It can be set to `rewriteUrl : true`. In this case, you must replace the `ELASTICSEARCH_HOSTS` environment variable with `ELASTICSEARCH_URL`. + +*** +> _For more information on Kibana, see the official documentation_ -### Using gradle build -This gradle build is based on [Saagie's technology plugin](https://github.com/saagie/technologies-plugin). + \ No newline at end of file diff --git a/technologies/app/kibana/dockerhub.md b/technologies/app/kibana/dockerhub.md index 4ec1aba7c..ef982e483 100644 --- a/technologies/app/kibana/dockerhub.md +++ b/technologies/app/kibana/dockerhub.md @@ -1,7 +1,7 @@ -# Kibana - customized by and for Saagie +# Kibana – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/kibana/metadata.yaml b/technologies/app/kibana/metadata.yaml index 604e3b5f5..035693e7d 100644 --- a/technologies/app/kibana/metadata.yaml +++ b/technologies/app/kibana/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: kibana label: Kibana -baseline: Your window into the Elastic Stack. -description: Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack. +baseline: "Kibana is your window into the Elastic Stack." +description: "Kibana is an open-source tool. It is a browser-based analytics and search dashboard for Elasticsearch. It lets you visualize your Elasticsearch data and navigate the Elastic Stack." available: true icon: kibana defaultResources: diff --git a/technologies/app/kibana/technology.yaml b/technologies/app/kibana/technology.yaml index e83d8f98b..225db616c 100644 --- a/technologies/app/kibana/technology.yaml +++ b/technologies/app/kibana/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: kibana label: Kibana -baseline: Your window into the Elastic Stack. -description: Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack. +baseline: "Kibana is your window into the Elastic Stack." +description: "Kibana is an open-source tool. It is a browser-based analytics and search dashboard for Elasticsearch. It lets you visualize your Elasticsearch data and navigate the Elastic Stack." available: true icon: kibana defaultResources: diff --git a/technologies/app/metabase/README.md b/technologies/app/metabase/README.md index 5c56912f3..9b8063492 100644 --- a/technologies/app/metabase/README.md +++ b/technologies/app/metabase/README.md @@ -1,23 +1,28 @@ -# Metabase +> [!NOTE] +> This version of Metabase is bundled with Impala and Athena drivers. +> +> It comes with a local H2 table to store Metabase’s internal data. You can configure environment variables to use it with an external MySQL or PostgreSQL table. For more information on how to configure Metabase, see the documentation on environment variables. -## Description -This directory contains version of Metabase contenairized and customized for Saagie Platform. -See Metabase official documentation for more information https://www.metabase.com/docs/latest/ +## How to launch Metabase? -## How to build in local +To make Metabase work on your platform, you must meet the following requirements. -Inside the `metabase-x.y` folder corresponding to your version, run : -``` -docker build --build-arg METABASE_VERSION= -t saagie/metabase: . -docker push saagie/metabase: -``` +1. Create the default admin credentials the first time you log in. +2. **OPTIONAL**: If you want to use Athena, add the following connection string when configuring Athena in Metabase: `UseResultsetStreaming=0`. -## Job/App specific information -Default admin credentials are to be created during first login. +*** +> _For more information on Metabase, see the official documentation._ -## Configuration -This version comes with a local H2 table to store Metabase internal data. You can choose to use an external MySQL / PostgreSQL table to do so. This can be configured (among other parameters) through environment variables. Follow this [documentation](https://www.metabase.com/docs/latest/operations-guide/environment-variables.html) for more information. + \ No newline at end of file diff --git a/technologies/app/metabase/metadata.yaml b/technologies/app/metabase/metadata.yaml index 333c3c446..0e0ee9ce8 100644 --- a/technologies/app/metabase/metadata.yaml +++ b/technologies/app/metabase/metadata.yaml @@ -3,8 +3,8 @@ type: APP id: metabase label: Metabase available: true -baseline: "Metabase is an open source business intelligence tool. This version is bundled with Impala and Athena drivers" -description: "Metabase is an open source business intelligence tool. This version is bundled with Impala and Athena drivers" +baseline: "Metabase is an open-source business intelligence and analytics tool." +description: "Metabase is a tool that simplifies business intelligence, from embeddable charts and interactive dashboards, to GUI and SQL editors, to auditing and data sandboxing, and more. It allows you to query, explore, and visualize data from a variety of data destinations and sources." icon: metabase defaultResources: cpu: diff --git a/technologies/app/metabase/technology.yaml b/technologies/app/metabase/technology.yaml index 932f9ee94..356557470 100644 --- a/technologies/app/metabase/technology.yaml +++ b/technologies/app/metabase/technology.yaml @@ -3,8 +3,8 @@ type: APP id: metabase label: Metabase available: true -baseline: "Metabase is an open source business intelligence tool. This version is bundled with Impala and Athena drivers" -description: "Metabase is an open source business intelligence tool. This version is bundled with Impala and Athena drivers" +baseline: "Metabase is an open-source business intelligence and analytics tool." +description: "Metabase is a tool that simplifies business intelligence, from embeddable charts and interactive dashboards, to GUI and SQL editors, to auditing and data sandboxing, and more. It allows you to query, explore, and visualize data from a variety of data destinations and sources." icon: metabase defaultResources: cpu: diff --git a/technologies/app/mlflow-server/README.md b/technologies/app/mlflow-server/README.md index 7d33b8a20..4228fa799 100644 --- a/technologies/app/mlflow-server/README.md +++ b/technologies/app/mlflow-server/README.md @@ -1,99 +1,84 @@ -# MLflow Server - -## Description - -This directory contains a version of MLflow server containerized and customized for Saagie Platform. -Official documentation for MLFlow can be found [here](https://www.mlflow.org/docs/latest/index.html). - -This image is built from a **Python 3.7** official image and comes with : -- OpenJDK8 -- Hadoop 2.6 libraries in order to connect to HDFS (to push the different artifacts) - - -## Build - -### How to build it - -Inside the **mlflow-server** folder, run : - -```shell -docker build -t saagie/mlflow-server: . -docker push saagie/mlflow-server: -``` - -### Versionning - -The MLFlow Server docker image is tagged with the following format `-` where -- mlflow version : version of the [MLflow release](https://github.com/mlflow/mlflow/releases) -- Saagie revision : version of this docker image in the Saagie context - -For instance, the 3rd revision for Saagie of the MLFlow Server v1.13 will have the following image : `saagie/mlflow-server:1.13-3.0` - -### Updating MLFlow version - -Whenever you want to build a new MLFlow version for Saagie : - -1. Check the [release notes](https://github.com/mlflow/mlflow/releases) and make sure the new release does not introduce breaking changes. -2. Change the release number in the Dockerfile - -```docker -RUN pip install git+https://github.com/saagie/mlflow.git@vX.Y.Z -``` - -3. Build it -4. Test it locally -5. Push it if the tests are OK -6. Update the **metadata.yaml** file to reference this new tag -7. Update your catalog on Saagie with the up to date metadata file - - -| :warning: | Mlflow server will fail against a database-backed store with an out-of-date database schema. To prevent this, upgrade your database schema to the latest supported version using mlflow db upgrade [db_uri]. Schema migrations can result in database downtime, may take longer on larger databases, and are not guaranteed to be transactional. You should always take a backup of your database prior to running mlflow db upgrade - consult your database’s documentation for instructions on taking a backup. | -|-----------------|:-------------| - -## Run - -### Deploying - -Several environment variables should be set to run the MLflow server: - -- **MLFLOW_BACKEND_STORE_URI**: database-backed store as SQLAlchemy database URI `+://:@:/` MLflow supports the database dialects mysql, mssql, sqlite, and postgresql. -- **MLFLOW_DEFAULT_ARTIFACTORY_ROOT** : default location to server’s artifact store (e.g. `hdfs://cluster:8020/artifactory/mlflow` ) - -Once you have created an application with the MLflow server, don't forget to set the **MLFLOW_TRACKING_URI** environment variable with the url of the application you just created. - -### Accessing - -Once deployed on Saagie, your MLFlow Server instance can be accessed at `https:///app//5000/` - -### Using it in your code - -Example with a sklearn model training : - -```python -mlflow.set_tracking_uri(os.environ["MLFLOW_TRACKING_URI"]) -os.environ["MLFLOW_TRACKING_INSECURE_TLS"]="true" - -def train_rf_sklearn(nb_estimator,criterion, exp_id): - with mlflow.start_run(experiment_id=exp_id): - clf = RandomForestClassifier(n_estimators=nb_estimator, criterion=criterion) - clf.fit(train_x, train_y.values.ravel()) - predicted_surviving = clf.predict(test_x) - - score_accuracy = accuracy_score(test_y, predicted_surviving) - score_f1 = f1_score(test_y, predicted_surviving) - - print(" Accuracy: %s" % score_accuracy) - print(" F1: %s" % score_f1) - artifact_path = mlflow.get_artifact_uri() - print(" Artifact path: %s" % artifact_path) - - mlflow.log_param("n_estimators", nb_estimator) - mlflow.log_param("criterion", criterion) - mlflow.log_metric("accuracy", score_accuracy) - mlflow.log_metric("f1", score_f1) - mlflow.sklearn.log_model(clf, 'Sklearn') -``` - - - -In the **./example** folder you can find the full example (the Python app and a Notebook file) to get you started on MLFlow. +> [!NOTE] +> This Docker image is based on the official Python 3.7 Docker image and comes with OpenJDK 8 and Hadoop 2.6 libraries to connect to HDFS and push the different artifacts. + +## How to launch MLflow Server? + +To make MLflow Server work on your platform, you must meet the following requirements. + +1. On your Saagie platform, create the following environment variables: + + | Name | Value | + |-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `MLFLOW_BACKEND_STORE_URI` | This is the tracking URI of the backend store. Here, the backend store is a database that persists various metadata for each Run. Acceptable URIs are SQLAlchemy-compatible database connection strings encoded as `+://:@:/`. MLflow supports the dialects `mysql`, `mssql`, `sqlite`, and `postgresql`. For more information, see SQLAlchemy Database URLs. | + | `MLFLOW_DEFAULT_ARTIFACTORY_ROOT` | This is the default location to the server’s artifact store.
For example, `hdfs://cluster:8020/artifactory/mlflow`. | +2. Create your app. +3. Create the following environment variable: + + | Name | Value | + |-----------------------|----------------------------------------------| + | `MLFLOW_TRACKING_URI` | This is the URL of the app you just created. | +4. Run your app. +
You can now access your app at `https:///app//5000/`. + +> [!TIP] +> Here is a code example with a `sklearn` model training for a Python job: +> ```python +> mlflow.set_tracking_uri(os.environ["MLFLOW_TRACKING_URI"]) +> os.environ["MLFLOW_TRACKING_INSECURE_TLS"]="true" +> +> def train_rf_sklearn(nb_estimator,criterion, exp_id): +> with mlflow.start_run(experiment_id=exp_id): +> clf = RandomForestClassifier(n_estimators=nb_estimator, criterion=criterion) +> clf.fit(train_x, train_y.values.ravel()) +> predicted_surviving = clf.predict(test_x) +> +> score_accuracy = accuracy_score(test_y, predicted_surviving) +> score_f1 = f1_score(test_y, predicted_surviving) +> +> print(" Accuracy: %s" % score_accuracy) +> print(" F1: %s" % score_f1) +> artifact_path = mlflow.get_artifact_uri() +> print(" Artifact path: %s" % artifact_path) +> +> mlflow.log_param("n_estimators", nb_estimator) +> mlflow.log_param("criterion", criterion) +> mlflow.log_metric("accuracy", score_accuracy) +> mlflow.log_metric("f1", score_f1) +> mlflow.sklearn.log_model(clf, 'Sklearn') +> ``` +> You can find more examples in the `./example` folder to get you started with MLflow. + +*** +> _For more information on MLflow, see the official documentation._ + + + \ No newline at end of file diff --git a/technologies/app/mlflow-server/metadata.yaml b/technologies/app/mlflow-server/metadata.yaml index 59f62e80b..6154e0104 100644 --- a/technologies/app/mlflow-server/metadata.yaml +++ b/technologies/app/mlflow-server/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: mlflow label: MLFlow Server -baseline: An open source platform for the end-to-end machine learning lifecycle. -description: MLflow tracking server is used for logging parameters, code versions, metrics, and output files when running your machine learning code and for later visualizing the results. +baseline: "MLflow is an open-source platform for managing the full lifecycle of machine learning projects." +description: "MLflow has five components, including MLflow Tracking. MLflow Tracking is an API and UI for logging parameters, code versions, metrics, and output files as you run your machine learning code, and later visualize the results." available: true icon: mlflow defaultResources: diff --git a/technologies/app/mlflow-server/technology.yaml b/technologies/app/mlflow-server/technology.yaml index 2a09fd00b..a8ff7a8ce 100644 --- a/technologies/app/mlflow-server/technology.yaml +++ b/technologies/app/mlflow-server/technology.yaml @@ -1,9 +1,9 @@ version: v1 type: APP id: mlflow -label: MLFlow Server -baseline: An open source platform for the end-to-end machine learning lifecycle. -description: MLflow tracking server is used for logging parameters, code versions, metrics, and output files when running your machine learning code and for later visualizing the results. +label: MLflow Server +baseline: "MLflow is an open-source platform for managing the full lifecycle of machine learning projects." +description: "MLflow has five components, including MLflow Tracking. MLflow Tracking is an API and UI for logging parameters, code versions, metrics, and output files as you run your machine learning code, and later visualize the results." available: true icon: mlflow defaultResources: diff --git a/technologies/app/nifi/README.md b/technologies/app/nifi/README.md index 20d786e2f..cd6f40c34 100644 --- a/technologies/app/nifi/README.md +++ b/technologies/app/nifi/README.md @@ -1,62 +1,68 @@ -# [Lab] Apache Nifi - customized by Saagie +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official Apache NiFi Docker image, apache/nifi:1.9.2. -This Docker image is available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/nifi) is based on the official [apache/nifi:1.9.2](https://hub.docker.com/r/apache/nifi/) image. +## How to launch Apache NiFi? -It is specially designed to run on Saagie's V2 platform. +To make Apache NiFi work on your platform, there are no special steps to take. -This image is still experimental [Lab]. +You can directly click **Install** to install your app. -## Build the image +*** +> _For more information on Apache NiFi, see the official documentation._ -### Using gradle build + -## Pending questions - - How to handle site to site communication - - How to query API from external location - - How to save and persist templates (some say they are saved in nifi `conf` folder under `flow.xml.gz`) - - How to authenticate and manage several different users + diff --git a/technologies/app/nifi/dockerhub.md b/technologies/app/nifi/dockerhub.md index f2060e8f6..12209f692 100644 --- a/technologies/app/nifi/dockerhub.md +++ b/technologies/app/nifi/dockerhub.md @@ -1,7 +1,7 @@ -# Nifi webapp - customized by and for Saagie +# Apache NiFi – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/nifi/metadata.yaml b/technologies/app/nifi/metadata.yaml index 64d4f389f..0679e76d7 100644 --- a/technologies/app/nifi/metadata.yaml +++ b/technologies/app/nifi/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: nifi label: Nifi -baseline: A software project designed to automate the flow of data between software systems. -description: An easy to use, powerful, and reliable system to process and distribute data. +baseline: "Apache Nifi is a software project from the Apache Software Foundation designed to automate the flow of data between software systems." +description: "Apache Nifi is an easy to use, powerful, and reliable system to process and distribute data." available: true icon: nifi backgroundColor: "#728E9B" diff --git a/technologies/app/nifi/technology.yaml b/technologies/app/nifi/technology.yaml index 5a8aed083..e4d7eab65 100644 --- a/technologies/app/nifi/technology.yaml +++ b/technologies/app/nifi/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: nifi label: Nifi -baseline: A software project designed to automate the flow of data between software systems. -description: An easy to use, powerful, and reliable system to process and distribute data. +baseline: "Apache Nifi is a software project from the Apache Software Foundation designed to automate the flow of data between software systems." +description: "Apache Nifi is an easy to use, powerful, and reliable system to process and distribute data." available: true icon: nifi backgroundColor: "#728E9B" diff --git a/technologies/app/orientdb/README.md b/technologies/app/orientdb/README.md index 24ec27daf..8259ba5b2 100644 --- a/technologies/app/orientdb/README.md +++ b/technologies/app/orientdb/README.md @@ -1,69 +1,77 @@ -# OrientDB - customized by Saagie +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official OpenJDK Docker image, apache/nifi:1.9.2. -This Docker image is available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/orientdb) is based on the official [openjdk:8-jre-slim](https://hub.docker.com/_/openjdk) image. +## How to launch OrientDB? -It is specially designed to run on Saagie's V2 platform. +To make OrientDB work on your platform, there are no special steps to take. -If you need persistence, the volume should at least have 256Mb of space. +You can directly click **Install** to install your app. +> [!TIP] +> If you need persistence, the volume must have at least 256Mb of space. -## Build the image +*** +> _For more information on OrientDB, see the official documentation._ -### Using gradle build + \ No newline at end of file diff --git a/technologies/app/orientdb/dockerhub.md b/technologies/app/orientdb/dockerhub.md index da978457b..3fbdfabdd 100644 --- a/technologies/app/orientdb/dockerhub.md +++ b/technologies/app/orientdb/dockerhub.md @@ -1,9 +1,9 @@ -# OrientDB - customized by and for Saagie +# OrientDB – Customized by and for Saagie -** Experimental image - [Lab] - may be not fully fucntionnal ** +**This image is still in the experimental stage [Lab]. It may not be fully functional.** -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/orientdb/metadata.yaml b/technologies/app/orientdb/metadata.yaml index d6778d1f0..0a6ce9d84 100644 --- a/technologies/app/orientdb/metadata.yaml +++ b/technologies/app/orientdb/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: orientdb label: OrientDB -baseline: The first multi-model open source NoSQL database management system. -description: OrientDB is an open source NoSQL database management system supporting graph, document, key/value, and object models,... +baseline: "OrientDB is an open-source, multi-model NoSQL database management system." +description: "OrientDB is a multi-model database. It combines the power of graphs and the flexibility of documents to store, manage and query data in a highly scalable and flexible manner." available: true icon: orientdb backgroundColor: "#3374BA" diff --git a/technologies/app/orientdb/technology.yaml b/technologies/app/orientdb/technology.yaml index 7f431ab85..708f6e0b0 100644 --- a/technologies/app/orientdb/technology.yaml +++ b/technologies/app/orientdb/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: orientdb label: OrientDB -baseline: The first multi-model open source NoSQL database management system. -description: OrientDB is an open source NoSQL database management system supporting graph, document, key/value, and object models,... +baseline: "OrientDB is an open-source, multi-model NoSQL database management system." +description: "OrientDB is a multi-model database. It combines the power of graphs and the flexibility of documents to store, manage and query data in a highly scalable and flexible manner." available: true icon: orientdb backgroundColor: "#3374BA" diff --git a/technologies/app/pgadmin4/README.md b/technologies/app/pgadmin4/README.md index 1a519a443..8b9b07a7b 100644 --- a/technologies/app/pgadmin4/README.md +++ b/technologies/app/pgadmin4/README.md @@ -1,29 +1,34 @@ -# PGadmin4 +## How to launch pgAdmin 4? -## Description -pgAdmin 4 is a complete rewrite of pgAdmin, built using Python and Javascript/jQuery. A desktop runtime written in NWjs allows it to run standalone for individual users, or the web application code may be deployed directly on a web server for use by one or more users through their web browser. The software has the look and feels of a desktop application whatever the runtime environment is, and vastly improves on pgAdmin III with updated user interface elements, multi-user/web deployment options, dashboards, and a more modern design. +To make pgAdmin 4 work on your platform, you must meet the following requirements. -## Environment Variables +1. On your Saagie platform, create the following environment variables: -Two mandatory environment variables: -- $PGADMIN_DEFAULT_EMAIL: Default user -- $PGADMIN_DEFAULT_PASSWORD: Default password + | Name | Value | + |----------------------------|---------------------------------------------| + | `$PGADMIN_DEFAULT_EMAIL` | This is the default user for pgAdmin 4. | + | `$PGADMIN_DEFAULT_PASSWORD` | This is the default password for pgAdmin 4. | -One implicit environment variable: -- $SAAGIE_BASE_PATH: Base URL +*** +> _For more information on pgAdmin 4, see the official documentation._ + - - -For Saagie deploiement, uncheck checkbox "Use rewrite url". - diff --git a/technologies/app/pgadmin4/metadata.yaml b/technologies/app/pgadmin4/metadata.yaml index 832c721ad..757400625 100644 --- a/technologies/app/pgadmin4/metadata.yaml +++ b/technologies/app/pgadmin4/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: pgadmin4 label: PGAdmin 4 -baseline: "pgAdmin4" -description: "pgAdmin4 is a postgresql browser. \nCreate an environment variable named 'PGADMIN_DEFAULT_EMAIL' to set a user mail and PGADMIN_DEFAULT_PASSWORD for his password." +baseline: "pgAdmin is an open-source administration and management platform for PostgreSQL databases." +description: "pgAdmin is the community client for using PostgreSQL, an open-source RDBMS. While psql is a simple command-line tool, pgAdmin is a graphical user interface. It provides pretty much the same functionality, simplifying the creation, maintenance, and use of database objects." available: true icon: pgadmin4 defaultResources: diff --git a/technologies/app/pgadmin4/technology.yaml b/technologies/app/pgadmin4/technology.yaml index 1273fb3c2..f8cf026aa 100644 --- a/technologies/app/pgadmin4/technology.yaml +++ b/technologies/app/pgadmin4/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: pgadmin4 label: PGAdmin 4 -baseline: "pgAdmin4" -description: "pgAdmin4 is a postgresql browser. \nCreate an environment variable named 'PGADMIN_DEFAULT_EMAIL' to set a user mail and PGADMIN_DEFAULT_PASSWORD for his password." +baseline: "pgAdmin is an open-source administration and management platform for PostgreSQL databases." +description: "pgAdmin is the community client for using PostgreSQL, an open-source RDBMS. While psql is a simple command-line tool, pgAdmin is a graphical user interface. It provides pretty much the same functionality, simplifying the creation, maintenance, and use of database objects." available: true icon: pgadmin4 defaultResources: diff --git a/technologies/app/rstudio/README.md b/technologies/app/rstudio/README.md index e2171d06a..b7dadb82d 100644 --- a/technologies/app/rstudio/README.md +++ b/technologies/app/rstudio/README.md @@ -1,52 +1,44 @@ -# Environment Variables +## How to launch RStudio? -There are 2 mandatory environment variables: -- $RSTUDIO_ADMIN_PASSWORD: Password for the user `admin`, with root permissions -- $RSTUDIO_PASSWORD: Password for the user `rstudio` +To make RStudio work on your platform, you must meet the following requirements. +1. On your Saagie platform, create the following environment variables: -# Create new RStudio users + | Name | Value | + |---------------------------|---------------------------------------------------------------------| + | `$RSTUDIO_ADMIN_PASSWORD` | This is the password of the `admin` user, who has root permissions. | + | `$RSTUDIO_PASSWORD` | This is the password of the `rstudio` user. | -If you want to create new RStudio users, you'll need to log in to RStudio as: `admin` (password: `${RSTUDIO_ADMIN_PASSWORD}`). -Then go to '*Tools > Shell*' and run `sudo adduser my_new_user`. -You'll be prompted to enter admin's password, and then to choose your new user's password. No need to fill in the other fields. -If you want to allow this new user to install libraries, you need to add him to the *staff* group using the following command: `sudo adduser my_new_user staff`. +*** +> _For more information on creating new RStudio user, see Saagie’s documentation on how to create RStudio user accounts._ -**Important note:** After you created a new user, remember to run `./backupusers`. This will backup users info in a tarball. If you add mounted a volume to `/home`, every user will be recreated on next container startup. + \ No newline at end of file diff --git a/technologies/app/rstudio/dockerhub.md b/technologies/app/rstudio/dockerhub.md index ac25aa55d..64e44d5d8 100644 --- a/technologies/app/rstudio/dockerhub.md +++ b/technologies/app/rstudio/dockerhub.md @@ -1,7 +1,7 @@ -# RStudio Server - customized by and for Saagie +# RStudio Server – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/rstudio/metadata.yaml b/technologies/app/rstudio/metadata.yaml index afe21b403..f479883ef 100644 --- a/technologies/app/rstudio/metadata.yaml +++ b/technologies/app/rstudio/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: r-studio label: RStudio -baseline: IDE for R. -description: RStudio is an integrated development environment (IDE) for R. +baseline: "RStudio is an integrated development environment (IDE) for R." +description: "RStudio includes a console, syntax-highlighting editor that supports direct code execution. It also features tools for plotting, viewing history, debugging, and managing your workspace." available: true icon: rstudio defaultResources: diff --git a/technologies/app/rstudio/technology.yaml b/technologies/app/rstudio/technology.yaml index 7f05382df..341445408 100644 --- a/technologies/app/rstudio/technology.yaml +++ b/technologies/app/rstudio/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: r-studio label: RStudio -baseline: IDE for R. -description: RStudio is an integrated development environment (IDE) for R. +baseline: "RStudio is an integrated development environment (IDE) for R." +description: "RStudio includes a console, syntax-highlighting editor that supports direct code execution. It also features tools for plotting, viewing history, debugging, and managing your workspace." available: true icon: rstudio defaultResources: diff --git a/technologies/app/saagie-hf-modelserver-textclf/README.md b/technologies/app/saagie-hf-modelserver-textclf/README.md index 3a5bf683a..15499e138 100644 --- a/technologies/app/saagie-hf-modelserver-textclf/README.md +++ b/technologies/app/saagie-hf-modelserver-textclf/README.md @@ -1,28 +1,40 @@ -# Saagie-HF-ModelServer-TextCLF - - -## Description -Saagie-HF-ModelServer-TextCLF: Custom app based on Dash/Flask that deploys the deep learning models from HuggingFace and makes predictions via the GUI or API. - - -## How to use -To deploy the app: you need to create the app with port `8080` exposed, `Base path variable:SAAGIE_BASE_PATH`, don't select `Use rewrite url` and set the port access as `PROJECT`. - -Once the app is up, you can open the page of port 8080, enter a model for text classification on Hugging Face in `Model Name` on the left, then enter the corresponding `Label` and click `Deploy`. - -When the model is successfully deployed, you can enter the sentences to be predicted in `Text Classification` on the right side, the sentences will be split with line breaks. Then click `Predict` to get the predicted results. - -> An example is: -> -> Model Name:j-hartmann/emotion-english-distilroberta-base -> -> Label: anger 🤬 | disgust 🤢 | fear 😨 | joy 😀 | neutral 😐 | sadness 😭 | surprise 😲 - - - -You can also use the app via API: -> By replacing 'app-...' with your app url, the examples for the deployment and prediction are: -> -> curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"model_dir":"j-hartmann/emotion-english-distilroberta-base:main", "label":"anger|disgust|fear|joy|neutral|sadness|surprise"}' "http://app-...:8080/deploy" -> -> curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"inputs":["Good Movie, best of the year", "Highly recommended","very bad", "worst movie"]}' "http://app-...:8080/predict" +## How to launch Saagie HF ModelServer TextCLF? + +To make Saagie HF ModelServer TextCLF work on your platform, there are no special steps to take. + +The Saagie HF ModelServer TextCLF app can be used both as an app and via the API. + +### Using Saagie Hugging Face Model Server as an app + +1. Click **Install** to install your app. +2. Open your app interface by clicking **Open** on your app card. +
The Saagie HF ModelServer TextCLF app opens in a new tab. +3. Fill in the fields according to your needs. + 4. In the `Model Name` field, enter the repository name of the Hugging Face model you want to deploy. You can select it from the Text Classification list. + 5. In the `Label` field, specify the output labels of the model. + 6. Click **Deploy** and wait for loading to finish. + 7. Enter your text in the `Text Classification` field to predict it. Each line break indicates the beginning of a new sentence, and thus a new prediction. + 8. Click **Predict** to get the prediction results. + +*** +> _For more information, see our documentation on how to use Saagie Hugging Face Model Server as an app._ + +### Using Saagie Hugging Face Model Server via API + +1. Click **Install** to install your app. +2. On your Saagie platform, create the following environment variable: + + | Name | Value | + |------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `$SHF_API` | This is the URL of the Saagie model deployer, `http://app-:8080`. Where the value for `` can be found in the URL of your app page. | +3. Create a new job in Bash, for example, and make a `curl` query to deploy and predict your text. Your code must include the environment variable created earlier. +
_Here is an example of a `curl` query to deploy and predict a text:_ + ```bash + MODEL='j-hartmann/emotion-english-distilroberta-base:main' + LABEL='anger|disgust|fear|joy|neutral|sadness|surprise' + curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d\'{"model_dir":"'$MODEL'", "label":"'$LABEL'"}' $SHF_API"/deploy" + curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d\'{"inputs":["Good Movie, best of the year", "Highly recommended","very bad", "worst movie"]}' $SHF_API"/predict" + ``` + +*** +> _For more information, see our documentation on how to use Saagie Hugging Face Model Server via API._ \ No newline at end of file diff --git a/technologies/app/saagie-hf-modelserver-textclf/metadata.yaml b/technologies/app/saagie-hf-modelserver-textclf/metadata.yaml index a791d309a..fc6f99479 100644 --- a/technologies/app/saagie-hf-modelserver-textclf/metadata.yaml +++ b/technologies/app/saagie-hf-modelserver-textclf/metadata.yaml @@ -2,8 +2,8 @@ version: v2 type: APP id: saagie-hf-modelserver-textclf label: Saagie HF ModelServer TextCLF -baseline: "Saagie HuggingFace Model Server for Text Classification" -description: "Saagie-HF-ModelServer-TextCLF: Custom app based on Dash/Flask that deploys the deep learning models from HuggingFace and makes predictions for text classification via the GUI or API" +baseline: "Saagie HF ModelServer TextCLF is a custom app to deploy and predict Hugging Face deep learning models for text classification." +description: "The Saagie HF ModelServer TextCLF app is based on Dash and Flask. You can use its user-friendly interface to facilitate the deployment and prediction of Hugging Face deep learning models for text classification. You can also use it directly in your code using our API." available: true icon: datascience backgroundColor: "#253c5b" diff --git a/technologies/app/saagie-hf-modelserver-textclf/technology.yaml b/technologies/app/saagie-hf-modelserver-textclf/technology.yaml index 04ad4d2b6..ab907145b 100644 --- a/technologies/app/saagie-hf-modelserver-textclf/technology.yaml +++ b/technologies/app/saagie-hf-modelserver-textclf/technology.yaml @@ -2,8 +2,8 @@ version: v2 type: APP id: saagie-hf-modelserver-textclf label: Saagie HF ModelServer TextCLF -baseline: "Saagie HuggingFace Model Server for Text Classification" -description: "Saagie-HF-ModelServer-TextCLF: Custom app based on Dash/Flask that deploys the deep learning models from HuggingFace and makes predictions for text classification via the GUI or API" +baseline: "Saagie HF ModelServer TextCLF is a custom app to deploy and predict Hugging Face deep learning models for text classification." +description: "The Saagie HF ModelServer TextCLF app is based on Dash and Flask. You can use its user-friendly interface to facilitate the deployment and prediction of Hugging Face deep learning models for text classification. You can also use it directly in your code using our API." available: true icon: datascience backgroundColor: "#253c5b" diff --git a/technologies/app/saagie-usage-monitoring/README.md b/technologies/app/saagie-usage-monitoring/README.md index 30b6f8f0d..2f3635ea8 100644 --- a/technologies/app/saagie-usage-monitoring/README.md +++ b/technologies/app/saagie-usage-monitoring/README.md @@ -1,36 +1,43 @@ -# Saagie Usage Monitoring +## How to launch Saagie Usage Monitoring (SUM)? -## Description +To make SUM work on your platform, you must meet the following requirements. -This directory contains Saagie Usage Monitoring based on Grafana dashboards. +1. Verify that your user has at least the viewer rights on all projects. +2. On your Saagie platform, create the following environment variables: -## How to launch it + | Name | Value | + |-----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `SAAGIE_SUPERVISION_LOGIN` | This is your username. | + | `SAAGIE_SUPERVISION_PASSWORD` | This is your password. | + | `SAAGIE_URL` | This is the URL of the Saagie platform.
For example, `https://saagie-workspace.prod.saagie.io`. | + | `SAAGIE_PLATFORM_ID` | This is the ID of your plateform.
→ The default value is `1`. | + | `MONITORING_OPT` | This is to define what you want to monitor. The possible values are:
- `SAAGIE` if you only want to monitor your Saagie jobs, apps, and pipelines.
- `SAAGIE_AND_DATALAKE` if you want to monitor Saagie and your HDFS data lake.
- `SAAGIE_AND_S3` if you want to monitor Saagie and your S3 buckets.
→ The default value is `SAAGIE`. | + | `IP_HDFS` | This is the IP of the namenode. This environment variable is required if you set the `MONITORING_OPT` environment variable to `SAAGIE_AND_DATALAKE`. | + | - `AWS_ACCESS_KEY_ID`
- `AWS_SECRET_ACCESS_KEY`
- `AWS_S3_ENDPOINT`
- `AWS_REGION_NAME` | These four environment variables are required if you set the `MONITORING_OPT` environment variable to `SAAGIE_AND_S3`. | +3. **OPTIONAL**: Create the following environment variable to allow Cron to collect data from Saagie on the API: -To deploy Saagie Usage Monitoring on your platform, you need to create a user with viewer rights on all projects at least, and then set the following environment variables in Saagie : + | Name | Value | + |-------------------|-------------------------------------------------------------------------------------------------------| + | `SAAGIE_SUM_CRON` | It allows Cron to collect information from Saagie on the API.
→ The default value is `0 * * * *`. | +4. **OPTIONAL**: By default, alerts are sent via emails. If you want to enable SMTP alerts, you must have an SMTP server that will receive these alerts and you must set the following environment variables in Saagie: -- SAAGIE_SUPERVISION_LOGIN : Application user's username -- SAAGIE_SUPERVISION_PASSWORD : Application user's password -- SAAGIE_URL : URL of the Saagie plateform (i.e. : `https://saagie-workspace.prod.saagie.io`) -- SAAGIE_PLATFORM_ID : ID of your plateform (Default value : `1`) -- MONITORING_OPT (default value : `SAAGIE`): - - `SAAGIE` if you want to monitor only Saagie jobs, apps and pipelines - - `SAAGIE_AND_DATALAKE` if you want to monitor Saagie and your HDFS Datalake - - `SAAGIE_AND_S3` if you want to monitor Saagie and S3 buckets -- IP_HDFS (Required if MONITORING_OPT=`SAAGIE_AND_DATALAKE`) : Namenode IP -- AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_ENDPOINT and AWS_REGION_NAME (Required if MONITORING_OPT=`SAAGIE_AND_S3`) -- SAAGIE_SUM_CRON : Cron to collect Saagie informations on API (Optionnal, Default value : `0 * * * *`) + | Name | Value | + |------------------------|---------------------------------------------------------------------------| + | `GF_SMTP_ENABLED` | This is to enable SMTP alerts.
→ The default value is `false`. | + | `GF_SMTP_HOST` | This is the SMTP host and port. | + | `GF_SMTP_USER` | This is the your SMTP user. | + | `GF_SMTP_PASSWORD` | This is the your SMTP password. | + | `GF_SMTP_FROM_ADDRESS` | This is the email address of the alert sender. | + | `GF_SMTP_SKIP_VERIFY` | This is to skip SSL for SMTP server.
→ The default value is `false`. | +5. **OPTIONAL**: If you want to use an external PostgreSQL database, you must define the connection parameters via the corresponding environment variables in Saagie: -For an external Postgres database : -- SAAGIE_PG_HOST : Postgresql host (Default value : `localhost`) -- SAAGIE_PG_PORT : Postgresql port (Default value : `5432`) -- SAAGIE_PG_USER : Postgresql user (Default value : `supervision_pg_user`) -- SAAGIE_PG_PASSWORD : Postgresql password (Default value : ``) -- SAAGIE_PG_DATABASE : Postgresql database (Default value : `supervision_pg_db`) + | Name | Value | + |----------------------|------------------------------------------------------------------------------------| + | `SAAGIE_PG_HOST` | This is your PostgreSQL host.
→ The default value is `localhost`. | + | `SAAGIE_PG_PORT` | This is your PostgreSQL port.
→ The default value is `5432`. | + | `SAAGIE_PG_USER` | This is your PostgreSQL user.
→ The default value is `supervision_pg_user`. | + | `SAAGIE_PG_PASSWORD` | This is your PostgreSQL password.
→ The default value is ` `. | + | `SAAGIE_PG_DATABASE` | This is your PostgreSQL database.
→ The default value is `supervision_pg_db`. | -To enable SMTP alerts : -- GF_SMTP_ENABLED : To enable SMTP alerts (Default value : `false`) -- GF_SMTP_HOST : SMTP host and port -- GF_SMTP_USER : SMTP user -- GF_SMTP_PASSWORD : SMTP password -- GF_SMTP_FROM_ADDRESS : Mail sender of alerts -- GF_SMTP_SKIP_VERIFY : Skip SSL for SMTP server (Default value : `false`) \ No newline at end of file +*** +> _For more information, see our documentation on Saagie Usage Monitoring._ \ No newline at end of file diff --git a/technologies/app/saagie-usage-monitoring/metadata.yaml b/technologies/app/saagie-usage-monitoring/metadata.yaml index da49c568b..17e6ffaf5 100644 --- a/technologies/app/saagie-usage-monitoring/metadata.yaml +++ b/technologies/app/saagie-usage-monitoring/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: saagie-usage-monitoring label: Saagie Usage Monitoring -baseline: "Saagie Usage Monitoring lets you monitor your Saagie platform" -description: "Saagie Usage Monitoring lets you monitor your Saagie platform including jobs, apps and pipelines stats." +baseline: "Saagie Usage Monitoring lets you monitor your Saagie platform with dashboards." +description: "The Saagie Usage Monitoring (SUM) app is based on Grafana. It comes with defaults dashboards that can be used to monitor job, app, and pipeline metrics for your projects." available: true icon: project-activity defaultResources: diff --git a/technologies/app/saagie-usage-monitoring/technology.yaml b/technologies/app/saagie-usage-monitoring/technology.yaml index 43561c319..cdc138d7f 100644 --- a/technologies/app/saagie-usage-monitoring/technology.yaml +++ b/technologies/app/saagie-usage-monitoring/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: saagie-usage-monitoring label: Saagie Usage Monitoring -baseline: "Saagie Usage Monitoring lets you monitor your Saagie platform" -description: "Saagie Usage Monitoring lets you monitor your Saagie platform including jobs, apps and pipelines stats." +baseline: "Saagie Usage Monitoring lets you monitor your Saagie platform with dashboards." +description: "The Saagie Usage Monitoring (SUM) app is based on Grafana. It comes with defaults dashboards that can be used to monitor job, app, and pipeline metrics for your projects." available: true icon: project-activity defaultResources: diff --git a/technologies/app/spark-history-server/README.md b/technologies/app/spark-history-server/README.md index 7e12ca003..f049404bc 100644 --- a/technologies/app/spark-history-server/README.md +++ b/technologies/app/spark-history-server/README.md @@ -1,17 +1,26 @@ -# Spark History Server +## How to launch Spark History Server? -## Description -This directory contains version of Spark History Server contenairized and customized for Saagie Platform. -See History Server official documentation for more information https://spark.apache.org/docs/latest/monitoring.html#viewing-after-the-fact +To make Spark History Server work on your platform, you must meet the following requirements. -## How to build in local +1. On your Saagie platform, create the following environment variable: -Inside the `spark-history-server` folder, run : -``` -docker build -t saagie/spark-history-server: . -docker push saagie/spark-history-server- -``` + | Name | Value | + |-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `SPARK_HISTORY_EVENT_LOG_DIR` | This is the directory where event log information is saved. The default location is `hdfs://cluster/tmp/spark-events`. You can specify it according to your needs. | -## Job/App specific information +*** +> _For more information on Spark History Server, see the official documentation._ -Set the **SPARK_HISTORY_EVENT_LOG_DIR** environment varaible to customize the Spark logs directory (default value = `hdfs://cluster/tmp/spark-events`) \ No newline at end of file + \ No newline at end of file diff --git a/technologies/app/spark-history-server/metadata.yaml b/technologies/app/spark-history-server/metadata.yaml index 23332787a..6213ef7c6 100644 --- a/technologies/app/spark-history-server/metadata.yaml +++ b/technologies/app/spark-history-server/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: spark-history-server label: Spark History Server -baseline: "The Spark history server is a monitoring tool that displays information about completed Spark applications" -description: "The Spark history server is a monitoring tool that displays information about completed Spark applications" +baseline: "Spark History Server is a monitoring tool that displays information on completed Spark applications." +description: "There are several ways to monitor Spark applications. Spark History Server is one of them. It is used to monitor and display the metrics and performance of completed Spark applications in a web interface. With the history server, you can keep track of all completed applications. This is useful when you are trying to improve application performance, and can compare metrics from previous runs with those from the most recent run." available: true icon: spark defaultResources: diff --git a/technologies/app/spark-history-server/technology.yaml b/technologies/app/spark-history-server/technology.yaml index 85ad61ceb..5752ecbfe 100644 --- a/technologies/app/spark-history-server/technology.yaml +++ b/technologies/app/spark-history-server/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: spark-history-server label: Spark History Server -baseline: "The Spark history server is a monitoring tool that displays information about completed Spark applications" -description: "The Spark history server is a monitoring tool that displays information about completed Spark applications" +baseline: "Spark History Server is a monitoring tool that displays information on completed Spark applications." +description: "There are several ways to monitor Spark applications. Spark History Server is one of them. It is used to monitor and display the metrics and performance of completed Spark applications in a web interface. With the history server, you can keep track of all completed applications. This is useful when you are trying to improve application performance, and can compare metrics from previous runs with those from the most recent run." available: true icon: spark defaultResources: diff --git a/technologies/app/vscode/README.md b/technologies/app/vscode/README.md index 08dd96082..b180d68dd 100644 --- a/technologies/app/vscode/README.md +++ b/technologies/app/vscode/README.md @@ -1,34 +1,56 @@ -# VS Code - ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/saagie/vscode-server/4.8?label=v4.8%20image%20size&style=for-the-badge) -## Description +> [!NOTE] +> This Docker image is based on the linuxserver/docker-code-server Git repository. + +## How to launch VS Code Server? + +To make VS Code Server work on your platform, you must meet the following requirements. + +1. On your Saagie platform, create the following environment variables: + + | Name | Value | + |-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `VSCODE_PASSWORD` | This is the password to access your VSCode interface. | + | `VSCODE_HASHED_PASSWORD` | This is to set the password to access your VSCode interface via hash. Password hashing turns your password into a short string of letters and/or numbers using an encryption algorithm. | + | `VSCODE_SUDO_PASSWORD` | This allows you to have sudo access in the openvscode-server terminal with the specified password. | + | `VSCODE_SUDO_PASSWORD_HASH` | This is to set your sudo password via hash. Password hashing turns your password into a short string of letters and/or numbers using an encryption algorithm. | + +**** +> - _For more information on VS Code, see the official documentation._ +> - _For more information on VS Code Server, see the official documentation._ + -This directory contains a VsCode server contenairized and customized for Saagie Platform. -See Vscode server official documentation for more information . -This image is based on [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server). + \ No newline at end of file diff --git a/technologies/app/vscode/metadata.yaml b/technologies/app/vscode/metadata.yaml index eb9a10393..fc3154bed 100644 --- a/technologies/app/vscode/metadata.yaml +++ b/technologies/app/vscode/metadata.yaml @@ -2,10 +2,8 @@ version: v1 type: APP id: vscode label: VS Code -baseline: "VS Code server" -description: "VS Code server is an IDE that supports several languages. \n - Create an environment variable named 'VSCODE_PASSWORD' to set a password for the interface, - and VSCODE_SUDO_PASSWORD to get sudo access inside the container." +baseline: "VS Code Server is a version of VS Code running on a remote machine, accessible through the browser." +description: "VS Code is a code editor that provides just the tools a developer needs for a code-build-debug cycle. It has a set of built-in extensions for many languages and runtimes, including VS Code Server. VS Code Server is a component of the Remote Development extensions. By deploying a server on the remote environment, these extensions enable local VS Code to smoothly interact with remote source code and runtimes. You can then work on projects hosted on remote machines, virtual machines, or containers. In other words, VS Code Server is an IDE that lets you run VS Code on any machine, anywhere, and access it in the browser." available: true icon: vscode defaultResources: diff --git a/technologies/app/vscode/technology.yaml b/technologies/app/vscode/technology.yaml index 36392e3f9..f5af1e27f 100644 --- a/technologies/app/vscode/technology.yaml +++ b/technologies/app/vscode/technology.yaml @@ -2,10 +2,8 @@ version: v1 type: APP id: vscode label: VS Code -baseline: "VS Code server" -description: "VS Code server is an IDE that supports several languages. \n - Create an environment variable named 'VSCODE_PASSWORD' to set a password for the interface, - and VSCODE_SUDO_PASSWORD to get sudo access inside the container." +baseline: "VS Code Server is a version of VS Code running on a remote machine, accessible through the browser." +description: "VS Code is a code editor that provides just the tools a developer needs for a code-build-debug cycle. It has a set of built-in extensions for many languages and runtimes, including VS Code Server. VS Code Server is a component of the Remote Development extensions. By deploying a server on the remote environment, these extensions enable local VS Code to smoothly interact with remote source code and runtimes. You can then work on projects hosted on remote machines, virtual machines, or containers. In other words, VS Code Server is an IDE that lets you run VS Code on any machine, anywhere, and access it in the browser." available: true icon: vscode defaultResources: diff --git a/technologies/app/zeppelin/README.md b/technologies/app/zeppelin/README.md index 783c82663..efbb17923 100644 --- a/technologies/app/zeppelin/README.md +++ b/technologies/app/zeppelin/README.md @@ -1,73 +1,81 @@ -# Zeppelin Datascience Notebook +> [!NOTE] +> This Docker image is designed to run on Saagie’s V2 platform. It is available on Saagie’s DockerHub and is based on the official Apache Zeppelin Docker image, apache/zeppelin:0.9.0. This image adds some specific versions of the library that are used on the Saagie platform, such as Spark versions. -This Docker image is available on [Saagie's DockerHub](https://hub.docker.com/r/saagie/zeppelin-nbk) and is based on the official Apache Zeppelin image: [apache/zeppelin:0.9.0](https://hub.docker.com/r/apache/zeppelin). +## How to launch Zeppelin Notebook? -It is designed to run on Saagie's V2 platform. +To make Zeppelin Notebook work on your platform, there are no special steps to take. -It adds some specific library versions used on Saagie's platform (such as Spark versions). +You can directly click **Install** to install your app. +*** +> _For more information on Zeppelin, see the official documentation._ -## Build the image + \ No newline at end of file diff --git a/technologies/app/zeppelin/dockerhub.md b/technologies/app/zeppelin/dockerhub.md index 31465f05c..79019a6b9 100644 --- a/technologies/app/zeppelin/dockerhub.md +++ b/technologies/app/zeppelin/dockerhub.md @@ -1,7 +1,7 @@ -# Zeppelin Datascience Notebook - customized by and for Saagie +# Zeppelin Datascience Notebook – Customized by and for Saagie -For information about using this image with your Saagie platform, refer to [Saagie's official documentation](https://docs.saagie.io/product/latest/sdk/index.html). +For more information on how to use this image with your Saagie platform, see the official [Saagie documentation](https://docs.saagie.io/user/latest/developer/sdk/). -**Contributing:** We welcome your contributions! Please read our contribution guide first, then feel free to contribute by commenting, submitting issues, and opening pull requests. +**Contributing:** To find out how to contribute, read our [**Contributing**](https://github.com/saagie/technologies/blob/master/CONTRIBUTING.md) page. Then, feel free to contribute. You can comment, file issues, and create pull requests. We welcome your contributions! -**Source code:** [Saagie technologies repository](https://github.com/saagie/technologies) \ No newline at end of file +**Source code:** To view the source code, see the [Saagie technology repository](https://github.com/saagie/technologies). \ No newline at end of file diff --git a/technologies/app/zeppelin/metadata.yaml b/technologies/app/zeppelin/metadata.yaml index eadc3ef75..ed2622591 100644 --- a/technologies/app/zeppelin/metadata.yaml +++ b/technologies/app/zeppelin/metadata.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: zeppelin label: Zeppelin Notebook -baseline: Data Science Notebook. -description: Zeppelin is a web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. +baseline: "Apache Zeppelin is a web-based notebook for interactive data analysis." +description: "Apache Zeppelin is an open-source project maintained by the Apache Foundation. It is a multi-purpose notebook that has support for more than 20 language backends. Its aim is to provide a web interface that enables data-driven, interactive data analytics, and collaborative documents with SQL, Scala, Python, R, and more." available: true icon: zeppelin defaultResources: diff --git a/technologies/app/zeppelin/technology.yaml b/technologies/app/zeppelin/technology.yaml index 0e59d9bc2..b5534cfe5 100644 --- a/technologies/app/zeppelin/technology.yaml +++ b/technologies/app/zeppelin/technology.yaml @@ -2,8 +2,8 @@ version: v1 type: APP id: zeppelin label: Zeppelin Notebook -baseline: Data Science Notebook. -description: Zeppelin is a web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. +baseline: "Apache Zeppelin is a web-based notebook for interactive data analysis." +description: "Apache Zeppelin is an open-source project maintained by the Apache Foundation. It is a multi-purpose notebook that has support for more than 20 language backends. Its aim is to provide a web interface that enables data-driven, interactive data analytics, and collaborative documents with SQL, Scala, Python, R, and more." available: true icon: zeppelin defaultResources: