stoobly-agent 1.9.4__py3-none-any.whl → 1.9.5__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.4'
2
+ VERSION = '1.9.5'
@@ -10,7 +10,7 @@ from stoobly_agent.app.cli.scaffold.service_config import ServiceConfig
10
10
  from stoobly_agent.app.cli.scaffold.docker.constants import APP_INGRESS_NETWORK_NAME, APP_EGRESS_NETWORK_NAME, DOCKER_COMPOSE_BASE, DOCKER_COMPOSE_BASE_TEMPLATE
11
11
  from stoobly_agent.app.cli.scaffold.templates.constants import CORE_GATEWAY_SERVICE_NAME
12
12
 
13
- def configure_gateway(service_paths: List[str], no_publish = False):
13
+ def configure_gateway(workflow_name, service_paths: List[str], no_publish = False):
14
14
  if len(service_paths) == 0:
15
15
  return
16
16
 
@@ -36,7 +36,7 @@ def configure_gateway(service_paths: List[str], no_publish = False):
36
36
  gateway_base['ports'] = ports
37
37
 
38
38
  app_dir_path = os.path.dirname(os.path.dirname(service_dir_path))
39
- __with_traefik_config(service_paths, gateway_base, app_dir_path)
39
+ __with_traefik_config(workflow_name, service_paths, app_dir_path, gateway_base)
40
40
  __with_networks(gateway_base, hostnames)
41
41
 
42
42
  with open(docker_compose_dest_path, 'w') as fp:
@@ -50,7 +50,7 @@ def __with_networks(config: dict, hostnames: List[str]):
50
50
  'aliases': hostnames
51
51
  }
52
52
 
53
- def __with_traefik_config(service_paths: str, compose: dict, app_dir_path: str):
53
+ def __with_traefik_config(workflow_name: str, service_paths: List[str], app_dir_path: str, compose: dict):
54
54
  config_dest = '/etc/traefik/traefik.yml'
55
55
 
56
56
  if not compose['volumes']:
@@ -98,7 +98,7 @@ def __with_traefik_config(service_paths: str, compose: dict, app_dir_path: str):
98
98
  })
99
99
 
100
100
  # Create traefik.yml in .stoobly/tmp
101
- traefik_template_relative_path = os.path.join(DATA_DIR_NAME, TMP_DIR_NAME, 'traefik.yml')
101
+ traefik_template_relative_path = os.path.join(DATA_DIR_NAME, TMP_DIR_NAME, workflow_name, 'traefik.yml')
102
102
  traefik_template_dest_path = os.path.join(app_dir_path, traefik_template_relative_path)
103
103
 
104
104
  if not os.path.exists(os.path.dirname(traefik_template_dest_path)):
@@ -33,8 +33,9 @@ app_namespace_dir=$(app_data_dir)/docker
33
33
  app_tmp_dir=$(app_data_dir)/tmp
34
34
  dockerfile_path=$(app_namespace_dir)/.Dockerfile.context
35
35
  exec_docker_compose_file_path=$(app_namespace_dir)/stoobly-ui/exec/.docker-compose.exec.yml
36
- exec_namespace=$(shell echo $(context_dir) | (md5 2>/dev/null || md5sum 2>/dev/null || shasum 2>/dev/null) | awk '{print $$1}')
37
- workflow_script=.stoobly/tmp/$(workflow).sh
36
+ exec_namespace=$(shell echo "$(workflow_namespace).$(context_dir)" | (md5 2>/dev/null || md5sum 2>/dev/null || shasum 2>/dev/null) | awk '{print $$1}')
37
+ workflow_namespace=$(if $(namespace),$(namespace),$(workflow))
38
+ workflow_script=.stoobly/tmp/$(workflow)/run.sh
38
39
 
39
40
  # Options
40
41
  certs_dir_options=--ca-certs-dir-path $(ca_certs_dir) --certs-dir-path $(certs_dir)
@@ -43,7 +44,7 @@ working_dir_options=--app-dir-path $(app_dir) --context-dir-path $(context_dir)
43
44
 
44
45
  workflow_down_options=--user-id $(USER_ID) $(workflow_down_extra_options)
45
46
  workflow_log_options=$(workflow_log_extra_options)
46
- workflow_run_options=--script-path $(workflow_script) $(workflow_service_options)
47
+ workflow_run_options=--namespace $(workflow_namespace) --script-path $(workflow_script) $(workflow_service_options)
47
48
  workflow_up_options=$(working_dir_options) $(certs_dir_options) --user-id $(USER_ID) $(workflow_up_extra_options)
