%global _empty_manifest_terminate_build 0 Name: python-pybanyan Version: 0.29.4 Release: 1 Summary: API library and command-line interface for Banyan Security License: apache URL: https://github.com/banyansecurity/pybanyan/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/42/28/8abc9c5a0e083ca04cdf68ea4420f69167fb5382e636085ebd3cfeb669de/pybanyan-0.29.4.tar.gz BuildArch: noarch Requires: python3-dnspython Requires: python3-marshmallow Requires: python3-marshmallow-dataclass Requires: python3-dateutil Requires: python3-cement Requires: python3-jinja2 Requires: python3-pyyaml Requires: python3-colorlog Requires: python3-semver Requires: python3-jwt Requires: python3-iso8601 Requires: python3-tabulate Requires: python3-pyOpenSSL Requires: python3-requests Requires: python3-aenum Requires: python3-colorama Requires: python3-cryptography Requires: python3-boto3 Requires: python3-ec2-metadata Requires: python3-azure-identity Requires: python3-msgraph-core Requires: python3-azure-identity Requires: python3-azure-mgmt-resource Requires: python3-azure-mgmt-compute Requires: python3-azure-mgmt-network Requires: python3-google-api-python-client Requires: python3-okta Requires: python3-oci %description # API library and command-line interface for Banyan Security [![Build Status](https://travis-ci.org/banyansecurity/pybanyan.svg?branch=master)](https://travis-ci.org/banyansecurity/pybanyan) [![codecov](https://codecov.io/gh/banyansecurity/pybanyan/branch/master/graph/badge.svg)](https://codecov.io/gh/banyansecurity/pybanyan) [![PyPI version](https://badge.fury.io/py/pybanyan.svg)](https://badge.fury.io/py/pybanyan) ## Prerequisites Python 3.7+ must be installed. ## Installation ### Installing the easy way ```console $ pip install pybanyan ``` ### Installing the hard way ```console $ git clone https://github.com/banyansecurity/pybanyan.git $ cd pybanyan $ pip install -r requirements.txt $ python setup.py install --user ``` ## Usage This package contains both an API client and a CLI tool. To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. ### API library Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: ```python from banyan.api import BanyanApiClient c = BanyanApiClient() for service in c.services_web.list(): print(service.name) ``` Output: ```console $ python examples/list_services.py jira jupyter kube mysql rds-mysql rds-pgsql ``` The `BanyanApiClient` class accepts optional arguments to specify the API server and API credential. If not provided, it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. Full API documentation is available in the [docs]. ### Banyan CLI tool Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): ```ini [banyan] api_url = https://net.banyanops.com api_key = MY_API_KEY ``` The CLI is invoked with the `banyan` tool. It contains a number of commands and sub-commands to help you work with policies, roles, services, users, and other objects in Banyan. Run the `banyan` tool by itself to see the available commands. ```console $ banyan usage: banyan [options] [ ...] [parameters] API library and command-line interface for Banyan Security options: -h, --help show this help message and exit -d, --debug full application debug mode -q, --quiet suppress all console output --version, -v show program's version number and exit --api-url API_URL URL for the Banyan API server. Can also be configured via the BANYAN_API_URL environment variable. --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment variable. --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. --output-format {table,json,yaml}, -o {table,json,yaml} desired output format (table, json, yaml) Commands: {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} netagent (deprecated: use access-tier) manage netagents service (deprecated: use service-web or service-infra) manage web and TCP services and workloads shield (deprecated) manage shield clusters access-tier manage access tiers api-key manage API keys audit retrieve audit logs cloud-resource manage cloud resources discovered from IaaS connector manage connectors device manage devices event report on security events export export all objects from an organization policy manage authorization policies for users and workloads role manage user and workload roles service-infra manage infrastructure services service-tunnel manage service tunnels service-web manage hosted website services user manage users ``` Each of the commands has multiple subcommands. For example, `banyan service` allows you to list services, create/delete, enable/disable, etc. Run the command without any subcommand to see the options: ```console $ banyan service-web usage: banyan service-web [-h] {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} ... optional arguments: -h, --help show this help message and exit sub-commands: {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} attach-policy attach a policy to a service create create a new service from a JSON specification delete delete a service detach-policy detach the active policy from a service disable disable a service enable enable a service get show the definition of a registered service list list registered services test run sanity checks on a service update update an existing service from a JSON specification ``` To see the full help available for any command, just add the `-h` or `--help` option to the end of the command. For example: ```console $ banyan service-web attach-policy --help usage: banyan service-web attach-policy [-h] [--permissive] [--enforcing] service_name_or_id policy_name_or_id positional arguments: service_name_or_id Name or ID of the service to attach a policy to. policy_name_or_id Name or ID of the policy to attach to the service. optional arguments: -h, --help show this help message and exit --permissive Set the policy to permissive mode (allow all traffic and log any unauthorized access). --enforcing Set the policy to enforcing mode (deny unauthorized access). ``` ## Integrations You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: ### 1. Synchronize cloud resources from your IaaS provider You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: - [AWS](docs/iaas/aws.md) - [Azure Cloud](docs/iaas/azure_cloud.md) - [GCP](docs/iaas/gcp.md) - [Oracle Cloud](docs/iaas/oracle_cloud.md) ### 2. Bookmark Banyan services into your SSO catalog You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. - [Okta](docs/idp/okta.md) - [AzureAD](docs/idp/azure_ad.md) ## Development To work on the pybanyan code, follow the instructions in the [documentation][devel]. ## Support This API library and its accompanying CLI utility are provided free of charge and without support. To report issues with the library, please create a new [issue in Github][github-issue]. ## Contributions We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request workflow][github-pr]. [docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ [github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 [github-issue]: https://github.com/banyansecurity/pybanyan/issues/new [devel]: https://pybanyan.readthedocs.io/development.html %package -n python3-pybanyan Summary: API library and command-line interface for Banyan Security Provides: python-pybanyan BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pybanyan # API library and command-line interface for Banyan Security [![Build Status](https://travis-ci.org/banyansecurity/pybanyan.svg?branch=master)](https://travis-ci.org/banyansecurity/pybanyan) [![codecov](https://codecov.io/gh/banyansecurity/pybanyan/branch/master/graph/badge.svg)](https://codecov.io/gh/banyansecurity/pybanyan) [![PyPI version](https://badge.fury.io/py/pybanyan.svg)](https://badge.fury.io/py/pybanyan) ## Prerequisites Python 3.7+ must be installed. ## Installation ### Installing the easy way ```console $ pip install pybanyan ``` ### Installing the hard way ```console $ git clone https://github.com/banyansecurity/pybanyan.git $ cd pybanyan $ pip install -r requirements.txt $ python setup.py install --user ``` ## Usage This package contains both an API client and a CLI tool. To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. ### API library Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: ```python from banyan.api import BanyanApiClient c = BanyanApiClient() for service in c.services_web.list(): print(service.name) ``` Output: ```console $ python examples/list_services.py jira jupyter kube mysql rds-mysql rds-pgsql ``` The `BanyanApiClient` class accepts optional arguments to specify the API server and API credential. If not provided, it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. Full API documentation is available in the [docs]. ### Banyan CLI tool Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): ```ini [banyan] api_url = https://net.banyanops.com api_key = MY_API_KEY ``` The CLI is invoked with the `banyan` tool. It contains a number of commands and sub-commands to help you work with policies, roles, services, users, and other objects in Banyan. Run the `banyan` tool by itself to see the available commands. ```console $ banyan usage: banyan [options] [ ...] [parameters] API library and command-line interface for Banyan Security options: -h, --help show this help message and exit -d, --debug full application debug mode -q, --quiet suppress all console output --version, -v show program's version number and exit --api-url API_URL URL for the Banyan API server. Can also be configured via the BANYAN_API_URL environment variable. --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment variable. --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. --output-format {table,json,yaml}, -o {table,json,yaml} desired output format (table, json, yaml) Commands: {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} netagent (deprecated: use access-tier) manage netagents service (deprecated: use service-web or service-infra) manage web and TCP services and workloads shield (deprecated) manage shield clusters access-tier manage access tiers api-key manage API keys audit retrieve audit logs cloud-resource manage cloud resources discovered from IaaS connector manage connectors device manage devices event report on security events export export all objects from an organization policy manage authorization policies for users and workloads role manage user and workload roles service-infra manage infrastructure services service-tunnel manage service tunnels service-web manage hosted website services user manage users ``` Each of the commands has multiple subcommands. For example, `banyan service` allows you to list services, create/delete, enable/disable, etc. Run the command without any subcommand to see the options: ```console $ banyan service-web usage: banyan service-web [-h] {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} ... optional arguments: -h, --help show this help message and exit sub-commands: {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} attach-policy attach a policy to a service create create a new service from a JSON specification delete delete a service detach-policy detach the active policy from a service disable disable a service enable enable a service get show the definition of a registered service list list registered services test run sanity checks on a service update update an existing service from a JSON specification ``` To see the full help available for any command, just add the `-h` or `--help` option to the end of the command. For example: ```console $ banyan service-web attach-policy --help usage: banyan service-web attach-policy [-h] [--permissive] [--enforcing] service_name_or_id policy_name_or_id positional arguments: service_name_or_id Name or ID of the service to attach a policy to. policy_name_or_id Name or ID of the policy to attach to the service. optional arguments: -h, --help show this help message and exit --permissive Set the policy to permissive mode (allow all traffic and log any unauthorized access). --enforcing Set the policy to enforcing mode (deny unauthorized access). ``` ## Integrations You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: ### 1. Synchronize cloud resources from your IaaS provider You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: - [AWS](docs/iaas/aws.md) - [Azure Cloud](docs/iaas/azure_cloud.md) - [GCP](docs/iaas/gcp.md) - [Oracle Cloud](docs/iaas/oracle_cloud.md) ### 2. Bookmark Banyan services into your SSO catalog You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. - [Okta](docs/idp/okta.md) - [AzureAD](docs/idp/azure_ad.md) ## Development To work on the pybanyan code, follow the instructions in the [documentation][devel]. ## Support This API library and its accompanying CLI utility are provided free of charge and without support. To report issues with the library, please create a new [issue in Github][github-issue]. ## Contributions We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request workflow][github-pr]. [docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ [github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 [github-issue]: https://github.com/banyansecurity/pybanyan/issues/new [devel]: https://pybanyan.readthedocs.io/development.html %package help Summary: Development documents and examples for pybanyan Provides: python3-pybanyan-doc %description help # API library and command-line interface for Banyan Security [![Build Status](https://travis-ci.org/banyansecurity/pybanyan.svg?branch=master)](https://travis-ci.org/banyansecurity/pybanyan) [![codecov](https://codecov.io/gh/banyansecurity/pybanyan/branch/master/graph/badge.svg)](https://codecov.io/gh/banyansecurity/pybanyan) [![PyPI version](https://badge.fury.io/py/pybanyan.svg)](https://badge.fury.io/py/pybanyan) ## Prerequisites Python 3.7+ must be installed. ## Installation ### Installing the easy way ```console $ pip install pybanyan ``` ### Installing the hard way ```console $ git clone https://github.com/banyansecurity/pybanyan.git $ cd pybanyan $ pip install -r requirements.txt $ python setup.py install --user ``` ## Usage This package contains both an API client and a CLI tool. To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. ### API library Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: ```python from banyan.api import BanyanApiClient c = BanyanApiClient() for service in c.services_web.list(): print(service.name) ``` Output: ```console $ python examples/list_services.py jira jupyter kube mysql rds-mysql rds-pgsql ``` The `BanyanApiClient` class accepts optional arguments to specify the API server and API credential. If not provided, it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. Full API documentation is available in the [docs]. ### Banyan CLI tool Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): ```ini [banyan] api_url = https://net.banyanops.com api_key = MY_API_KEY ``` The CLI is invoked with the `banyan` tool. It contains a number of commands and sub-commands to help you work with policies, roles, services, users, and other objects in Banyan. Run the `banyan` tool by itself to see the available commands. ```console $ banyan usage: banyan [options] [ ...] [parameters] API library and command-line interface for Banyan Security options: -h, --help show this help message and exit -d, --debug full application debug mode -q, --quiet suppress all console output --version, -v show program's version number and exit --api-url API_URL URL for the Banyan API server. Can also be configured via the BANYAN_API_URL environment variable. --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment variable. --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. --output-format {table,json,yaml}, -o {table,json,yaml} desired output format (table, json, yaml) Commands: {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} netagent (deprecated: use access-tier) manage netagents service (deprecated: use service-web or service-infra) manage web and TCP services and workloads shield (deprecated) manage shield clusters access-tier manage access tiers api-key manage API keys audit retrieve audit logs cloud-resource manage cloud resources discovered from IaaS connector manage connectors device manage devices event report on security events export export all objects from an organization policy manage authorization policies for users and workloads role manage user and workload roles service-infra manage infrastructure services service-tunnel manage service tunnels service-web manage hosted website services user manage users ``` Each of the commands has multiple subcommands. For example, `banyan service` allows you to list services, create/delete, enable/disable, etc. Run the command without any subcommand to see the options: ```console $ banyan service-web usage: banyan service-web [-h] {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} ... optional arguments: -h, --help show this help message and exit sub-commands: {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update} attach-policy attach a policy to a service create create a new service from a JSON specification delete delete a service detach-policy detach the active policy from a service disable disable a service enable enable a service get show the definition of a registered service list list registered services test run sanity checks on a service update update an existing service from a JSON specification ``` To see the full help available for any command, just add the `-h` or `--help` option to the end of the command. For example: ```console $ banyan service-web attach-policy --help usage: banyan service-web attach-policy [-h] [--permissive] [--enforcing] service_name_or_id policy_name_or_id positional arguments: service_name_or_id Name or ID of the service to attach a policy to. policy_name_or_id Name or ID of the policy to attach to the service. optional arguments: -h, --help show this help message and exit --permissive Set the policy to permissive mode (allow all traffic and log any unauthorized access). --enforcing Set the policy to enforcing mode (deny unauthorized access). ``` ## Integrations You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: ### 1. Synchronize cloud resources from your IaaS provider You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: - [AWS](docs/iaas/aws.md) - [Azure Cloud](docs/iaas/azure_cloud.md) - [GCP](docs/iaas/gcp.md) - [Oracle Cloud](docs/iaas/oracle_cloud.md) ### 2. Bookmark Banyan services into your SSO catalog You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. - [Okta](docs/idp/okta.md) - [AzureAD](docs/idp/azure_ad.md) ## Development To work on the pybanyan code, follow the instructions in the [documentation][devel]. ## Support This API library and its accompanying CLI utility are provided free of charge and without support. To report issues with the library, please create a new [issue in Github][github-issue]. ## Contributions We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request workflow][github-pr]. [docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ [github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 [github-issue]: https://github.com/banyansecurity/pybanyan/issues/new [devel]: https://pybanyan.readthedocs.io/development.html %prep %autosetup -n pybanyan-0.29.4 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pybanyan -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue May 30 2023 Python_Bot - 0.29.4-1 - Package Spec generated