diff --git a/docs/commands.md b/docs/commands.md new file mode 100644 index 000000000..00894744b --- /dev/null +++ b/docs/commands.md @@ -0,0 +1,111 @@ +# Commands + +These are the commands that are available in UCC framework. + +## `ucc-gen build` + +The `ucc-gen build` command builds the add-on. As of now, running `ucc-gen` does the same thing as running `ucc-gen build`, +but eventually calling `ucc-gen` without specifying a subcommand will be +deprecated. + +It takes the following parameters: + +* `--source` - [optional] folder containing the `app.manifest` and app + source. The default is `package`. +* `--config` - [optional] path to the configuration file. It defaults to + the globalConfig file in the parent directory of the source provided. + Only *.json* and *.yaml* files are accepted. +* `--ta-version` - [optional] override current version of TA. The default + version is version specified in `globalConfig.json` or `globalConfig.yaml`. + A Splunkbase compatible version of SEMVER is used by default. +* `-o` / `--output` - [optional] output folder to store the build add-on. + By default, it is saved in the `current directory/output` folder. + Absolute paths are accepted as well. +* `--python-binary-name` - [optional] Python binary name to use when + installing Python libraries. The default is `python3`. +* `-v` / `--verbose` - [optional] shows detailed information about + created/copied/modified/conflict files after build is complete. + This option is in the experimental mode. The default is `False`. +* `--pip-version` - [optional] pip version that is used to install python libraries. The default is `latest`. +* `--pip-legacy-resolver` - [optional] Use old pip dependency resolver by adding flag '--use-deprecated=legacy-resolver' + to pip install command. The default is`False`. + >**NOTE:** This flag is deprecated and will be removed from pip in the future. + Instead of using this flag, the correct solution would be to fix the packages your project depends on to work properly with the new resolver. Additionally, this flag is not compatible with pip version `23.2`. Use `23.2.1` instead. +* `--ui-source-map` - [optional] if present generates front-end source maps (.js.map files), that helps with code debugging. + +### Verbose mode + +The verbose mode is available for `v5.35.0` and later. + +Running `ucc-gen build -v` or `ucc-gen build --verbose` prints additional information about +what was exactly created / copied / modified / conflicted after the build is complete. It does +not scan the `lib` folder due to the nature of the folder. + +See the following description of what each state means: + +* `created`: the file is not in the original package and was created during the build process. +* `copied`: the file is in the original package and was copied during the build process. +* `modified`: the file is in the original package and was modified during the build process. +* `conflict`: the file is in the original package and was copied during the build process, but may be generated by UCC itself, so incorrect usage can stop the add-on from working. + +## `ucc-gen init` + +`ucc-gen init` initializes the add-on. This is available on `v5.19.0` and later. +The `ucc-gen init` command initializes the add-on and bootstraps some code in the +modular input which you, as a developer, can extend for your needs. + +Apart from standard files needed for the add-on, it also adds search head +clustering files in the `default/server.conf` file and reload triggers in the +`default/app.conf` file. Those files will be soon generated automatically by the +`ucc-gen build` command itself. +during the add-on development. + +It takes the following parameters: + +* `--addon-name` - [required] add-on name. See the + [official naming convention guide](https://dev.splunk.com/enterprise/docs/releaseapps/splunkbase/namingguidelines/). +* `--addon-rest-root` - [optional] add-on REST root, defaults to `--addon-name` if not provided. +* `--addon-display-name` - [required] add-on "official" name. +* `--addon-input-name` - [required] name of the generated input. +* `--addon-version` - [optional] version of the generated add-on, with `0.0.1` by default. +* `--overwrite` - [optional] overwrites the already existing folder. + By default, you can't generate a new add-on to an already existing folder. + +## `ucc-gen import-from-aob` + +Import from AoB (Add-on Builder), from `v5.24.0` and later. It is in the +**experimental** state as of now, meaning that running this command may not +produce a 100% UCC compatible add-on, but we are going to work on future +improvements for the script itself. + +> **Note:** the `import-from-aob` command does not currently support Windows. + +The import functionality is based on the +[ucc_migration_test](https://github.com/tmartin14/ucc_migration_test) bash +script. +One of the ways you can use it is to download an AoB-based add-on from +Splunkbase, unarchive the folder, and then use +`ucc-gen import-from-aob --addon-name `. Or you can +run the same command against your locally developed add-on, but it should be +exported from AoB. + +It accepts the following parameters: + +* `--addon-name` - [required] add-on name. + +## `ucc-gen package` + +`ucc-gen package` can be used for `v5.30.0` and later. It packages the add-on so it can be installed. +It mimics the basics of the `slim package` command. This command can be used for most of the simple cases. + +It does not support: + +* the `.slimignore` file. +* the [dependencies section](https://dev.splunk.com/enterprise/docs/releaseapps/packageapps/packagingtoolkit/#Dependencies-section). + +It accepts the following parameters: + +* `--path` - [required] path to the built add-on (should include the `app.manifest` file). +* `-o` / `--output` - [optional] output folder to store the packaged add-on. + By default, it will be saved in the `current directory` folder. + It accepts absolute paths as well. diff --git a/docs/dot_conf_files.md b/docs/dot_conf_files.md index 4f70536b5..b595cc8c8 100644 --- a/docs/dot_conf_files.md +++ b/docs/dot_conf_files.md @@ -1,17 +1,16 @@ # .conf files -`ucc-gen` generates the following `.conf` files in the `default` directory. -If any of the `.conf` files are present in the source directory, `ucc-gen` will -just copy that file to the output folder. The only exception is the `app.conf` file. +`ucc-gen build` generates the following `.conf` files in the `default` directory. +If any of the `.conf` files are present in the source directory, `ucc-gen` copies that file to the output folder. The only exception is the `app.conf` file. -> Note: for most of the use cases, the generated configuration is sufficient. If you -> need to adjust the file being generated, please ping us for a feature +> For most of the use cases, the generated configuration is sufficient. If you +> need to adjust the file that is generated, contact Splunk with a feature > request. Alternatively, create a file in the `default` location, so it will accepted > without being generated. ## `app.conf` -`ucc-gen` will merge the file present in the `default` folder with some +`ucc-gen` merges the file present in the `default` folder with some additional information generated during the build time. But if you don't need anything specific generated, you don't need to have `app.conf` in the source folder. @@ -19,26 +18,24 @@ app.conf uses the `app.manifest` file to determine the add-on description, the a the add-on title, and the add-on author (taking the first one if multiple are defined). Make sure that your `app.manifest` is up-to-date, so `app.conf` will have all relevant information. -Also, the `triggers` stanza will be created by `ucc-gen`. It will determine what +Also the `triggers` stanza is created by the `ucc-gen build` command. `ucc-gen build` determines what the `.conf` files are used in the add-on and generates the relevant key-value pairs. ## `inputs.conf` -`ucc-gen` will generate a stanza for every input defined in the `globalConfig` -file and set `python.version` to `python3`. +`ucc-gen` generates a stanza for every input defined in the `globalConfig` +file and sets `python.version` to `python3`. ## `server.conf` -`ucc-gen` will generate the `shclustering` stanza, which will determine what +`ucc-gen` generates the `shclustering` stanza. This stanza determines which `.conf` files are used in the add-on and generates the relevant key-value pairs. ## `web.conf` -`ucc-gen` will generate all needed information about the exposed endpoints -from the add-on. +`ucc-gen` generates information about the exposed endpoints from the add-on. ## `restmap.conf` -`ucc-gen` will generate all necessary information about the configuration of every -endpoint. +`ucc-gen` generates information about the configuration of every endpoint. diff --git a/docs/generated_files.md b/docs/generated_files.md index 1394be8b7..8295ee269 100644 --- a/docs/generated_files.md +++ b/docs/generated_files.md @@ -2,13 +2,9 @@ title: UCC framework generated files --- -# Generated files +The following table describes the files generated by UCC framework. -Below table describes the files generated by UCC framework - -## File Description - -| File Name | File Location | File Description | +| File name | File location | File description | | ------------ | ------------ | ----------------- | | app.conf | output/<YOUR_ADDON_NAME>/default | Generates `app.conf` with the details mentioned in globalConfig[meta] | | inputs.conf | output/<YOUR_ADDON_NAME>/default | Generates `inputs.conf` and `inputs.conf.spec` file for the services mentioned in globalConfig | diff --git a/docs/index.md b/docs/index.md index b07a5e4ad..194f2f627 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,49 +1,39 @@ -# Overview +# About UCC -`splunk-add-on-ucc-framework` is a framework to generate UI-based Splunk -add-ons. It includes UI, REST handlers, Modular inputs, OAuth and Alert -action templates. +Universal Configuration Console (UCC) is a framework that simplifies the process of add-on creation for developers. You can use UCC to generate UI-based Splunk add-ons. UCC includes UI, REST handlers, modular inputs, OAuth, and alert action templates. -Only add-ons that use Python 3 are supported. +The UCC framework helps you to maintain consistency and a uniform look and feel across different add-ons. You can easily update and modify your add-ons. -It is available as a GitHub action here: - +The UCC framework is available as a GitHub action. See . -You can use [Splunk Extension for VSCode](https://marketplace.visualstudio.com/items?itemName=Splunk.splunk) -as well. +To work with UCC framework, you can also use Splunk Extension. It helps you to create, test, and debug the add-ons in a simple way. For more information, see [Visual Studio Code Extension for Splunk](https://marketplace.visualstudio.com/items?itemName=Splunk.splunk). -## What is UCC? +## Libraries -UCC stands for Universal Configuration Console. The purpose of having a -framework for add-on generation is to simplify the process of add-on -creation for developers. UCC 5 uses [SplunkUI](https://splunkui.splunk.com/), -which is a new UI framework based on React. The UCC UI repository can be found in the `ui` folder. +UCC-based add-ons are powered by the following Splunk libraries: -UCC-based add-ons are being powered by Splunk libraries: -[`solnlib`](https://github.com/splunk/addonfactory-solutions-library-python) and -[`splunktaucclib`](https://github.com/splunk/addonfactory-ucc-library). More -information [here](ucc_related_libraries.md). +* `solnlib`, see [https://github.com/splunk/addonfactory-solutions-library-python](https://github.com/splunk/addonfactory-solutions-library-python) +* `splunktaucclib`, see [https://github.com/splunk/addonfactory-ucc-library](https://github.com/splunk/addonfactory-ucc-library). -## Features +For more information, see [UCC-related libraries](ucc_related_libraries.md). -The `splunk-add-on-ucc-framework`: +> Note: Some specific Python libraries (such as `google-cloud-bigquery`) use `.so` files to operate. `pip` installs OS-specific versions of those `.so` files, which makes it impossible to use such add-ons on a Windows machine because it was built for macOS. -* generates UI (`appserver` folder). -* generates Python REST handlers to support UI CRUD operations (`bin` folder). -* generates [inputs](./inputs/index.md) and their [helper modules](./inputs/helper.md) -* generates OpenAPI description documents (`appserver/static/openapi.json` file) (for more information, see [here](openapi.md)). -* generates `.conf` files (more information, see [here](dot_conf_files.md)). -* installs Python requirements (`lib` folder). -* generate metadata files (`metadata` folder). -* generates the monitoring dashboard (for more information, see [here](dashboard.md)). -* it possibly extends the UI with custom codes (for more information, see [here](custom_ui_extensions/custom_hook.md)). -* it possibly extends the build process via a `additional_packaging.py` file (more information, [here](additional_packaging.md)). -* generates the necessary files defined for the Alert Action, if defined in globalConfig (for more informaiton, see [here](alert_actions/index.md)). +## What UCC generates -## Installation +When you use UCC to create an add-on, the following elements are generated and stored in the appropriate folders: -`splunk-add-on-ucc-framework` is available on [PyPI](https://pypi.org/project/splunk-add-on-ucc-framework/). +* UI is stored in the `appserver` folder, +* Python REST handlers that support UI CRUD operations are stored in the `bin` folder, +* inputs and their helper modules. For more information, see [Inputs](./inputs/index.md) and [Helper modules](./inputs/helper.md), +* OpenAPI description documents are stored in the `appserver/static/openapi.json` file. For more information, see [OpenAPI description document](openapi.md), +* `.conf` files. For more information, see [.conf files](dot_conf_files.md), +* Python requirements are installed in the `lib` folder, +* metadata files are stored in the `metadata` folder, +* the monitoring dashboard. For more information, see [Dashboard](dashboard.md), +* the necessary files defined for the alert action, if you defined the alert action in the `globalConfig` file. For more information, see [Alert actions](alert_actions/index.md). -## Caveats +You can extend your add-ons with the following files: -* Some specific Python libraries (such as `google-cloud-bigquery`) use `.so` files to operate. `pip` will install OS-specific versions of those `.so` files, which makes it impossible to use such add-ons on a Windows machine since it was built for macOS. +* to extend the UI, use custom codes. For more information, see [Custom hook](custom_ui_extensions/custom_hook.md). +* to extend the build process, use the `additional_packaging.py` file. For more information, see [additional_packaging.py file](additional_packaging.md). diff --git a/docs/quickstart.md b/docs/quickstart.md index 2589914bf..917028ebf 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,225 +1,91 @@ -# Quickstart +# Getting started -## Prerequisites - -You need to have Python 3.7+ and Git available in your machine to be able to use the `ucc-gen` command. - -> Git is used to generate the add-on version from Git tags. Alternatively, you can use the `--ta-version` parameter. -To be able to create an add-on using the UCC framework, you need to have at least: +Install the UCC framework and start building your first add-on. Then you can build new add-ons from the existing ones. -* a `globalConfig` file (in `JSON` or `YAML` format, `JSON` is mostly used). -* a `package` folder. -* `app.manifest` in the `package` folder ([documentation here](https://dev.splunk.com/enterprise/reference/packagingtoolkit/pkgtoolkitappmanifest/)). - -The `app.manifest` file now is being validated. See [Splunk Packaging Toolkit app.manifest schema definition](https://dev.splunk.com/enterprise/reference/packagingtoolkit/pkgtoolkitappmanifest/#JSON-schema-200) for more details. +## Prerequisites -> If both the globalConfig.json and globalConfig.yaml files are present, then the globalConfig.json file will take precedence. +Make sure that the following software is installed on your machine: -The JSON schema for the `globalConfig` file can be found in the `splunk_add_on_ucc_framework/schema/schema.json` file. +* Python 3.7 or later +* Git -### Add-on naming convention +> **Note:** Git is used to generate the add-on version from the Git tags. Alternatively, you can use the `--ta-version` parameter and specify the version by yourself. -See [Naming conventions for apps and add-ons in Splunkbase](https://dev.splunk.com/enterprise/docs/releaseapps/splunkbase/namingguidelines/) -for help naming your add-on. +## Install -## Initialize new add-on +### Create and activate the virtual environment -> Initialization of the new add-on is available from version `5.19.0` and up of `ucc-gen`. +Depending on which operating system you use, follow one of the procedures: -The following commands are macOS and Linux specific. +#### Windows -* Set up and activate the Python virtual environment: +Set up the Python virtual environment: ```bash -python3 -m venv .venv -source .venv/bin/activate + python3 -m venv .venv ``` -* Install `splunk-add-on-ucc-framework`: +If you use cmd.exe, activate the virtual environment with the following command: ```bash -pip install splunk-add-on-ucc-framework +.venv\Scripts\activate.bat ``` -* Initialize the new add-on: +If you use PowerShell, activate the virtual environment with the following command: ```bash -ucc-gen init --addon-name "demo_addon_for_splunk" --addon-display-name "Demo Add-on for Splunk" --addon-input-name demo_input +.venv\Scripts\activate.ps1 ``` -The new add-on is located in the `demo_addon_for_splunk` folder and can be built using -the [the following commands](#build-the-already-existing-add-on): +#### macOS, Linux -## Build the already existing add-on +Set up and activate the Python virtual environment: -The following commands are macOS and Linux specific: +```bash + python3 -m venv .venv + source .venv/bin/activate +``` -* Set up and activate the Python virtual environment (skip if you already have an environment): +### Install UCC package + +Install UCC package, it is available on PyPI, see . ```bash -python3 -m venv .venv -source .venv/bin/activate +pip install splunk-add-on-ucc-framework ``` -* Install `splunk-add-on-ucc-framework` and `splunk-packaging-toolkit` (skip if you already installed the libraries): +## Create a new add-on + +### Initialize a new add-on ```bash -pip install splunk-add-on-ucc-framework splunk-packaging-toolkit +ucc-gen init --addon-name "demo_addon_for_splunk" --addon-display-name "Demo Add-on for Splunk" --addon-input-name demo_input ``` -> Note: `splunk-packaging-toolkit` does not work with Python 3.10+. +For more information about the add-ons naming convention, see [Naming conventions for apps and add-ons in Splunkbase](https://dev.splunk.com/enterprise/docs/releaseapps/splunkbase/namingguidelines/) -> Note: If you use UCC `v5.30.0+`, `ucc-gen package` can be used instead of `slim`. +The new add-on is located in the `demo_addon_for_splunk` folder. -* Run `ucc-gen build` and package it - -> Provide a `--ta-version=` parameter if this repository is not version controlled. +### Build the add-on ```bash -ucc-gen build -slim package output/ +ucc-gen build --source demo_addon_for_splunk/package ``` -> Please use `ucc-gen build` instead of `ucc-gen` if you are using UCC `v5.19.0` or higher. - -Now you should see an archive created on the same level as your `globalConfig.json`. - -Now you can go to Splunk and install this add-on using the generated archive. +### Package the add-on + +```bash +ucc-gen package --path output/ +``` -After validating that the add-on was loaded correctly and all the basic operations -are working, you can extend the functionality of the input by copying and -pasting the automatically generated modular inputs file into the `package/bin` -folder. The generated inputs use the -[Splunk SDK for Python](https://github.com/splunk/splunk-sdk-python). After you -update the modular input code, you can run `ucc-gen` again, and then `ucc-gen` will -use updated modular inputs from `package/bin` instead of generating new ones. +The archive is created on the same level as your `globalConfig.json` file. -## Commands +For more information regarding commands, see [Commands](commands.md). -### `ucc-gen build` +### Install the add-on -The `ucc-gen build` command builds the add-on. As of now, running `ucc-gen` does the same thing as running `ucc-gen build`, -but eventually calling `ucc-gen` without specifying a subcommand will be -deprecated. +Go to your Splunk app instance and install this add-on using the generated archive. -It takes the following parameters: +After you check that the add-on was loaded correctly and all the basic operations are working, you can extend the functionality of the input by copying and pasting the automatically generated modular inputs file into the `package/bin` folder. The generated inputs use the Splunk SDK for Python. See [https://github.com/splunk/splunk-sdk-python](https://github.com/splunk/splunk-sdk-python). -* `--source` - [optional] folder containing the `app.manifest` and app - source. The default is `package`. -* `--config` - [optional] path to the configuration file. It defaults to - the globalConfig file in the parent directory of the source provided. - Only *.json* and *.yaml* files are accepted. -* `--ta-version` - [optional] override current version of TA. The default - version is version specified in `globalConfig.json` or `globalConfig.yaml`. - A Splunkbase compatible version of SEMVER will be used by default. -* `-o` / `--output` - [optional] output folder to store the build add-on. - By default, it will be saved in the `current directory/output` folder. - Absolute paths are accepted as well. -* `--python-binary-name` - [optional] Python binary name to use when - installing Python libraries. The default is `python3`. -* `-v` / `--verbose` - [optional] shows detailed information about - created/copied/modified/conflict files after build is complete. - This option is in experimental mode. The default is `False`. -* `--pip-version` - [optional] pip version that will be used to install python libraries. The default is `latest`. -* `--pip-legacy-resolver` - [optional] Use old pip dependency resolver by adding flag '--use-deprecated=legacy-resolver' - to pip install command. The default is`False`. NOTE: This flag is deprecated and will be removed from pip in the future. - Instead of using this flag, the correct solution would be to fix the packages your project depends on to work properly with the new resolver. Additionally, this flag is not compatible with pip version `23.2`. Use `23.2.1` instead. -* `--ui-source-map` - [optional] if present generates front-end source maps (.js.map files), that helps with code debugging. - -#### Verbose mode - -Verbose mode is available for `v5.35.0` and up. - -Running `ucc-gen build -v` or `ucc-gen build --verbose` prints additional information about -what was exactly created / copied / modified / conflicted after the build is complete. It does -not scan the `lib` folder due to the nature of the folder. - -See the following explanation on what exactly each state means: - -* `created`: The file is not in the original package and was created during the build process. -* `copied`: The file is in the original package and was copied during the build process. -* `modified`: The file is in the original package and was modified during the build process. -* `conflict`: The file is in the original package and was copied during the build process, but may be generated by UCC itself, so incorrect usage can stop the add-on from working. - -### `ucc-gen init` - -`ucc-gen init` initializes the add-on. This is available on `v5.19.0` and up. -The `ucc-gen init` command initializes the add-on and bootstraps some code in the -modular input which you, as a developer, can extend for your needs. - -Apart from standard files needed for the add-on, it also adds search head -clustering files in the `default/server.conf` file and reload triggers in the -`default/app.conf` file. Those files will be soon by generated automatically by the -`ucc-gen build` command itself. For now, you need to include them manually -during the add-on development. - -It takes the following parameters: - -* `--addon-name` - [required] add-on name. See the - [official naming convention guide](https://dev.splunk.com/enterprise/docs/releaseapps/splunkbase/namingguidelines/). -* `--addon-rest-root` - [optional] add-on REST root, defaults to `--addon-name` if not provided. -* `--addon-display-name` - [required] add-on "official" name. -* `--addon-input-name` - [required] name of the generated input. -* `--addon-version` - [optional] version of the generated add-on, with `0.0.1` by default. -* `--overwrite` - [optional] overwrites the already existing folder. - By default, you can't generate a new add-on to an already existing folder. - -### `ucc-gen import-from-aob` - -Import from AoB (Add-on Builder), from `v5.24.0` and up. It is in the -**experimental** state as of now, meaning that running this command may not -produce a 100% UCC compatible add-on, but we are going to work on future -improvements for the script itself. - -> Note: the `import-from-aob` command does not currently support Windows. - -The import functionality is based on the -[ucc_migration_test](https://github.com/tmartin14/ucc_migration_test) bash -script. -One of the ways you can use it is to download an AoB-based add-on from -Splunkbase, unarchive the folder, and then use -`ucc-gen import-from-aob --addon-name `. Or you can -run the same command against your locally developed add-on, but it should be -exported from AoB. - -It accepts the following parameters: - -* `--addon-name` - [required] add-on name. - -### `ucc-gen package` - -`ucc-gen package` can be used for `v5.30.0` and up. It packages the add-on so it can be installed. -It mimics the basics of the `slim package` command. This command can be used for most of the simple cases. - -It does not support: - -* the `.slimignore` file. -* the [dependencies section](https://dev.splunk.com/enterprise/docs/releaseapps/packageapps/packagingtoolkit/#Dependencies-section). - -It accepts the following parameters: - -* `--path` - [required] path to the built add-on (should include the `app.manifest` file). -* `-o` / `--output` - [optional] output folder to store the packaged add-on. - By default, it will be saved in the `current directory` folder. - It accepts absolute paths as well. - -## `ucc-gen build` - -`ucc-gen build`: - -* cleans the output folder. -* retrieves the package ID of the add-on. -* copies the UCC template directory under the `output/` directory. -* copies the globalConfig.json or the globalConfig.yaml file to - the `output//appserver/static/js/build` directory. -* collects and installs the add-on's requirements into the - `output//lib` directory of add-on's package. -* replaces tokens in views. -* copies the add-on's `package/*` to the `output//*` directory. -* If an add-on requires some additional configurations in packaging, - then `ucc-gen` runs the code in the `additional_packaging.py` file as well. -* **NOTE:** For the add-on's requirements, the packages are installed according to following information: - - `lib/requirements.txt` installs Python3 compatible packages into the `output//lib`. - - It removes `setuptools*`, `bin*`, `pip*`, `distribute*`, and `wheel*` if they exist from `output//lib` - - It removes the execute bit from every file under `output//lib`. -* **NOTE:** The build won't be generated only when the add-on name in `meta[name]` of `globalConfig` and `info[id][name]` in `app.manifest` are not same. +After you update the modular input code, you can run `ucc-gen` again, and then `ucc-gen` uses updated modular inputs from `package/bin` instead of generating new ones. diff --git a/mkdocs.yml b/mkdocs.yml index 0a6ce98b4..f034c1484 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -57,56 +57,57 @@ plugins: - print-site # should be at the end nav: - - Home: "index.md" - - Quickstart: "quickstart.md" + - About UCC: "index.md" + - Getting started: "quickstart.md" + - Commands: "commands.md" - ".conf files": "dot_conf_files.md" - Generated files: "generated_files.md" - Inputs: - "inputs/index.md" - Introduction: "inputs/index.md" - Tabs: "inputs/tabs.md" - - Multi-level Menu: "inputs/multilevel_menu.md" - - Helper Module: "inputs/helper.md" + - Multi-level menu: "inputs/multilevel_menu.md" + - Helper module: "inputs/helper.md" - Configuration: - "configurations/index.md" - Introduction: "configurations/index.md" - Logging: "configurations/logging.md" - Proxy: "configurations/proxy.md" - Dashboard: "dashboard.md" - - Alert Actions: + - Alert actions: - "alert_actions/index.md" - - Alert Action Scripts: "alert_actions/alert_scripts.md" - - Adaptive Response: "alert_actions/adaptive_response.md" + - Alert action scripts: "alert_actions/alert_scripts.md" + - Adaptive response: "alert_actions/adaptive_response.md" - Entity: - "entity/index.md" - Introduction: "entity/index.md" - Components: "entity/components.md" - Validators: "entity/validators.md" - - Modify Fields On Change: "entity/modifyFieldsOnValue.md" + - Modify fields On change: "entity/modifyFieldsOnValue.md" - Table: "table.md" - Additional packaging: "additional_packaging.md" - - UCC Ignore: "uccignore.md" + - UCC ignore: "uccignore.md" - OpenAPI: "openapi.md" - UCC-related libraries: "ucc_related_libraries.md" - - Custom UI Extensions: + - Custom UI extensions: - Overview: "custom_ui_extensions/overview.md" - - Custom Hook: "custom_ui_extensions/custom_hook.md" - - Custom Control: "custom_ui_extensions/custom_control.md" - - Custom Row: "custom_ui_extensions/custom_row.md" - - Custom Cell: "custom_ui_extensions/custom_cell.md" - - Custom Menu: "custom_ui_extensions/custom_menu.md" - - Custom Tab: "custom_ui_extensions/custom_tab.md" + - Custom hook: "custom_ui_extensions/custom_hook.md" + - Custom control: "custom_ui_extensions/custom_control.md" + - Custom row: "custom_ui_extensions/custom_row.md" + - Custom cell: "custom_ui_extensions/custom_cell.md" + - Custom menu: "custom_ui_extensions/custom_menu.md" + - Custom tab: "custom_ui_extensions/custom_tab.md" - Advanced: - - Custom Mapping: "advanced/custom_mapping.md" - - Dependent Dropdown: "advanced/dependent_dropdown.md" - - OAuth Support: "advanced/oauth_support.md" - - Custom REST Handler: "advanced/custom_rest_handler.md" - - Groups Feature: "advanced/groups_feature.md" - - Save Validator: "advanced/save_validator.md" + - Custom mapping: "advanced/custom_mapping.md" + - Dependent dropdown: "advanced/dependent_dropdown.md" + - OAuth support: "advanced/oauth_support.md" + - Custom REST handler: "advanced/custom_rest_handler.md" + - Groups feature: "advanced/groups_feature.md" + - Save validator: "advanced/save_validator.md" - OS-dependent libraries: "advanced/os-dependent_libraries.md" - - Sub Description: "advanced/sub_description.md" - - Custom Warning: "advanced/custom_warning.md" + - Sub description: "advanced/sub_description.md" + - Custom warning: "advanced/custom_warning.md" - Troubleshooting: "troubleshooting.md" - Contributing: "contributing.md" - Changelog: "CHANGELOG.md"