{"id":20110756,"url":"https://github.com/dell/dataiq-plugin-example","last_synced_at":"2026-04-10T13:31:03.724Z","repository":{"id":68276443,"uuid":"339514598","full_name":"dell/dataiq-plugin-example","owner":"dell","description":"The DataIQ Example Plugin project demonstrates the project layout for a simple plugin inside of DataIQ. It is a Flask application which connects to the ClarityNow API to collect more granular binning data for a given file tree.","archived":false,"fork":false,"pushed_at":"2023-10-05T13:57:09.000Z","size":222,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-23T13:52:23.017Z","etag":null,"topics":["dataiq","flask","javascript","plugin","python","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-16T19:56:39.000Z","updated_at":"2021-04-12T09:32:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"b5d01523-a8b4-4944-8215-21f19ba1fef3","html_url":"https://github.com/dell/dataiq-plugin-example","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dell/dataiq-plugin-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2Fdataiq-plugin-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2Fdataiq-plugin-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2Fdataiq-plugin-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2Fdataiq-plugin-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dell","download_url":"https://codeload.github.com/dell/dataiq-plugin-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2Fdataiq-plugin-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31645170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dataiq","flask","javascript","plugin","python","react"],"created_at":"2024-11-13T18:13:34.658Z","updated_at":"2026-04-10T13:31:03.703Z","avatar_url":"https://github.com/dell.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# plugin-example\n\nThis example plugin, \"Time Bound\", demonstrates how to add a view into the DataIQ Data Management screens that shows a view of the folder contents using time-bound categories. \n\n## Overview\n\nThe example plugin uses a Python/[Flask](https://flask.palletsprojects.com/) back end and a JavaScript/[React](https://reactjs.org/) front end.\n\nThe plugin defines two pages: a main page and a settings page.\nThe pages are React components that use the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to\nretrieve data from the back-end Flask server.\n\nThe main page displays the filecount for each folder, grouped into data bins by how recently the data has been accessed. The plugin fetches the time ranges for these bins from the DataIQ settings.\nThe UI provides two date picker components to filter bin information based on the two selected dates.\n\nThe settings page shows placeholder text and can be modified to define whatever settings a developer deems necessary.\nExamples include rich HTML controls (checkboxes, radio buttons, toggles) or a text area with a configuration file that\nwas loaded from the back end which can be edited and saved.\n\n## Installation\n\nDownload the tarball distribution for the example plugin in the releases section of this repository.\nThe DataIQ Plugin Manager can be used to install these releases into an existing DataIQ installation.\nThe Plugin Manager can be found at the following path on your DataIQ host:\n\n```\n/opt/dataiq/plugin_manager/bin/plugin_manager\n```\n\nInitialize the Plugin Manager at least once between DataIQ installs and updates.\nThen, use it to install and start the release tarball.\n\n```\nplugin_manager init\nplugin_manager install example plugin-centos-base -f \u003crelease tar.gz\u003e\nplugin_manager start example\n```\n\n\n## Local Development\n\nExport an environment variable called `LOCAL_DEV`. \nAt launch, the plugin checks this flag. \nWhen this flag is set, the plugin uses a test data source in place of actual DataIQ API binning data:\n\n```\nexport LOCAL_DEV=true\n```\n\nFollow the below steps to run the plugin locally for development.\n\n### Build and run the front end UI\n\nThe UI is built and bundled into `/static/dist/bundle.js`. \nThe `bundle.js` file is loaded into the browser for the UI.\n\nNote: `node` and `npm` (Node package manager) are required to be installed on your system to develop the front end. `npm` is included with Node. Download and install instructions can be found [here for node on Ubuntu/Debian](https://nodejs.org/en/download/). We recommend downloading the \"Latest LTS Version\".\n\n1. Go into the `/static` directory.\n2. Install NPM, including front end dependencies from the `package.json` \"dependencies\" block:\n   - `npm install`\n3. Run the build:\n   - `npm run build`\n   - Or, listen and build the UI as you make edits:\n   - `npm run watch`\n\nAfter you have completed building the UI file, it is ready to be added to the back end server, where it can be served to users.\n\n### Run the back end server\n\n1. Run the back end server from the `app.py` file.\n2. The server will listen at `127.0.0.1:5000`.\n3. Looking at the routes defined in `app.py`, make sure that `render_template` is defined in the `/jobs/\u003cident\u003e` route.\n\nTo see the main page of the UI, go to `127.0.0.1:5000/jobs/dGVzdC9wYXRoL2hlcmU/`.\n \nThe `\u003cident\u003e` is a URL-safe Base64 encoded path. The UI will decode it and fetch binning information for this path.\n\nYou can view the settings page locally by going to `127.0.0.1:5000/internal/settings/`.\n\n## Packaging and Installing in DataIQ\n\nBefore packaging the example plugin for use in DataIQ, be sure to unset the `LOCAL_DEV` environment variable, if one was set:\n\n```\nunset LOCAL_DEV\n```\n\nTo run the example plugin inside DataIQ it must first be packaged in the way that the Plugin Manager is expecting.\nRun `build.sh \u003cversion\u003e`. \n\nThis command generates a tar.gz file. Use this file to install the plugin, for example:\n\n```\nplugin_manager install example plugin-centos-base -f \u003cbuild tar.gz\u003e\n```\n\nThe build tar.gz contains a direct representation of the plugin host storage.\nEvery file that the flask application needs to run must be contained here, and will be read into the generated plugin\ncontainer under the `/hoststorage/` directory.\n\nKubernetes launches the plugin container using `startup.sh`. Use this script\nfile to configure any runtime behaviors for the plugin.\n\nAfter installing, start the plugin with the plugin manager:\n\n```\nplugin_manager start example\n```\n\n## Using the Example Plugin in DataIQ\n\nAfter the plugin is installed, enable the plugin: in the DataIQ UI, select Settings \u003e Data management configuration. In the plugin section, select the  ⋮ (vertical ellipses) icon next to the plugin, and select Enable.\n\nTo configure the plugin, select the ⋮ (vertical ellipses) icon next to the plugin, and select `Edit configuration`, and configure your plugin.\n\nTo use the plugin, select Data Management \u003e Browse, and select a folder under the root path. (The sample plugin does not support using root path: `/`.) In the Actions side panel, select 'Time Bound'. This shows a new window that displays the data in bins according to how recently the file has been accessed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell%2Fdataiq-plugin-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdell%2Fdataiq-plugin-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell%2Fdataiq-plugin-example/lists"}