stoobly-agent 1.9.8__py3-none-any.whl → 1.9.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
stoobly_agent/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
1
  COMMAND = 'stoobly-agent'
2
- VERSION = '1.9.8'
2
+ VERSION = '1.9.9'
@@ -28,7 +28,7 @@ app_dir=$$(realpath "$${STOOBLY_APP_DIR:-$(CONTEXT_DIR_DEFAULT)}")
28
28
  ca_certs_dir=$$(realpath "$${STOOBLY_CA_CERTS_DIR:-$(app_data_dir)/ca_certs}")
29
29
  certs_dir=$$(realpath "$${STOOBLY_CERTS_DIR:-$(app_data_dir)/certs}")
30
30
  context_dir=$$(realpath "$${STOOBLY_CONTEXT_DIR:-$(CONTEXT_DIR_DEFAULT)}")
31
- env_file=$$(realpath "$${STOOBLY_ENV_FILE:-.env}")
31
+ env_file=$$(realpath "$${STOOBLY_ENV_FILE:-.env}" 2> /dev/null || echo '')
32
32
  workflow=record
33
33
  workflow_service_options=$(shell echo $$STOOBLY_WORKFLOW_SERVICE_OPTIONS)
34
34
 
@@ -52,24 +52,24 @@ workflow_up_options=$(working_dir_options) $(certs_dir_options) --user-id $(USER
52
52
  # Commands
53
53
  exec_env=APP_DIR="$(app_dir)" CA_CERTS_DIR="$(ca_certs_dir)" USER_ID="$(USER_ID)"
54
54
  exec_up=$(DOCKER_BIN) compose -f "$(exec_docker_compose_file_path)" run --rm stoobly_ui.command
55
- source_env=[ -f "$(env_file)" ] && . "$(env_file)"
55
+ source_env=set -a; [ -f "$(env_file)" ] && . "$(env_file)"; set +a
56
56
 
57
57
  # Build base image
58
58
  stoobly_exec_build=$(DOCKER_BIN) build $(stoobly_exec_build_args) $(app_namespace_dir) > /dev/null
59
59
  stoobly_exec_build_args=-f "$(dockerfile_path)" -t stoobly.$(USER_ID) --build-arg USER_ID=$(USER_ID) $(PULL_OPTION) --quiet
60
60
 
61
61
  # Exec any
62
- stoobly_exec=$(stoobly_exec_build) && $(stoobly_exec_env) $(exec_up)
63
- stoobly_exec_env=$(source_env) && $(exec_env) CONTEXT_DIR="$(context_dir)"
62
+ stoobly_exec=$(source_env); $(stoobly_exec_build) && $(stoobly_exec_env) $(exec_up)
63
+ stoobly_exec_env=$(exec_env) CONTEXT_DIR="$(context_dir)"
64
64
 
65
65
  # Exec workflow run
66
66
  # Scaffold is stored in the application source code directory.
67
67
  # When running a scaffold command from within a container, it needs access to $(app_dir) rather than $(context_dir)
68
- stoobly_exec_run=$(stoobly_exec_build) && $(stoobly_exec_run_env) $(exec_up)
69
- stoobly_exec_run_env=$(source_env) && $(exec_env) CONTEXT_DIR="$(app_dir)"
68
+ stoobly_exec_run=$(source_env); $(stoobly_exec_build) && $(stoobly_exec_run_env) $(exec_up)
69
+ stoobly_exec_run_env=$(exec_env) CONTEXT_DIR="$(app_dir)"
70
70
 
71
71
  # Workflow run
72
- workflow_run=$(source_env) && bash "$(app_dir)/$(workflow_script)"
72
+ workflow_run=bash "$(app_dir)/$(workflow_script)"
73
73
 
74
74
  action/install:
75
75
  $(eval action=install)
@@ -37,7 +37,7 @@ from stoobly_agent.config.data_dir import DataDir
37
37
  from stoobly_agent.lib.logger import bcolors, DEBUG, ERROR, INFO, Logger, WARNING
38
38
 
39
39
  from .helpers.print_service import FORMATS, print_services, select_print_options
40
- from .validators.scaffold import validate_app_name, validate_hostname, validate_namespace, validate_service_name
40
+ from .validators.scaffold import validate_app_name, validate_hostname, validate_namespace, validate_network, validate_service_name
41
41
 
42
42
  LOG_ID = 'Scaffold'
43
43
 
@@ -88,7 +88,7 @@ def hostname(ctx):
88
88
  help="Scaffold application"
89
89
  )
