Metadata-Version: 2.1
Name: vdk-control-cli
Version: 1.0.33
Summary: VDK Control CLI allows user to create, delete, manage and their Data Jobs in Kubernetes runtime.
Home-page: https://github.com/vmware/versatile-data-kit
Author: VMware Inc.
Author-email: aivanov@vmware.com
License: UNKNOWN
Project-URL: Documentation, https://github.com/vmware/versatile-data-kit/wiki
Project-URL: Source, https://github.com/vmware/versatile-data-kit/projects/vdk-control-cli
Description: # Versatile Data Kit Control CLI
        
        VDK Control CLI is meant for Data Engineers to use to manage the lifecycle of jobs - create, delete, deploy, configure Data Jobs.
        
        To build or contribute, see [CONTRIBUTING.md](./CONTRIBUTING.md).
        
        ## Installation
        Install VDK Control CLI with:
        ```bash
        pip install vdk-control-cli
        ```
        This will install console application called `vdkcli`
        
        Then run help to see what it can do:
        ```bash
        vdkcli --help
        ```
        
        ### Environment variables:
        
        * VDK_AUTHENTICATION_DISABLE  - disables security (vdkcli login will not be required). See Security section.
        * VDK_BASE_CONFIG_FOLDER -  Override local base configuration folder (by default $HOME folder) . Use in case multiple users need to login (e.g in case of automation) on same machine.
        
        ### Security
        By default, all operation require authentication: vdkcli login must have finished successfully.
        You can disable it with environment variable `VDK_AUTHENTICATION_DISABLE=true`
        This would only work if Control Service which VDK CLI uses also has security disabled.
        
        In case of credentials type login flow we start a process on port `31113` to receive the credentials.
        If you already have process running on `31113` you can override the value.
        To override the port set environmental variable `OAUTH_PORT` with free port which the client can use.
        
        ## Plugins
        
        ### Installing and Using plugins
        
        Installing a third party plugin can be easily done with pip:
        
        ```bash
        pip install vdk-control-cli-NAME
        pip uninstall vdk-control-cli-NAME
        ```
        If a plugin is installed, vdk automatically finds and integrates it.
        
        ### Write your own plugin
        
        A plugin is python module that enhances or changes the behaviour of the vdk cli. <br>
        A plugin contains one or multiple hook functions.
        
        See all supported hook function specifications that can be implemented in [specs.py](src/taurus/vdk/api/plugin/specs.py)
        
        In order to create a new plugin there are only 2 steps:<br>
        
        * Create your implementation of the plugin's hook(s):
        ```python
        # define hookimpl as follows (library requirement: pluggy)
        hookimpl = pluggy.HookimplMarker("vdk_control_cli.plugin")
        # though it's better to use `taurus.vdk.plugin.markers.hookimpl` from vdk-control-cli python package
        
        # name of function must match name of hookspec function
        @hookimpl
        def get_default_commands_options():
            # your implementation here ; for example to set defaults for `vdkcli login --type --oauth2-authorization-url` command
            default_options = {
                "login": {
                    "auth_type": "api-token", # note values must be valid or the plugin may break the CLI, no checking is done at this point
                    "api_token_authorization_url": "http://localhost/authorize" # replace dashes with underscore for the argument name
                }
            }
            return default_options
        ```
        * Register as plugin by listing the plugin modules in vdk_control_cli.plugin entry_point in your setup.py:
        ```python
            entry_points={ 'vdk_control_cli.plugin': ['name_of_plugin = myproject.pluginmodule'] }
        ```
        
        <br>The plugin system is based on [pluggy.](https://pluggy.readthedocs.io/en/latest/index.html#implementations)
        <br>SDK Extensibility design can be seen [here](https://github.com/vmware/versatile-data-kit/tree/main/specs)
        
        ## Authentication
        
        In order to use credentials login type you need to create OAuth2 Application.
        
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Python: <3.10,>=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