48
49
 
49
50
  # Commands
@@ -71,6 +72,10 @@ stoobly_exec_run_env=$(source_env) && $(exec_env) CONTEXT_DIR="$(app_dir)"
71
72
  # Workflow run
72
73
  workflow_run=$(source_env) && bash "$(app_dir)/$(workflow_script)"
73
74
 
75
+ action/install:
76
+ $(eval action=install)
77
+ action/uninstall:
78
+ $(eval action=uninstall)
74
79
  ca-cert/install: stoobly/install
75
80
  @if [ -z "$$(ls $(ca_certs_dir) 2> /dev/null)" ]; then \
76
81
  read -p "Installing CA certificate is required for $(workflow)ing requests, continue? (y/N) " confirm && \
@@ -84,10 +89,6 @@ ca-cert/install: stoobly/install
84
89
  certs:
85
90
  @export EXEC_COMMAND=.mkcert && \
86
91
  $(stoobly_exec)
87
- command/install:
88
- $(eval COMMAND=install)
89
- command/uninstall:
90
- $(eval COMMAND=uninstall)
91
92
  exec/down:
92
93
  @$(stoobly_exec_env) EXEC_COMMAND=- EXEC_ARGS=- EXEC_OPTIONS=- $(exec_down)
93
94
  nameservers: tmpdir
@@ -179,7 +180,7 @@ workflow/down:
179
180
  $(stoobly_exec_run) && \
180
181
  $(workflow_run)
181
182
  workflow/hostname: stoobly/install
182
- @read -p "Do you want to $(COMMAND) hostname(s) in /etc/hosts? (y/N) " confirm && \
183
+ @read -p "Do you want to $(action) hostname(s) in /etc/hosts? (y/N) " confirm && \
183
184
  if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
184
185
  CURRENT_VERSION=$$(stoobly-agent --version); \
185
186
  REQUIRED_VERSION="1.4.0"; \
@@ -187,11 +188,11 @@ workflow/hostname: stoobly/install
187
188
  echo "stoobly-agent version $$REQUIRED_VERSION required. Please run: pipx upgrade stoobly-agent"; \
188
189
  exit 1; \
189
190
  fi; \
190
- echo "Running stoobly-agent scaffold hostname $(COMMAND) $(workflow_service_options)"; \
191
- stoobly-agent scaffold hostname $(COMMAND) --app-dir-path $(app_dir) --workflow $(workflow) $(workflow_service_options); \
191
+ echo "Running stoobly-agent scaffold hostname $(action) $(workflow_service_options)"; \
192
+ stoobly-agent scaffold hostname $(action) --app-dir-path $(app_dir) --workflow $(workflow) $(workflow_service_options); \
192
193
  fi
193
- workflow/hostname/install: command/install workflow/hostname
194
- workflow/hostname/uninstall: command/uninstall workflow/hostname
194
+ workflow/hostname/install: action/install workflow/hostname
195
+ workflow/hostname/uninstall: action/uninstall workflow/hostname
195
196
  workflow/logs:
196
197
  @export EXEC_COMMAND=.logs && \
197
198
  export EXEC_OPTIONS="$(workflow_log_options) $(workflow_run_options) $(options)" && \
@@ -87,8 +87,8 @@ def hostname(ctx):
87
87
  help="Scaffold application"
88
88
  )
89
89
  @click.option('--app-dir-path', default=current_working_dir, help='Path to create the app scaffold.')
90
- @click.option('--force', is_flag=True, help='Overwrite maintained scaffolded app files.')
91
90
  @click.option('--network', help='App default network name. Defaults to app name.')
91
+ @click.option('--quiet', is_flag=True, help='Disable log output.')
92
92
  @click.option('--ui-port', default=4200, type=click.IntRange(1, 65535), help='UI service port.')
93
93
  @click.argument('app_name')
94
94
  def create(**kwargs):
@@ -96,13 +96,13 @@ def create(**kwargs):
96
96
 
97
97
  app = App(kwargs['app_dir_path'], DOCKER_NAMESPACE)
98
98
 
99
- if kwargs['force'] or not os.path.exists(app.scaffold_namespace_path):
100
- if not kwargs['network']:
101
- kwargs['network'] = kwargs['app_name']
99
+ if not kwargs['quiet'] and os.path.exists(app.scaffold_namespace_path):
100
+ print(f"{kwargs['app_dir_path']} already exists, updating scaffold maintained files...")
102
101
 