90
90
  @click.option('--app-dir-path', default=current_working_dir, help='Path to create the app scaffold.')
91
- @click.option('--network', help='App default network name. Defaults to app name.')
91
+ @click.option('--network', callback=validate_network, help='App default network name. Defaults to app name.')
92
92
  @click.option('--quiet', is_flag=True, help='Disable log output.')
93
93
  @click.option('--ui-port', default=4200, type=click.IntRange(1, 65535), help='UI service port.')
94
94
  @click.argument('app_name', callback=validate_app_name)
@@ -335,7 +335,7 @@ def copy(**kwargs):
335
335
  Log levels can be "debug", "info", "warning", or "error"
336
336
  ''')
337
337
  @click.option('--namespace', callback=validate_namespace, help='Workflow namespace.')
338
- @click.option('--network', help='Workflow network name.')
338
+ @click.option('--network', callback=validate_network, help='Workflow network name.')
339
339
  @click.option('--rmi', is_flag=True, help='Remove images used by containers.')
340
340
  @click.option('--script-path', help='Path to intermediate script path.')
341
341
  @click.option('--service', multiple=True, help='Select which services to log. Defaults to all.')
@@ -480,7 +480,7 @@ def logs(**kwargs):
480
480
  ''')
481
481
  @click.option('--mkcert', is_flag=True, help='Set to generate SSL certs for HTTPS services.')
482
482
  @click.option('--namespace', callback=validate_namespace, help='Workflow namespace.')
483
- @click.option('--network', help='Workflow network name.')
483
+ @click.option('--network', callback=validate_network, help='Workflow network name.')
484
484
  @click.option('--no-build', is_flag=True, help='Do not build images before starting containers.')
485
485
  @click.option('--no-publish', is_flag=True, help='Do not publish all ports.')
486
486
  @click.option('--pull', is_flag=True, help='Pull image before running.')
@@ -19,6 +19,15 @@ def validate_hostname(ctx, param, hostname: str) -> str:
19
19
  sys.exit(1)
20
20
  return hostname
21
21
 
22
+ def validate_network(ctx, param, network: str) -> str:
23
+ if not network:
24
+ return
25
+ network_regex = re.compile(r'^[a-zA-Z0-9._-]+$')
26
+ if not re.search(network_regex, network):
27
+ print(f"Error: network {network} is invalid.", file=sys.stderr)
28
+ sys.exit(1)
29
+ return network
30
+
22
31
  def validate_namespace(ctx, param, namespace: str) -> str:
23
32
  if not namespace:
24
33
  return
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.9.8
3
+ Version: 1.9.9
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  Author: Matt Le
@@ -1,4 +1,4 @@
1
- stoobly_agent/__init__.py,sha256=pgRpNAxM2kYEnWKeHmmPTeaZZ9gCc4cXCyewkjyES70,44
1
+ stoobly_agent/__init__.py,sha256=ynj3t69d_GKqdl_NzWnMm4vXo8bYFLqoXtgFzDp3BXk,44
2
2
  stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  stoobly_agent/app/api/__init__.py,sha256=ctkB8KR-eXO0SFhj602huHiyvQ3PslFWd8fkcufgrAI,1000
4
4
  stoobly_agent/app/api/application_http_request_handler.py,sha256=Vvz53yB0bR7J-QqMAkLlhcZrA4P64ZEN7w8cMbgl6o0,5261
@@ -105,7 +105,7 @@ stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOW
105
105
  stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=veigidzR4EwGi8dc0v_l4Ik7cZikDBnLcvwcHNc1Wzg,11457
