diff --git a/polyapi/cli.py b/polyapi/cli.py index e99cded..74350a1 100644 --- a/polyapi/cli.py +++ b/polyapi/cli.py @@ -113,11 +113,13 @@ def generate_command(args): fn_add_parser.add_argument("--execution-api-key", required=False, default="", help="API key for execution (for server functions only).") fn_add_parser.add_argument("--disable-ai", "--skip-generate", action="store_true", help="Pass --disable-ai skip AI generation of missing descriptions") fn_add_parser.add_argument("--generate-contexts", type=str, help="Server function only – only include certain contexts to speed up function execution") + fn_add_parser.add_argument("--visiblity", type=str, help="Specifies the visibility of a function. Options: PUBLIC, TENANT, ENVIRONMENT. Case insensitive") def add_function(args): initialize_config() logs_enabled = args.logs == "enabled" if args.logs else None err = "" + visibility = args.visibility.upper() if args.server and args.client: err = "Specify either `--server` or `--client`. Found both." elif not args.server and not args.client: @@ -126,6 +128,8 @@ def add_function(args): err = "Option `logs` is only for server functions (--server)." elif args.generate_contexts and not args.server: err = "Option `generate-contexts` is only for server functions (--server)." + elif visibility not in ["PUBLIC", "TENANT", "ENVIRONMENT"]: + err = "Invalid visiblity argument, visibility must be one of ['PUBLIC', 'TENANT', 'ENVIRONMENT']" if err: print_red("ERROR") @@ -142,7 +146,8 @@ def add_function(args): logs_enabled=logs_enabled, generate=not args.disable_ai, execution_api_key=args.execution_api_key, - generate_contexts=args.generate_contexts + generate_contexts=args.generate_contexts, + visibility=visibility ) fn_add_parser.set_defaults(command=add_function) diff --git a/polyapi/function_cli.py b/polyapi/function_cli.py index bdadd0d..219bbb0 100644 --- a/polyapi/function_cli.py +++ b/polyapi/function_cli.py @@ -25,6 +25,7 @@ def function_add_or_update( server: bool, logs_enabled: Optional[bool], generate_contexts: Optional[str], + visibility: Optional[str], generate: bool = True, execution_api_key: str = "" ): @@ -55,6 +56,7 @@ def function_add_or_update( "description": description or parsed["types"]["description"], "code": code, "language": "python", + "visibility": visibility or "ENVIRONMENT", "returnType": get_jsonschema_type(return_type), "arguments": [{**p, "key": p["name"], "type": get_jsonschema_type(p["type"])} for p in parsed["types"]["params"]], "logsEnabled": logs_enabled, diff --git a/pyproject.toml b/pyproject.toml index 063a6e3..a49fb75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=61.2", "wheel"] [project] name = "polyapi-python" -version = "0.3.10.dev3" +version = "0.3.10.dev4" description = "The Python Client for PolyAPI, the IPaaS by Developers for Developers" authors = [{ name = "Dan Fellin", email = "dan@polyapi.io" }] dependencies = [