103
- AppCreateCommand(app, **kwargs).build()
104
- else:
105
- print(f"{kwargs['app_dir_path']} already exists, use option '--force' to continue ")
102
+ if not kwargs['network']:
103
+ kwargs['network'] = kwargs['app_name']
104
+
105
+ AppCreateCommand(app, **kwargs).build()
106
106
 
107
107
  @app.command(
108
108
  help="Scaffold app service certs"
@@ -129,7 +129,6 @@ def mkcert(**kwargs):
129
129
  @click.option('--app-dir-path', default=current_working_dir, help='Path to application directory.')
130
130
  @click.option('--detached', is_flag=True, help='Use isolated and non-persistent context directory.')
131
131
  @click.option('--env', multiple=True, help='Specify an environment variable.')
132
- @click.option('--force', is_flag=True, help='Overwrite maintained scaffolded service files.')
133
132
  @click.option('--hostname', help='Service hostname.')
134
133
  @click.option('--port', type=click.IntRange(1, 65535), help='Service port.')
135
134
  @click.option('--priority', default=5, type=click.FloatRange(1.0, 9.0), help='Determines the service run order. Lower values run first.')
@@ -139,6 +138,7 @@ def mkcert(**kwargs):
139
138
  upstream proxy modes, SPEC is host specification in
140
139
  the form of "http[s]://host[:port]".
141
140
  ''')
141
+ @click.option('--quiet', is_flag=True, help='Disable log output.')
142
142
  @click.option('--scheme', type=click.Choice(['http', 'https']), help='Defaults to https if hostname is set.')
143
143
  @click.option('--workflow', multiple=True, type=click.Choice([WORKFLOW_MOCK_TYPE, WORKFLOW_RECORD_TYPE, WORKFLOW_TEST_TYPE]), help='Include pre-defined workflows.')
144
144
  @click.argument('service_name')
@@ -156,12 +156,12 @@ def create(**kwargs):
156
156
  __validate_proxy_mode(kwargs.get("proxy_mode"))
157
157
 
158
158
  app = App(kwargs['app_dir_path'], DOCKER_NAMESPACE)
159
-
160
159
  service = Service(kwargs['service_name'], app)
161
- if kwargs['force'] or not os.path.exists(service.dir_path):
162
- __scaffold_build(app, **kwargs)
163
- else:
164
- print(f"{service.dir_path} already exists, use option '--force' to continue")
160
+
161
+ if not kwargs['quiet'] and os.path.exists(service.dir_path):
162
+ print(f"{service.dir_path} already exists, updating scaffold maintained files...")
163
+
164
+ __scaffold_build(app, **kwargs)
165
165
 
166
166
  @service.command(
167
167
  help="List services",
@@ -272,7 +272,7 @@ def update(**kwargs):
272
272
  )
273
273
  @click.option('--app-dir-path', default=current_working_dir, help='Path to application directory.')
274
274
  @click.option('--context-dir-path', default=data_dir.context_dir_path, help='Path to Stoobly data directory.')
275
- @click.option('--force', is_flag=True, help='Overwrite maintained scaffolded workflow files.')
275
+ @click.option('--quiet', is_flag=True, help='Disable log output.')
276
276
  @click.option('--service', multiple=True, help='Specify the service(s) to create the workflow for.')
277
277
  @click.option('--template', required=True, type=click.Choice([WORKFLOW_MOCK_TYPE, WORKFLOW_RECORD_TYPE, WORKFLOW_TEST_TYPE]), help='Select which workflow to use as a template.')
278
278
  @click.argument('workflow_name')
@@ -290,10 +290,11 @@ def create(**kwargs):
290
290
  __validate_service_dir(service.dir_path)
291
291
 
292
292
  workflow_dir_path = service.workflow_dir_path(kwargs['workflow_name'])
293
- if kwargs['force'] or not os.path.exists(workflow_dir_path):
294
- __workflow_create(app, **config)
295
- else:
296
- print(f"{workflow_dir_path} already exists, use option '--force' to continue")
293
+
294
+ if not kwargs['quiet'] and os.path.exists(workflow_dir_path):
295
+ print(f"{workflow_dir_path} already exists, updating scaffold maintained files...")
296
+
297
+ __workflow_create(app, **config)
297
298
 
298
299
  @workflow.command(
299
300
  help="Copy a workflow for service(s)",
@@ -509,7 +510,7 @@ def up(**kwargs):
509
510
 
510
511
  # Gateway ports are dynamically set depending on the workflow run
511
512
  workflow = Workflow(kwargs['workflow_name'], app)
512
- configure_gateway(workflow.service_paths_from_services(services), kwargs['no_publish'])
513
+ configure_gateway(workflow.workflow_name, workflow.service_paths_from_services(services), kwargs['no_publish'])
513
514
 
514
515
  commands: List[WorkflowRunCommand] = []
515
516
  for service in services:
@@ -675,12 +676,12 @@ scaffold.add_command(hostname)
675
676
  def __build_script(**kwargs):
676
677
  script_path = kwargs['script_path']
677
678
  if not script_path:
678
- script_file_name = f"{kwargs['workflow_name']}.sh"
679
- script_path = os.path.join(data_dir.tmp_dir_path, script_file_name)
680
- else:
681
- script_dir = os.path.dirname(script_path)
682
- if not os.path.exists(script_dir):
683
- os.makedirs(script_dir, exist_ok=True)
679
+ script_file_name = 'run.sh'
680
+ script_path = os.path.join(data_dir.tmp_dir_path, kwargs['workflow_name'], script_file_name)
681
+
682
+ script_dir = os.path.dirname(script_path)
683
+ if not os.path.exists(script_dir):
684
+ os.makedirs(script_dir, exist_ok=True)
684
685
 
685
686
  # Truncate
686
687
  with open(script_path, 'w'):
@@ -161,7 +161,7 @@ def prune(**kwargs):
161
161
  )
162
162
  @click.option('--format', type=click.Choice(FORMATS), help='Format output.')
163
163
  @click.option('--select', multiple=True, help='Select column(s) to display.')
164
- @click.option('--verify', is_flag=True, default=False)
164
+ @click.option('--no-verify', is_flag=True, default=False)
165
165
  @click.option('--without-headers', is_flag=True, default=False, help='Disable printing column headers.')
166
166
  @click.argument('uuid')
167
167
  def update(**kwargs):
@@ -179,7 +179,7 @@ def update(**kwargs):
179
179
  print(f"Error: {kwargs['uuid']} not found", file=sys.stderr)
180
180
  sys.exit(1)
181
181
 
182
- if kwargs['verify']:
182
+ if not kwargs['no_verify']:
183
183
  if event.is_request():
184
184
  snapshot: RequestSnapshot = event.snapshot()
185
185
  __verify_request(snapshot)
@@ -15,7 +15,7 @@ class ScaffoldCliInvoker():
15
15
 
16
16
  result = runner.invoke(scaffold, ['app', 'create',
17
17
  '--app-dir-path', app_dir_path,
18
- '--force',
18
+ '--quiet',
19
19
  app_name
20
20
  ])
21
21
 
@@ -45,10 +45,10 @@ class ScaffoldCliInvoker():
45
45
  result = runner.invoke(scaffold, ['service', 'create',
46
46
  '--app-dir-path', app_dir_path,
47
47
  '--env', 'TEST',
48
- '--force',
49
48
  '--hostname', hostname,
50
49
  '--scheme', scheme,
51
50
  '--port', port,
51
+ '--quiet',
52
52
  '--workflow', 'mock',
53
53
  '--workflow', 'record',
54
54
  '--workflow', 'test',
@@ -70,12 +70,12 @@ class ScaffoldCliInvoker():
70
70
 
71
71
  result = runner.invoke(scaffold, ['service', 'create',
72
72
  '--app-dir-path', app_dir_path,
73
- '--force',
74
73
  '--hostname', hostname,
75
74
  '--scheme', scheme,
76
75
  '--port', port,
77
76
  '--proxy-mode', proxy_mode_reverse_spec,
78
77
  '--detached',
78
+ '--quiet',
79
79
  '--workflow', 'test',
80
80
  service_name
81
81
  ])
@@ -94,7 +94,7 @@ class TestUpdate():
94
94
  def updated_event(self, runner: CliRunner, put_event: LogEvent):
95
95
  time.sleep(1) # Simulate update at different time
96
96
 
97
- apply_result = runner.invoke(snapshot, ['update', '--verify', put_event.uuid])
97
+ apply_result = runner.invoke(snapshot, ['update', put_event.uuid])
98
98
  assert apply_result.exit_code == 0
99
99
  log = Log()
100
100
  events = log.events
@@ -1 +1 @@
1
- 1.9.3
1
+ 1.9.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.9.4
3
+ Version: 1.9.5
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=xHYLozasADB35BWCrRP8wlaWwr4WTbSnYvQyjTdvED4,44
1
+ stoobly_agent/__init__.py,sha256=IIieB06ghDX3rkbVoznhopSYzZNIgt8A-_fJzdVS7i4,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
@@ -82,7 +82,7 @@ stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=1khQdgTaQ89ykGRNdTQh_e
82
82
  stoobly_agent/app/cli/scaffold/docker/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  stoobly_agent/app/cli/scaffold/docker/service/build_decorator.py,sha256=ZU7z4bkvdS3OK5O4fJhlA9_PNwnFtZW6t7vNF7V5obQ,1003
84
84
  stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=4cIMSYvgrkGWVuuYymiwlrR829O91qQl9ML8FhaDMj4,5857
85
- stoobly_agent/app/cli/scaffold/docker/service/configure_gateway.py,sha256=872qX9atoNWMXvSZcnG5cvVXarWShxBS9cJ_Q-YrCW8,3850
85
+ stoobly_agent/app/cli/scaffold/docker/service/configure_gateway.py,sha256=jtx8lhvKHl0ubSHaQpE8m9lCYnOJ6Qju-SBJPBs0l7I,3921
86
86
  stoobly_agent/app/cli/scaffold/docker/service/types.py,sha256=qB-yYHlu-PZDc0HYgTUvE5bWNpHxaSThC3JUG8okR1k,88
87
87
  stoobly_agent/app/cli/scaffold/docker/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
88
  stoobly_agent/app/cli/scaffold/docker/workflow/build_decorator.py,sha256=VKD9hXbJGRIWHS5IeYXeX0-FQ0F43zG8VmsegL6eYwA,703
@@ -104,7 +104,7 @@ stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOW
104
104
  stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=xONRUtfC3IBd-Kr4wdUKWgx9ppSsbu2H72pb2VinizQ,11412
105
105
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=x8C_a0VoO_vUbosp4_6IC1U7Ge9NnUdVKDPpVMtMkeY,171
106
106
  stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=Okk4Q0Fj7Wi5NU58gQfpjpFwAL3RUBJyRe56kteQfcA,158
107
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=m89dz5LDaG5MXiBdBb9lxi6pAP90JOipNwS_EK9kGOs,9124
107
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=zifPWDDZ9RPz0p872Kl00pnmFY3jMHulp84tYXhfSwg,9240
108
108
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=6tFqXh3ine8vaD0FCL5TMoY5NjKx2wLUR8XpW3tJtew,245
109
109
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.networks.yml,sha256=I4PbJpQjFHb5IbAUWNvYM6okDEtmwtKFDQg-yog05WM,141
110
110
  stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
@@ -203,9 +203,9 @@ stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4
203
203
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
204
204
  stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=eF3aaK4OIZXYuSBEAeBnhAL7EZrS1G4mSYrJbEiXt2o,11082
205
205
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=Uo_yo6rVR1ZR7xpvsQvlH48AyMBVLRupd4G-bRjzm_Q,5584
206
- stoobly_agent/app/cli/scaffold_cli.py,sha256=huVZUpBUW6sfcNmhAlcQTKYVCCg0kHhcjezxt_Fm4sk,32043
206
+ stoobly_agent/app/cli/scaffold_cli.py,sha256=NXlLuqAwv9p0dflksswAtgJPTfojvJDDHIdJ71-BCSE,31965
207
207
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
208
- stoobly_agent/app/cli/snapshot_cli.py,sha256=Uf6g6ivsD0hUY8G99eU0fxzS3FymncAhI70PxV7Uaac,11919
208
+ stoobly_agent/app/cli/snapshot_cli.py,sha256=1Dw5JgDlmG6vctrawIRO7CdB73vAQk_wRBnPG2lVOrQ,11929
209
209
  stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
210
210
  stoobly_agent/app/cli/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
211
  stoobly_agent/app/cli/types/output.py,sha256=2wazv56g5IwLQeJCWfJXXAxTB9Y5WH1cKMHbpjbXNeo,439
@@ -677,7 +677,7 @@ stoobly_agent/test/app/cli/request/request_reset_test.py,sha256=5My6Z452eideAOUu
677
677
  stoobly_agent/test/app/cli/request/request_response_test.py,sha256=Fu-A8tIn016DKme4WIaPzo3YeFY-CPtTOpaSFigUVVM,1263
678
678
  stoobly_agent/test/app/cli/request/request_snapshot_test.py,sha256=3kMmv0CuvnMXLgDQA-_u9S1DIiNOdL63L-IptVuOpf8,6308
679
679
  stoobly_agent/test/app/cli/request/request_test_test.py,sha256=-cJNXKjgryVVfVt-7IN5fIhBwe3NjFoPmeavDH8lAjU,5527
680
- stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=_nGDLUsYxqkeqs5DdhvAeXy3IuotpgqKHXKVzu6GDF4,3700
680
+ stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=ZOFeLh9TejJ_k3gQ0KC6iIuqKhwrkqZV5U7CMdRDnwM,3700
681
681
  stoobly_agent/test/app/cli/scaffold/cli_test.py,sha256=sMNvO845MIu5DVGa1HmwXQDmKDcwrfNTdEb3fK5886w,4557
682
682
  stoobly_agent/test/app/cli/scaffold/e2e_test.py,sha256=IGWT0EXrMtB8i8kdLFbN7O8NvLrJYTi-iQ_GRiUoA94,12978
683
683
  stoobly_agent/test/app/cli/scaffold/hosts_file_manager_test.py,sha256=ztcPh1x0ZCW1FWA5YL4ulEVjfbW9TOPgk1bnSDPNmCw,2287
@@ -692,7 +692,7 @@ stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py,sha256=mpkTZx8eaFFZU_
692
692
  stoobly_agent/test/app/cli/snapshot/snapshot_copy_test.py,sha256=Yg78-FhSiG_r6Jpm-sN8sn0LjVXTwTOXt6hg8ni2GIY,1953
693
693
  stoobly_agent/test/app/cli/snapshot/snapshot_migrate_test.py,sha256=voEvblK6CMGCrSJDTHVmkUkLXj0auNb78jxlGiiBBQQ,7370
694
694
  stoobly_agent/test/app/cli/snapshot/snapshot_prune_test.py,sha256=bn4yUU7Eb4-6GnwnRaPZPi5Cn7XEaIsrJ_mB7jydgWw,6693
695
- stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=fILsX2M5j4wuLRP6LJTHe4CPB8gvaEbsSoYmFCHmKVk,4514
695
+ stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=yx_QDPYc5utiqlRhy3hTGBKLafGq9nC_lDV-0k0qWOo,4502
696
696
  stoobly_agent/test/app/models/adapters/joined_rquest_adapter_test.py,sha256=bF7WMrAiASQDNzDTvIXGJhsWLNhfYOmdQpSDo0hyWYY,1098
697
697
  stoobly_agent/test/app/models/adapters/orm/joined_request_string_adapter_test.py,sha256=a2IHTk3l7aiLyYF7vtqissrk0MFTF2wlUBiaKWyJKfU,2667
698
698
  stoobly_agent/test/app/models/adapters/orm/request/orm_mitmproxy_request_adapter_test.py,sha256=PbJsAaxPUEbF9vM7DX4z858biWf4qlGnvE8KBuy8SgY,2763
@@ -708,7 +708,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
708
708
  stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=a1SFLyEyRRLuADvAw6ckQQKORFXvyK1lyrbkaLWx8oU,3399
709
709
  stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
710
710
  stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
711
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=JyvJHgCQJn-THkr7jL9H-s1Ea2VWcQz-X3BiHK64uxk,6
711
+ stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=MvlkhO5KUUDkZHqygfa1PgGkfddFw7TZAu1qTt_cq-g,5
712
712
  stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
713
713
  stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
714
714
  stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
@@ -749,8 +749,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
749
749
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
750
750
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
751
751
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
752
- stoobly_agent-1.9.4.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
753
- stoobly_agent-1.9.4.dist-info/METADATA,sha256=xDOjRS-p08haoG5tLVE1xI3X2qrM6gaplT5nmlIN8s8,3087
754
- stoobly_agent-1.9.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
755
- stoobly_agent-1.9.4.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
756
- stoobly_agent-1.9.4.dist-info/RECORD,,
752
+ stoobly_agent-1.9.5.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
753
+ stoobly_agent-1.9.5.dist-info/METADATA,sha256=Ar6dgljQ63YgEG_psjAkNEVUpGuRpudvTxCY4fAebgQ,3087
754
+ stoobly_agent-1.9.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
755
+ stoobly_agent-1.9.5.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
756
+ stoobly_agent-1.9.5.dist-info/RECORD,,