106
106
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=x8C_a0VoO_vUbosp4_6IC1U7Ge9NnUdVKDPpVMtMkeY,171
107
107
  stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=Okk4Q0Fj7Wi5NU58gQfpjpFwAL3RUBJyRe56kteQfcA,158
108
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=ngPJu23xNtj7mxNotj-cgD6nijZx7I63-VlxhYnEVaw,8931
108
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=VGtO-dz0tXHfUN9MMkc3Lqfqg6Vhdb_aiz7cxiot3DE,8950
109
109
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=6tFqXh3ine8vaD0FCL5TMoY5NjKx2wLUR8XpW3tJtew,245
110
110
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.networks.yml,sha256=I4PbJpQjFHb5IbAUWNvYM6okDEtmwtKFDQg-yog05WM,141
111
111
  stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
@@ -204,7 +204,7 @@ stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4
204
204
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
205
205
  stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=AZhLd1N260RjXEiUSRppqfhQMwVyRnn0jpapRu4FwyM,11114
206
206
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=Uo_yo6rVR1ZR7xpvsQvlH48AyMBVLRupd4G-bRjzm_Q,5584
207
- stoobly_agent/app/cli/scaffold_cli.py,sha256=DTPrvfEC38e0RUILeiuevGJ7JiXs_YoXq8ITFtC3FIo,32523
207
+ stoobly_agent/app/cli/scaffold_cli.py,sha256=PmFDxe0pACL7hdyf7bPlol3xxGkOS4VES92HTAnga6Y,32622
208
208
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
209
209
  stoobly_agent/app/cli/snapshot_cli.py,sha256=1Dw5JgDlmG6vctrawIRO7CdB73vAQk_wRBnPG2lVOrQ,11929
210
210
  stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
@@ -215,7 +215,7 @@ stoobly_agent/app/cli/types/request.py,sha256=QthojE5sfx7OvKu-vVNnSUfGk8n4pLzuBQ
215
215
  stoobly_agent/app/cli/types/scenario.py,sha256=28WxmOlbm2Bsek1uu7yc4hJGz-d5oHbYAro7LlFWRoc,81
216
216
  stoobly_agent/app/cli/types/snapshot_migration.py,sha256=4_Re46FKjsflcTOO3qhNsbWWmdEU67SFsF-XE_FKG3M,1859
217
217
  stoobly_agent/app/cli/types/test.py,sha256=1c458B7DFBWsEk5Q1CrZ2CUi84YzEzcs-W4qTcudwAk,714
218
- stoobly_agent/app/cli/validators/scaffold.py,sha256=ERmdjcryf8YmTHNTHyptKjomATpZo-17bPAPb_ps8ao,1388
218
+ stoobly_agent/app/cli/validators/scaffold.py,sha256=Y2XQrN2RFMcBh228q6inTwZGoN0K5FmXO8JfrgKVwJA,1669
219
219
  stoobly_agent/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
220
  stoobly_agent/app/models/adapters/__init__.py,sha256=cEEE--Bvrvk6DAsHx_uPgFhLnZJETP4zSBtWjMqyIKc,233
221
221
  stoobly_agent/app/models/adapters/joined_request_adapter.py,sha256=fSq16n3AAlxi8KJdBESHp3JGio_M9uzMnHbnQU8VI3w,3598
@@ -751,8 +751,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
751
751
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
752
752
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
753
753
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
754
- stoobly_agent-1.9.8.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
755
- stoobly_agent-1.9.8.dist-info/METADATA,sha256=DCTUMgBj6zWTfB9H9U37CFC9sEcLasQtaXUIKjG9szo,3087
756
- stoobly_agent-1.9.8.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
757
- stoobly_agent-1.9.8.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
758
- stoobly_agent-1.9.8.dist-info/RECORD,,
754
+ stoobly_agent-1.9.9.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
755
+ stoobly_agent-1.9.9.dist-info/METADATA,sha256=P2fxdK2aPocPzJHjKZKqyFF4xz9zhyeERR-EylS6FLA,3087
756
+ stoobly_agent-1.9.9.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
757
+ stoobly_agent-1.9.9.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
758
+ stoobly_agent-1.9.9.dist-info/RECORD,,