stoobly-agent 1.2.2__py3-none-any.whl → 1.3.0__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.
Files changed (69) hide show
  1. stoobly_agent/__init__.py +1 -1
  2. stoobly_agent/app/cli/helpers/certificate_authority.py +1 -5
  3. stoobly_agent/app/cli/scaffold/app.py +14 -32
  4. stoobly_agent/app/cli/scaffold/app_command.py +4 -7
  5. stoobly_agent/app/cli/scaffold/app_config.py +15 -2
  6. stoobly_agent/app/cli/scaffold/app_create_command.py +18 -2
  7. stoobly_agent/app/cli/scaffold/command.py +1 -1
  8. stoobly_agent/app/cli/scaffold/constants.py +9 -3
  9. stoobly_agent/app/cli/scaffold/docker/app_builder.py +3 -7
  10. stoobly_agent/app/cli/scaffold/docker/builder.py +1 -1
  11. stoobly_agent/app/cli/scaffold/docker/constants.py +0 -1
  12. stoobly_agent/app/cli/scaffold/docker/service/builder.py +12 -11
  13. stoobly_agent/app/cli/scaffold/docker/workflow/builder.py +14 -31
  14. stoobly_agent/app/cli/scaffold/docker/workflow/mock_decorator.py +6 -2
  15. stoobly_agent/app/cli/scaffold/docker/workflow/reverse_proxy_decorator.py +6 -2
  16. stoobly_agent/app/cli/scaffold/service.py +1 -1
  17. stoobly_agent/app/cli/scaffold/service_command.py +1 -1
  18. stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py +6 -8
  19. stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context +2 -4
  20. stoobly_agent/app/cli/scaffold/templates/app/.Makefile +37 -21
  21. stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml +8 -13
  22. stoobly_agent/app/cli/scaffold/templates/app/Makefile +1 -1
  23. stoobly_agent/app/cli/scaffold/templates/app/build/.docker-compose.base.yml +8 -4
  24. stoobly_agent/app/cli/scaffold/templates/app/build/mock/.docker-compose.mock.yml +2 -6
  25. stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.configure +3 -0
  26. stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.init +3 -0
  27. stoobly_agent/app/cli/scaffold/templates/app/build/record/.docker-compose.record.yml +2 -6
  28. stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.configure +3 -0
  29. stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.init +3 -0
  30. stoobly_agent/app/cli/scaffold/templates/app/build/test/.docker-compose.test.yml +2 -6
  31. stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.configure +3 -0
  32. stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.init +3 -0
  33. stoobly_agent/app/cli/scaffold/templates/app/entrypoint/.docker-compose.base.yml +2 -0
  34. stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/.docker-compose.mock.yml +2 -8
  35. stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/.docker-compose.record.yml +2 -8
  36. stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/.docker-compose.test.yml +2 -8
  37. stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/.docker-compose.exec.yml +2 -3
  38. stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.logs +1 -0
  39. stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/mock/.docker-compose.mock.yml +1 -2
  40. stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/record/.docker-compose.record.yml +1 -2
  41. stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.configure +3 -0
  42. stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.init +7 -1
  43. stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.configure +3 -0
  44. stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.init +7 -1
  45. stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.configure +3 -0
  46. stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.init +7 -1
  47. stoobly_agent/app/cli/scaffold/validate_command.py +2 -2
  48. stoobly_agent/app/cli/scaffold/workflow.py +5 -4
  49. stoobly_agent/app/cli/scaffold/workflow_command.py +3 -3
  50. stoobly_agent/app/cli/scaffold/workflow_run_command.py +74 -35
  51. stoobly_agent/app/cli/scaffold_cli.py +61 -44
  52. stoobly_agent/app/cli/snapshot_cli.py +6 -2
  53. stoobly_agent/app/models/adapters/joined_request_adapter.py +6 -0
  54. stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py +3 -1
  55. stoobly_agent/app/models/helpers/apply.py +34 -17
  56. stoobly_agent/app/models/helpers/create_request_params_service.py +4 -0
  57. stoobly_agent/app/proxy/replay/body_parser_service.py +11 -3
  58. stoobly_agent/config/data_dir.py +2 -1
  59. stoobly_agent/config/schema.yml +2 -2
  60. stoobly_agent/test/app/cli/scaffold/cli_invoker.py +1 -2
  61. stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py +162 -1
  62. stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
  63. stoobly_agent/test/mock_data/scaffold/docker-compose-assets-service.yml +1 -3
  64. {stoobly_agent-1.2.2.dist-info → stoobly_agent-1.3.0.dist-info}/METADATA +1 -1
  65. {stoobly_agent-1.2.2.dist-info → stoobly_agent-1.3.0.dist-info}/RECORD +68 -69
  66. stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.proxy +0 -34
  67. {stoobly_agent-1.2.2.dist-info → stoobly_agent-1.3.0.dist-info}/LICENSE +0 -0
  68. {stoobly_agent-1.2.2.dist-info → stoobly_agent-1.3.0.dist-info}/WHEEL +0 -0
  69. {stoobly_agent-1.2.2.dist-info → stoobly_agent-1.3.0.dist-info}/entry_points.txt +0 -0
@@ -6,13 +6,13 @@ cli:
6
6
  proxy:
7
7
  data: map(include('data_rules'), key=include('project_id'))
8
8
  firewall: map(list(include('firewall_rule')), key=include('project_id'))
9
- match: map(list(include('match_rule')), key=include('project_id'))
9
+ match: map(list(include('match_rule')), key=include('project_id'), required=False)
10
10
  rewrite: map(list(include('rewrite_rule')), key=include('project_id'))
11
11
  intercept:
12
12
  active: bool()
13
13
  mode: include('mode')
14
14
  project_key: str()
15
- url: str()
15
+ url: str(required=False)
16
16
  proxy_config_path: str(required=False)
17
17
  remote:
18
18
  api_url: str()
@@ -130,5 +130,4 @@ class ScaffoldCliInvoker():
130
130
 
131
131
  assert result.exit_code == 0
132
132
  output = result.stdout
133
- assert output
134
-
133
+ assert output
@@ -1,3 +1,4 @@
1
+ import os
1
2
  import pdb
2
3
  import pytest
3
4
  import time
@@ -13,6 +14,10 @@ from stoobly_agent.lib.orm.request import Request
13
14
  from stoobly_agent.lib.orm.scenario import Scenario
14
15
  from stoobly_agent.test.test_helper import assert_orm_request_equivalent, DETERMINISTIC_GET_REQUEST_URL, NON_DETERMINISTIC_GET_REQUEST_URL, reset
15
16
 
17
+ def write_junk(path: str):
18
+ with open(path, 'w') as fp:
19
+ fp.write('junk')
20
+
16
21
  @pytest.fixture(scope='module')
17
22
  def runner():
18
23
  return CliRunner()
@@ -386,4 +391,160 @@ class TestApply():
386
391
  apply_result = runner.invoke(snapshot, ['apply'])
387
392
  assert apply_result.exit_code == 0
388
393
 
389
- assert log.version == expected_version
394
+ assert log.version == expected_version
395
+
396
+ class TestWhenMalformedScenarioMetadata():
397
+
398
+ @pytest.fixture(scope='class')
399
+ def created_scenario(self, runner: CliRunner):
400
+ create_result = runner.invoke(scenario, ['create', 'test'])
401
+ assert create_result.exit_code == 0
402
+ return Scenario.last()
403
+
404
+ @pytest.fixture(scope='class', autouse=True)
405
+ def put_event(self, runner: CliRunner, created_scenario: Scenario):
406
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario.key()])
407
+ assert snapshot_result.exit_code == 0
408
+
409
+ log = Log()
410
+ events = log.events
411
+ event = events[len(events) - 1]
412
+ metadata_path = event.snapshot().metadata_path
413
+ with open(metadata_path, 'w') as fp:
414
+ fp.write('junk')
415
+
416
+ return event
417
+
418
+ @pytest.fixture(scope='class', autouse=True)
419
+ def removed_scenario(self, created_scenario: Scenario):
420
+ created_scenario.delete()
421
+ assert Scenario.find(created_scenario.id) == None
422
+
423
+ def test_creates_scenario_with_uuid_name(self, runner: CliRunner, created_scenario: Scenario):
424
+ apply_result = runner.invoke(snapshot, ['apply'])
425
+ assert apply_result.exit_code == 0
426
+
427
+ recreated_scenario = Scenario.find_by(uuid=created_scenario.uuid)
428
+ assert recreated_scenario.name == created_scenario.uuid
429
+
430
+ class TestWhenMissingScenarioMetadata():
431
+
432
+ @pytest.fixture(scope='class')
433
+ def created_scenario(self, runner: CliRunner):
434
+ create_result = runner.invoke(scenario, ['create', 'test'])
435
+ assert create_result.exit_code == 0
436
+ return Scenario.last()
437
+
438
+ @pytest.fixture(scope='class', autouse=True)
439
+ def put_event(self, runner: CliRunner, created_scenario: Scenario):
440
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario.key()])
441
+ assert snapshot_result.exit_code == 0
442
+
443
+ log = Log()
444
+ events = log.events
445
+ event = events[len(events) - 1]
446
+ metadata_path = event.snapshot().metadata_path
447
+ os.remove(metadata_path)
448
+
449
+ return event
450
+
451
+ @pytest.fixture(scope='class', autouse=True)
452
+ def removed_scenario(self, created_scenario: Scenario):
453
+ created_scenario.delete()
454
+ assert Scenario.find(created_scenario.id) == None
455
+
456
+ def test_skips_scenario(self, runner: CliRunner, created_scenario: Scenario):
457
+ apply_result = runner.invoke(snapshot, ['apply'])
458
+ assert apply_result.exit_code == 0
459
+
460
+ recreated_scenario = Scenario.find_by(uuid=created_scenario.uuid)
461
+ assert recreated_scenario == None
462
+
463
+ class TestWhenMalformedRequest():
464
+
465
+ @pytest.fixture(scope='class')
466
+ def recorded_request(self, runner: CliRunner):
467
+ record_result = runner.invoke(record, [DETERMINISTIC_GET_REQUEST_URL])
468
+ assert record_result.exit_code == 0
469
+ return Request.last()
470
+
471
+ @pytest.fixture(autouse=True, scope='class')
472
+ def put_event(self, runner: CliRunner, recorded_request: Request):
473
+ snapshot_result = runner.invoke(request, ['snapshot', recorded_request.key()])
474
+ assert snapshot_result.exit_code == 0
475
+
476
+ log = Log()
477
+ events = log.events
478
+ event = events[len(events) - 1]
479
+
480
+ with open(event.snapshot().path, 'w') as fp:
481
+ fp.write('junk')
482
+
483
+ return event
484
+
485
+ @pytest.fixture(scope='class', autouse=True)
486
+ def removed_request(self, recorded_request: Request):
487
+ recorded_request.delete()
488
+ assert Request.find(recorded_request.id) == None
489
+
490
+ def test_it_creates_request(self, runner: CliRunner, recorded_request: Request):
491
+ apply_result = runner.invoke(snapshot, ['apply'])
492
+ assert apply_result.exit_code == 1
493
+
494
+ assert Request.find_by(uuid=recorded_request.uuid) == None
495
+
496
+ def test_idempotent(self, runner: CliRunner, recorded_request: Request, put_event: LogEvent):
497
+ apply_result = runner.invoke(snapshot, ['apply', put_event.uuid])
498
+ assert apply_result.exit_code == 1
499
+
500
+ assert Request.find_by(uuid=recorded_request.uuid) == None
501
+
502
+ class TestWhenMalformedScenarioRequest():
503
+
504
+ @pytest.fixture(scope='class')
505
+ def created_scenario(self, runner: CliRunner):
506
+ create_result = runner.invoke(scenario, ['create', 'test'])
507
+ assert create_result.exit_code == 0
508
+ return Scenario.last()
509
+
510
+ @pytest.fixture(scope='class', autouse=True)
511
+ def created_scenario_requests(self, runner: CliRunner, created_scenario: Scenario):
512
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), DETERMINISTIC_GET_REQUEST_URL])
513
+ assert record_result.exit_code == 0
514
+
515
+ return created_scenario.requests
516
+
517
+ @pytest.fixture(scope='class', autouse=True)
518
+ def put_event(self, runner: CliRunner, created_scenario: Scenario):
519
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario.key()])
520
+ assert snapshot_result.exit_code == 0
521
+
522
+ log = Log()
523
+ events = log.events
524
+ event = events[len(events) - 1]
525
+ event.snapshot().iter_request_snapshots(lambda snapshot: write_junk(snapshot.path))
526
+
527
+ return event
528
+
529
+ @pytest.fixture(scope='class', autouse=True)
530
+ def removed_scenario(self, created_scenario: Scenario):
531
+ created_scenario.delete()
532
+ assert Scenario.find(created_scenario.id) == None
533
+
534
+ def test_skips_scenario(self, runner: CliRunner, created_scenario: Scenario):
535
+ apply_result = runner.invoke(snapshot, ['apply'])
536
+ assert apply_result.exit_code == 1
537
+
538
+ recreated_scenario = Scenario.find_by(uuid=created_scenario.uuid)
539
+ assert recreated_scenario
540
+
541
+ assert len(recreated_scenario.requests) == 0
542
+
543
+ def test_idempotent(self, runner: CliRunner, created_scenario: Scenario, put_event: LogEvent):
544
+ apply_result = runner.invoke(snapshot, ['apply', put_event.uuid])
545
+ assert apply_result.exit_code == 1
546
+
547
+ recreated_scenario = Scenario.find_by(uuid=created_scenario.uuid)
548
+ assert recreated_scenario
549
+
550
+ assert len(recreated_scenario.requests) == 0
@@ -1 +1 @@
1
- 1.1.4
1
+ 1.2.3
@@ -1,5 +1,4 @@
1
1
  # Define services here
2
-
3
2
  networks:
4
3
  app:
5
4
  external: true
@@ -7,12 +6,11 @@ networks:
7
6
 
8
7
  services:
9
8
  assets:
10
- image: nginx:1.27
11
9
  hostname: assets
10
+ image: nginx:1.27
12
11
  networks:
13
12
  - app
14
13
  volumes:
15
14
  - ./index.html:/usr/share/nginx/html/index.html
16
15
  profiles: &id001
17
16
  - test
18
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.2.2
3
+ Version: 1.3.0
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=XYymzijy-lxXo1-ekxtvs8Qjpvzmw7xbvVCvbBuuu-I,44
1
+ stoobly_agent/__init__.py,sha256=pBJnahl3uuwrh8cQ3dATcVYEyoC7nYTZCn3HqojNHZY,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=jf4fkqjOiCeI2IM5Ro7ie0v_C6y0-7-5TIE_IKMPOfg,5513
@@ -28,7 +28,7 @@ stoobly_agent/app/cli/feature_cli.py,sha256=d-MUTbK3gbZxZNJUjM43fioZyhPyzetQNKjI
28
28
  stoobly_agent/app/cli/handlers/request_cli_handler.py,sha256=IPToK9OfiDda-mkq8HpiSSqK2m-UR15-8f8LVoLAHTA,6965
29
29
  stoobly_agent/app/cli/handlers/scenario_cli_handler.py,sha256=1KSsfhR1mmPUCmhjzWTjf_L9NcQglLvVK3KURrPt92A,7425
30
30
  stoobly_agent/app/cli/helpers/__init__.py,sha256=26ODsQi5NoJPwq4Ya7_lmtRalhhXOr_jfdZQWGLy6Gc,161
31
- stoobly_agent/app/cli/helpers/certificate_authority.py,sha256=viOVNN6cPFPQk_tHF2pQbW7wto5Prqk_tNjWIidIGuk,7271
31
+ stoobly_agent/app/cli/helpers/certificate_authority.py,sha256=xLfZR5CdyrwOqxInviy6Fd4uZEOgh_u6HQQI9zDhThc,7194
32
32
  stoobly_agent/app/cli/helpers/context.py,sha256=Jv97ueNnqea5UDm57VOUiQSHKWBeNlCcrq5-qW2tcwQ,1624
33
33
  stoobly_agent/app/cli/helpers/endpoint_facade.py,sha256=_1TR9PcRnqpl9Q4njFHMM_Btqpr6cCf757FFcywa3oU,2318
34
34
  stoobly_agent/app/cli/helpers/endpoints_apply_context.py,sha256=PvUzJLXNKl6wIQj2q8YZK1MAm1yqzDLLlpCYMoyWb9I,1831
@@ -67,78 +67,77 @@ stoobly_agent/app/cli/project_cli.py,sha256=EXjeLjbnq9PhfCjvyfZ0UnJ2tejeCS0SIAo3
67
67
  stoobly_agent/app/cli/report_cli.py,sha256=ZxJw0Xkx7KFZJn9e45BSKRKon8AD0Msrwy1fbPfbv0c,2543
68
68
  stoobly_agent/app/cli/request_cli.py,sha256=THNloW111l9MLE0oPg4y7hVXL1U7OXoz760g0A1CtJ0,7747
69
69
  stoobly_agent/app/cli/scaffold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- stoobly_agent/app/cli/scaffold/app.py,sha256=8YJtx0-PcnnNod31OaSv0K53Xb38pn2eDedj-a7QXCY,3665
71
- stoobly_agent/app/cli/scaffold/app_command.py,sha256=WwOr8QU61iuNXXdG37gOTZ6D0ZawM3eixCOa10TMP8c,2098
72
- stoobly_agent/app/cli/scaffold/app_config.py,sha256=ZAHGovwxFy3zICfusj9_gUC_FBTIoB7KbPbQaGK8x1c,573
73
- stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=5av5txxNJllELMYliIEPnhLLVq_N5ktoBxf8naJUGG0,586
74
- stoobly_agent/app/cli/scaffold/command.py,sha256=klpsgL6V7b2DRHpN33pl-QlmntDkvDO_dsF5JziYnL8,245
70
+ stoobly_agent/app/cli/scaffold/app.py,sha256=qrafaQc6rCN-s6MEXAbV4u2GPQ7YAKa_ssyR9t1sO6M,3427
71
+ stoobly_agent/app/cli/scaffold/app_command.py,sha256=qtOdG08ehdRk1wujiTL7LCQXoJkGpwExepO2qYBXBNA,2027
72
+ stoobly_agent/app/cli/scaffold/app_config.py,sha256=Gs-BynV1vY7_PpTOenn2mqc7lBIu0vBx6as9vtEU1sk,818
73
+ stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=sy4017eiir9MK0TEbTi1NyG9mhOGlenGGVnq0GsGUrQ,966
74
+ stoobly_agent/app/cli/scaffold/command.py,sha256=aoTsdkkBzyu7TkVSMdNQQGk0Gj874jNgFcjR14y3TuM,254
75
75
  stoobly_agent/app/cli/scaffold/config.py,sha256=HZU5tkvr3dkPr4JMXZtrJlu2wxxO-134Em6jReFFcq0,688
76
- stoobly_agent/app/cli/scaffold/constants.py,sha256=KBZj-eQoDmoUOJgcekyfeyi1UB0_UlxqrcWZyXEmBXA,1950
76
+ stoobly_agent/app/cli/scaffold/constants.py,sha256=3PoMOnmYtvrFMiSmf1A1ktMuPaZncWxRbSAp-WrSsdg,2191
77
77
  stoobly_agent/app/cli/scaffold/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
- stoobly_agent/app/cli/scaffold/docker/app_builder.py,sha256=IsXZFUumWEBA8NYDFdAohuKmxocoqHqlVFg0-E92QLI,621
79
- stoobly_agent/app/cli/scaffold/docker/builder.py,sha256=lNOvDxoLB1L8KSDrvoG4CUuWLAM2egLxwOWeV9Tf8H8,2832
80
- stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=fGHH_DlGd4mTogggJLHLigUscZmBrigkNmDwKQq6src,461
78
+ stoobly_agent/app/cli/scaffold/docker/app_builder.py,sha256=7z5pk5JKlRDHx2USxY-WurttLyyUkIVYfl34_u1x9dE,501
79
+ stoobly_agent/app/cli/scaffold/docker/builder.py,sha256=OE7r8vEdEkW3vwpmIctePiO0S5jvao5zMJNpxc-Yayw,2851
80
+ stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=fGnuo0ULYJa4CT3A4nPB7hZq8nFpdoCOSvrdJegdjMg,422
81
81
  stoobly_agent/app/cli/scaffold/docker/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  stoobly_agent/app/cli/scaffold/docker/service/build_decorator.py,sha256=ZU7z4bkvdS3OK5O4fJhlA9_PNwnFtZW6t7vNF7V5obQ,1003
83
- stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=vj7Vm7eK8E8DPtD4o5X0IJA4HPdgtA2lV2wm3nGTa1c,3207
83
+ stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=a7jxzXEwHaNcnG281BrOtNlf5Nmc4Z97DQrm68xdCCU,3219
84
84
  stoobly_agent/app/cli/scaffold/docker/service/set_gateway_ports.py,sha256=MH71h24nX5lAd6xNfSjjNyw6PjBsAXv-3kOFEe86huk,1417
85
85
  stoobly_agent/app/cli/scaffold/docker/service/types.py,sha256=qB-yYHlu-PZDc0HYgTUvE5bWNpHxaSThC3JUG8okR1k,88
86
86
  stoobly_agent/app/cli/scaffold/docker/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  stoobly_agent/app/cli/scaffold/docker/workflow/build_decorator.py,sha256=vbmME0cbN2EnNRlzQ2umj7Y3L7aZT-EHqEpkBFMfe8U,758
88
- stoobly_agent/app/cli/scaffold/docker/workflow/builder.py,sha256=bnKOqqoKEYzmJkIJwDoNz60doE-nf1GlDC9BqciUtkg,7107
88
+ stoobly_agent/app/cli/scaffold/docker/workflow/builder.py,sha256=G9zyw_jS0HEHtzl0EvoDQ9MlpTavlyWz0xFpgEZoyVc,6844
89
89
  stoobly_agent/app/cli/scaffold/docker/workflow/decorators_factory.py,sha256=oi0Hkii2W9338IeG7BG2medQxqZUbBp71Cvj-qDunII,987
90
90
  stoobly_agent/app/cli/scaffold/docker/workflow/development_decorator.py,sha256=cs00Cc2DuOYrGD8W9849PjHz6k2xyx0fSizqJlM7yR8,946
91
- stoobly_agent/app/cli/scaffold/docker/workflow/mock_decorator.py,sha256=D8PgYULERvWLaW1Vn3qspRTuNBoicuP2M1EZnQyvD_M,1080
92
- stoobly_agent/app/cli/scaffold/docker/workflow/reverse_proxy_decorator.py,sha256=C7cHNmnqgvDCZh2gor1LvNicOL02_3L2bVx_DWIH2aA,1687
91
+ stoobly_agent/app/cli/scaffold/docker/workflow/mock_decorator.py,sha256=V9y4RIyEIT8SiGm3U9OcmU1dr22wqpbSbGO_Z2EMYEI,1197
92
+ stoobly_agent/app/cli/scaffold/docker/workflow/reverse_proxy_decorator.py,sha256=s1l99Y-2h-sSLVtPhcgaa1YRTbSvb6QdgaUeBLHYc4w,1804
93
93
  stoobly_agent/app/cli/scaffold/env.py,sha256=e-Ve4p3RUgzFx22B3SIYttvJ_yLuDtA27oDACZ8n-6E,1140
94
94
  stoobly_agent/app/cli/scaffold/hosts_file_reader.py,sha256=gYkkrOlY7QG2JNsET6DKq4djrQAH0UGJtTkF7UwYT5o,1748
95
95
  stoobly_agent/app/cli/scaffold/managed_services_docker_compose.py,sha256=-wLBXUi7DCWsfm5KzZzd_kdJKOTl1NT924XR7dyjbSY,574
96
- stoobly_agent/app/cli/scaffold/service.py,sha256=HzYTiQGfReYXEY0Iv4YjGpu5fjCicV61Wst4khmmURs,504
97
- stoobly_agent/app/cli/scaffold/service_command.py,sha256=xqifA0PM9xpXK3TiilplmIrJNR7VG7BO0HrLh74yyZw,1058
96
+ stoobly_agent/app/cli/scaffold/service.py,sha256=YM_thxXI5JfRT-e67V0doX_olEaXJTNLA6oDI6fIlCk,513
97
+ stoobly_agent/app/cli/scaffold/service_command.py,sha256=9kIKiFC5Jo425VWYD4NDvUOdMP-pNyq2D5Ip1ZAPj3A,1054
98
98
  stoobly_agent/app/cli/scaffold/service_config.py,sha256=XFwTgf1JTfVVWmVyGTIadtfxSoPaoUV-70l3lAtSCzU,3485
99
99
  stoobly_agent/app/cli/scaffold/service_create_command.py,sha256=bmLGgx9qnh-X_i2_XfdWSQIer0gGkaQx6lXZSIzy-LI,2793
100
100
  stoobly_agent/app/cli/scaffold/service_delete_command.py,sha256=_nBDQjm8eL62MQpzSCxgUHlW04ZXKG8MDlN1BXxlqww,986
101
101
  stoobly_agent/app/cli/scaffold/service_docker_compose.py,sha256=OMUN1-ujQYIZXxDvS4XBf5C9wGalQULkwOiBBQPZbHY,820
102
102
  stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOWkGEKz7gSgEGNI8f7aXOdg,444
103
- stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=z7Z_vS2dTpYuRMRd7esnXWpc_drWSX1hiojJgieHunw,10089
103
+ stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=c_ObTOjOkcHJNoZ_69Ni_sSvAA8ZCneYwlpXxjZlaVo,9943
104
104
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=a4PUVIJ_0CEIwUTCEhvtiGJSnu--AWFE1lKv-8q17fU,193
106
- stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.proxy,sha256=L0yDlJfPD775NM-HgPx4E5-r-AflVBGfBf5DYl1nfME,1027
107
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=fRazlUstXloCAtH1fmB5LAPlGclMflAYr7wtSbn16AI,5601
108
- stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=LNNuygX6hMtmElxaO6jTIYq3psYmxNv7xax7ra6JzO4,407
109
- stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=t7xRaCc9q3k7W34S0h9KX02GljSVwGpPnFmiLUvWxsw,80
105
+ stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=UXQD9W-XdNl_uwwyfu1OgZ2whb0FRZMDxrpAkjRdrG0,158
106
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=NFfm_-53R37ntyT6gRNNhVldqzyGY27yWpdCJLoIDMs,6223
107
+ stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=YblNDTUPndYNxupgZ3X8RP6NS4c0u_QwLklyWrpq_qs,295
108
+ stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
110
109
  stoobly_agent/app/cli/scaffold/templates/app/build/.config.yml,sha256=8Wt8ZZ5irvBYYS44xGrR_EWlZDuXH9kyWmquzsh7s8g,19
111
- stoobly_agent/app/cli/scaffold/templates/app/build/.docker-compose.base.yml,sha256=WI1tE97QDXif1qGCyFbKWNw_2VhNvbBTT2mtwW6C-RI,270
112
- stoobly_agent/app/cli/scaffold/templates/app/build/mock/.docker-compose.mock.yml,sha256=LbgM8RMZ3etcbekprBlIC15xXKEA0dd7etdmJFY7WZc,500
113
- stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.configure,sha256=De8WWkYy2SfTcfqbhETp1MXLJooX2w-QqmsnBfyoODQ,77
114
- stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.init,sha256=tL9PFDOsfQPY09VXADcCXNjzQvf5d0r6zWUKAj-UyKw,74
110
+ stoobly_agent/app/cli/scaffold/templates/app/build/.docker-compose.base.yml,sha256=H43dtzQkuwWeeB-XzwQNqdKqwS04Ph_Al8AVCOjxCkQ,420
111
+ stoobly_agent/app/cli/scaffold/templates/app/build/mock/.docker-compose.mock.yml,sha256=3DJ8LTq3QScaz0SA_tXQqJ0kljSCeqkPyDbhLOxBJvc,414
112
+ stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.configure,sha256=dix1ZVrqllsX6eYmQz7Jwslu-F3nA__IKmtRxb_KGSo,185
113
+ stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/.init,sha256=4PElJS6sdbdDftf0R2An5bJ8mdOL6MnW5OasEbzh2S4,182
115
114
  stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
116
115
  stoobly_agent/app/cli/scaffold/templates/app/build/mock/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
117
- stoobly_agent/app/cli/scaffold/templates/app/build/record/.docker-compose.record.yml,sha256=wOsN2rzyboQz2EOXATjK_pK4_NU6BrNNm7DwjC9pgdA,504
118
- stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.configure,sha256=De8WWkYy2SfTcfqbhETp1MXLJooX2w-QqmsnBfyoODQ,77
119
- stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.init,sha256=tL9PFDOsfQPY09VXADcCXNjzQvf5d0r6zWUKAj-UyKw,74
116
+ stoobly_agent/app/cli/scaffold/templates/app/build/record/.docker-compose.record.yml,sha256=hgPOxIInxGAzGr28-ytB4tVfmsqgpZdPMOpMRbV2R0g,418
117
+ stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.configure,sha256=dix1ZVrqllsX6eYmQz7Jwslu-F3nA__IKmtRxb_KGSo,185
118
+ stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/.init,sha256=4PElJS6sdbdDftf0R2An5bJ8mdOL6MnW5OasEbzh2S4,182
120
119
  stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
121
120
  stoobly_agent/app/cli/scaffold/templates/app/build/record/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
122
- stoobly_agent/app/cli/scaffold/templates/app/build/test/.docker-compose.test.yml,sha256=UhR0B0Ghs8dxUdOEcnmtKI--sNN9CIQXxpvC87YAc6c,500
123
- stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.configure,sha256=De8WWkYy2SfTcfqbhETp1MXLJooX2w-QqmsnBfyoODQ,77
124
- stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.init,sha256=tL9PFDOsfQPY09VXADcCXNjzQvf5d0r6zWUKAj-UyKw,74
121
+ stoobly_agent/app/cli/scaffold/templates/app/build/test/.docker-compose.test.yml,sha256=Rn_7qL1MVK1jNlRepSvNHH9_iFrlE86_aRxjwIim0mY,414
122
+ stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.configure,sha256=dix1ZVrqllsX6eYmQz7Jwslu-F3nA__IKmtRxb_KGSo,185
123
+ stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/.init,sha256=4PElJS6sdbdDftf0R2An5bJ8mdOL6MnW5OasEbzh2S4,182
125
124
  stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
126
125
  stoobly_agent/app/cli/scaffold/templates/app/build/test/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
127
126
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/.config.yml,sha256=T9VQz6OwAQpKdIoFrnfKAxuX_to0c6EhuWRLKM34Sr4,22
128
- stoobly_agent/app/cli/scaffold/templates/app/entrypoint/.docker-compose.base.yml,sha256=ZekJ2lHjnPPI7hV44x3_2JzJFbn2iao9ZLWCgENfTOo,341
129
- stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/.docker-compose.mock.yml,sha256=cxAJ7CrI3AeuzQs9qw3fDSHTfYTQ1Bw_0egfy_FYRJ8,684
127
+ stoobly_agent/app/cli/scaffold/templates/app/entrypoint/.docker-compose.base.yml,sha256=IHLz4eJyZDfQdKd8HG218Zc3egtOCK1IR8vfkMNJ0Ug,491
128
+ stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/.docker-compose.mock.yml,sha256=-YbHd6BrAlBpT8PYg8kOsq0GyDeZ3g_q8IB0B0rGluU,551
130
129
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/bin/.configure,sha256=XuPxv-MprVjmv3S6WbJy9WsC3wizlx8TkFvNNhGyEJ8,254
131
130
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
132
131
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
133
132
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
134
133
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/mock/docker-compose.yml,sha256=Zh8h8yUqVXZMi_Y4aUPE48qw2DU-ONO4-rrSTh4E_Ts,591
135
- stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/.docker-compose.record.yml,sha256=g_tkKEPhwUyg5QbXNBT_bo3CFw9qdhaQyWirMJDS9tc,688
134
+ stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/.docker-compose.record.yml,sha256=aIcgjelss4V86lxS3-xN8j_2eR-0YkzhtN_b-g3Y0nE,555
136
135
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/bin/.configure,sha256=Jp7ozDgj0x9D8PYS8CMhGNs4VfwJhVwBqzss8ygbLJU,258
137
136
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
138
137
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
139
138
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
140
139
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/record/docker-compose.yml,sha256=5n4bZBHI9MtwBF55ugu1RTdwMy7T6SsYGQ_3sulFUj8,595
141
- stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/.docker-compose.test.yml,sha256=ifPMJHPbAf6hI4vS1BWuzPOOt5SCaxHFnWA5BVnM9RY,685
140
+ stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/.docker-compose.test.yml,sha256=9-qPnSisun4adnrDcZsJiyeMjhIlCHBJap_cmdzUPVg,552
142
141
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/bin/.configure,sha256=XuPxv-MprVjmv3S6WbJy9WsC3wizlx8TkFvNNhGyEJ8,254
143
142
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
144
143
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/bin/configure,sha256=Nme7aSLA-IH1NXgmqRMPzOlKcUSRXqZd-kcuZa47IEk,11
@@ -150,54 +149,54 @@ stoobly_agent/app/cli/scaffold/templates/app/gateway/mock/.docker-compose.mock.y
150
149
  stoobly_agent/app/cli/scaffold/templates/app/gateway/record/.docker-compose.record.yml,sha256=4pwMuBdfaf9hX1RVJ3KU3FY4E5BXYSPFsfUGKmiuXPk,234
151
150
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/.config.yml,sha256=XnLQZMzzMMIwVycjyPN5QXsmRztkTFAna1kIHYuDfJQ,19
152
151
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/.docker-compose.base.yml,sha256=GO3dIJ1WlazBDik_PDo1YvrSXcqeT5MMJjbb_iBdH6g,106
153
- stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/.docker-compose.exec.yml,sha256=rPc88-E1xoRwaqEVGVuTfOe7BcKCdDtatVqhNNIrhN8,299
152
+ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/.docker-compose.exec.yml,sha256=n-p_lIfsmpOJ78Zd0J2TdnV2M8hcn-K2TP9qOccbw1c,306
154
153
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.create,sha256=EZe84bLAKB-mrB9PGMx-amyMjp6x-ESUZKC8wxrWdLE,245
155
154
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.delete,sha256=RspRDQ7WT5jpN2o-6qXOlH-A2VpN4981pD4ZJljk9Rw,260
156
155
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.disable,sha256=xVf4Pk1RLvJm7Ff0rbGoWhYHPv0ME5e93fxS2yFqLnE,45
157
156
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.down,sha256=3xROM9J45s2C-qWZ5_IW23AU9U8YyNXI2ka_xGYNHeQ,232
158
157
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.enable,sha256=sfUSPG4uHdXX95BLgivXQYLbsLBP2DjJIiSTXRtvXuY,188
159
158
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.list,sha256=BdX3ARC-Piuwk0vFzBrcxEwtHjdFncpORzqP-hP4IwE,84
160
- stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.logs,sha256=2F1_IVU6Whj6bVXz7WcwSQKKQFO0HyBK22BdoSCUjbQ,187
159
+ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.logs,sha256=k-2a3p6LL8QOnU6o240g6an8tVhJeztR3ZsNoI5G2wc,211
161
160
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.mkcert,sha256=vyHaXmvy-7oL2RD8rIxwT-fdJS5kXmB0yHK5fRMo_cM,46
162
161
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.reset,sha256=_pvbLk-ektsCHEh_egDtd6c0sVqCPunwUWggarfoli0,238
163
162
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.snapshot,sha256=Kav1QNhKG7f0DBzc4-9dmxZMmmVTxmPqakT_W4kVYKk,241
164
163
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.up,sha256=MZbIZpLlKpn-8jMFIFeIw6lfd8mc8A8GMONP-UOYwMI,267
165
- stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/mock/.docker-compose.mock.yml,sha256=Ba-jNMZUcq62kK_hLpaN7dkEwz3_ZS91aJOOJ8U3Ark,257
166
- stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/record/.docker-compose.record.yml,sha256=cbK8vJUnk8llJ6pIE65AxJxD6SSal2ugm5sKjtz3uRY,260
164
+ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/mock/.docker-compose.mock.yml,sha256=FnCn64DjxyAiB2P_1JUwFmXslMR961nVZHkYiEXytlg,232
165
+ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/record/.docker-compose.record.yml,sha256=t34FNYZboJSfrKnIB2oJ3UuE_mJaW77-hcbSn3sfWec,235
167
166
  stoobly_agent/app/cli/scaffold/templates/constants.py,sha256=TjuWAZuAbWxS1hZR4jViF1LTBzT8iKLIJE65AvWRKNI,1460
168
167
  stoobly_agent/app/cli/scaffold/templates/factory.py,sha256=zzDMi56w-BWOUOw0DDGgmvrWep_JSqRjp-jQemfQwOo,1759
169
- stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.configure,sha256=0-fhtg7ZPAEWXqsgFk-W-qvqkHwrSTSI_LNyDMrDytY,102
170
- stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
168
+ stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.configure,sha256=z135hJDmBWYOhZbjuzC8-C6a0VtQ9NPx5mfCpVZliEA,210
169
+ stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/.init,sha256=Qwkc9ckplXTmGDdcYm9g_0zOa7WAvOjruGAtaf1U7eU,328
171
170
  stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/configure,sha256=BgZGK2dQz46wD9wKpUgkXXQhfL6WIMEMrnAp9_AmT5c,460
172
171
  stoobly_agent/app/cli/scaffold/templates/workflow/mock/bin/init,sha256=YxWVVQMEdGarcMtBcE1Sj2kdLgUgwY9kXp3MjPsVcmg,46
173
172
  stoobly_agent/app/cli/scaffold/templates/workflow/mock/fixtures/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
173
  stoobly_agent/app/cli/scaffold/templates/workflow/mock/fixtures.yml,sha256=8DW2LN5WYg1hxmZkqr8o5dxLgDxHtBARFSUiNjz009Y,226
175
174
  stoobly_agent/app/cli/scaffold/templates/workflow/mock/lifecycle_hooks.py,sha256=U7mlzT_wBR3uhHSG6CAyt5tBUNAvdIrCw33gdB-F294,467
176
- stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.configure,sha256=0-fhtg7ZPAEWXqsgFk-W-qvqkHwrSTSI_LNyDMrDytY,102
177
- stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
175
+ stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.configure,sha256=z135hJDmBWYOhZbjuzC8-C6a0VtQ9NPx5mfCpVZliEA,210
176
+ stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/.init,sha256=GekadmBjLyAxgTJbCA_NKgUXRwKFs8iX4qtV5YlvUXk,329
178
177
  stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/configure,sha256=qBYEj_7kvYqf7wmRLPhX9y_cx2Msmn1VcDrq02hWT4w,744
179
178
  stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/init,sha256=YxWVVQMEdGarcMtBcE1Sj2kdLgUgwY9kXp3MjPsVcmg,46
180
179
  stoobly_agent/app/cli/scaffold/templates/workflow/record/lifecycle_hooks.py,sha256=4vaVc_gnDTCLEqtcZybIk5dcmXrKmGuesF6gc3-_kX8,473
181
- stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.configure,sha256=0-fhtg7ZPAEWXqsgFk-W-qvqkHwrSTSI_LNyDMrDytY,102
182
- stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.init,sha256=5xJbfpwGOmRj5lwK5e0JNlVpNd3WFUkZ0GaCUK40aDk,97
180
+ stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.configure,sha256=z135hJDmBWYOhZbjuzC8-C6a0VtQ9NPx5mfCpVZliEA,210
181
+ stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/.init,sha256=Qwkc9ckplXTmGDdcYm9g_0zOa7WAvOjruGAtaf1U7eU,328
183
182
  stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/configure,sha256=ItenTr7B0h5h6I_ThE11X_al7HgsKbskJpU4dXt3X-g,454
184
183
  stoobly_agent/app/cli/scaffold/templates/workflow/test/bin/init,sha256=YxWVVQMEdGarcMtBcE1Sj2kdLgUgwY9kXp3MjPsVcmg,46
185
184
  stoobly_agent/app/cli/scaffold/templates/workflow/test/fixtures/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
185
  stoobly_agent/app/cli/scaffold/templates/workflow/test/fixtures.yml,sha256=8DW2LN5WYg1hxmZkqr8o5dxLgDxHtBARFSUiNjz009Y,226
187
186
  stoobly_agent/app/cli/scaffold/templates/workflow/test/lifecycle_hooks.py,sha256=U7mlzT_wBR3uhHSG6CAyt5tBUNAvdIrCw33gdB-F294,467
188
- stoobly_agent/app/cli/scaffold/validate_command.py,sha256=Rc_z632OSZLPyA4FuhNGz6oGxKKNxaQbE4CRkPcJYdo,2362
187
+ stoobly_agent/app/cli/scaffold/validate_command.py,sha256=OjAbX-YNx165od6HCwKmgdyF3upNdyQsL_vXTsOK2mo,2426
189
188
  stoobly_agent/app/cli/scaffold/validate_exceptions.py,sha256=Jtjl4OkbbSRWm0hy7Kf_50zcFh2J324HhNcnwJKH_Oc,54
190
- stoobly_agent/app/cli/scaffold/workflow.py,sha256=_uur4wdlxZh-piZralqPNoggIkVJ9AICiJVOz4KqKQQ,1421
191
- stoobly_agent/app/cli/scaffold/workflow_command.py,sha256=VVb_DVrmQ2o9xpm3DKM37NQjh_tGFZNOJE-vXwQpQ-c,3307
189
+ stoobly_agent/app/cli/scaffold/workflow.py,sha256=KlbWT9CIo9EpZxKU1WVZtmodhxK7CpmLUHPNk4Mh6DA,1570
190
+ stoobly_agent/app/cli/scaffold/workflow_command.py,sha256=NjLxmkAtv-WjcDi9Sa35GLr0PVQXOP2CcecCslC_3-U,3295
192
191
  stoobly_agent/app/cli/scaffold/workflow_copy_command.py,sha256=R9hh5dWVz7vGld7pENAA_a9gW56EkgG2K35nBQYXwyI,1462
193
192
  stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=5xnRYrVb2KlSDARZFjLGGWeURXRu63OHoRLEhO-EAvw,3401
194
193
  stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4YaXYq_r2JpR2MmSwk,416
195
194
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
196
- stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=9ww-kdQAVEuJ5GoF14qrtYCpqYHOakAk13OoiPqe4tQ,8295
195
+ stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=PYHZka-AV_1h8KELw1HO6Jpi61z8gdjEyauA1RMF1eY,9671
197
196
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=fhHciJXg_u32Wmh8us8LhgQj8D1SxkBADtuBBF4K0FM,4377
198
- stoobly_agent/app/cli/scaffold_cli.py,sha256=SAE6csE_pwE6vTeu054toGYHvz82bD1n4-dGY-FBxdk,19818
197
+ stoobly_agent/app/cli/scaffold_cli.py,sha256=VWMh8R7l21GVF8YrlmA7iygt4zKjphCCLgL0Kip56XM,20956
199
198
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
200
- stoobly_agent/app/cli/snapshot_cli.py,sha256=XNxpTm5z3bnBGNGI3_XZIif0ypN62WqYfDmShL5fXg4,9965
199
+ stoobly_agent/app/cli/snapshot_cli.py,sha256=yYxw3_ZpdkfQZ6CdIXeiLjteqYFTQyWemLkfJMzVxKU,10045
201
200
  stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
202
201
  stoobly_agent/app/cli/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
202
  stoobly_agent/app/cli/types/output.py,sha256=2wazv56g5IwLQeJCWfJXXAxTB9Y5WH1cKMHbpjbXNeo,439
@@ -207,7 +206,7 @@ stoobly_agent/app/cli/types/scenario.py,sha256=28WxmOlbm2Bsek1uu7yc4hJGz-d5oHbYA
207
206
  stoobly_agent/app/cli/types/test.py,sha256=1c458B7DFBWsEk5Q1CrZ2CUi84YzEzcs-W4qTcudwAk,714
208
207
  stoobly_agent/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
208
  stoobly_agent/app/models/adapters/__init__.py,sha256=cEEE--Bvrvk6DAsHx_uPgFhLnZJETP4zSBtWjMqyIKc,233
210
- stoobly_agent/app/models/adapters/joined_request_adapter.py,sha256=iINSDAV2-WlK_Mwty-dO5DNR38-1B9DykyzhGCOFeyg,2308
209
+ stoobly_agent/app/models/adapters/joined_request_adapter.py,sha256=Myp9iukUXRB6dCTjYaNEnRW4AlII3DENsMNsFg-RLFs,2600
211
210
  stoobly_agent/app/models/adapters/mitmproxy/__init__.py,sha256=f14D_0y3_Pz6NpRXQMIwJQiWBGhwKk0Wk_AmlY3twh0,105
212
211
  stoobly_agent/app/models/adapters/mitmproxy/request/__init__.py,sha256=UZeK_-vxQKD02Tuu-YHBtpR92k5mK3XFgwmd99h2VHA,281
213
212
  stoobly_agent/app/models/adapters/mitmproxy/request/python_adapter.py,sha256=lWSppm63oOv7RDmTsUI0EmQkUWlQhRGdjtViBEDU-AA,377
@@ -253,7 +252,7 @@ stoobly_agent/app/models/factories/resource/local_db/helpers/log.py,sha256=4LWxg
253
252
  stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py,sha256=vYZ-tgl5brQREj2eQ9LPsWfwDIXN45ip6VE1ZZBKc10,3364
254
253
  stoobly_agent/app/models/factories/resource/local_db/helpers/request_builder.py,sha256=PyVvsYmi5bBQ6PsUPxQ4nJM9rhhjGVOTd7ipuc2tMMM,3227
255
254
  stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py,sha256=TmcUSmUGtp2RglpuzDrjVY7ZVBFgss5aw14IZGxItg0,1847
256
- stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py,sha256=aYkzYo7ZiTx6dfcB7rDEiPkq8kz7BfY7Z0gCUAYQXCc,4647
255
+ stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py,sha256=LWQyhw_LxIzCx4rW5u0_jkJVbXf4myG9ItwJdAhH8Uc,4684
257
256
  stoobly_agent/app/models/factories/resource/local_db/helpers/search.py,sha256=A7KVcmxj9c3CT2rh26YH6khiEPkB_4U1UHhiYelNaws,782
258
257
  stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot.py,sha256=8GNlt33L4zV8yIkkhmb2iLSMYegSiP91HrPyJkE9daE,733
259
258
  stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot_service.py,sha256=fbqh5J5sMj0n_YFQFei2xhXLrSGU9vNmSX_uifA3U3M,1671
@@ -278,8 +277,8 @@ stoobly_agent/app/models/factories/resource/stoobly/request_adapter.py,sha256=Zr
278
277
  stoobly_agent/app/models/factories/resource/stoobly/scenario_adapter.py,sha256=HnM4g5Qdv16QXj8u4JCiJm2Dbw9OhAxmn9e_R8oaHG4,1105
279
278
  stoobly_agent/app/models/header_model.py,sha256=m91upRZr8GfE5um0d5dguUESKigBMWhSyu_X3HFk28Y,1406
280
279
  stoobly_agent/app/models/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
- stoobly_agent/app/models/helpers/apply.py,sha256=6A0RwujWlc62SX-yB0Ae2HtnzevAQym8pf3ewaTiogY,7745
282
- stoobly_agent/app/models/helpers/create_request_params_service.py,sha256=G2Zc0Xgf34T-y_Xz2nSRK1_fTps6y2939bnIajI_iVE,1976
280
+ stoobly_agent/app/models/helpers/apply.py,sha256=3o2XKHjYHaHyqNeC93O3GPuO-UQm2Kdazzu0Q8jDmXE,8283
281
+ stoobly_agent/app/models/helpers/create_request_params_service.py,sha256=_CQD3SNU5nJiWwGHYEEHE1Zil-7u2danVBVnrWE4_h8,2096
283
282
  stoobly_agent/app/models/model.py,sha256=77ZTByQmH5sWBcSrCF3kG_C4muHggcFyH1DWsOhIgvg,1180
284
283
  stoobly_agent/app/models/query_param_model.py,sha256=EBj76phSJ9_45KgP0vIZGbkkG6-tSn_U1fNW_7qLy_4,1455
285
284
  stoobly_agent/app/models/replayed_response_model.py,sha256=YSxDnUJb1XfB4eNK8ygax9ugBD-niZlK5V4C24tDeic,1819
@@ -338,7 +337,7 @@ stoobly_agent/app/proxy/record/upload_request_service.py,sha256=J61cGToRrZO9S53b
338
337
  stoobly_agent/app/proxy/replay/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
338
  stoobly_agent/app/proxy/replay/alias_context.py,sha256=u_CL64wrLcZiIYWvyOMFlpVcAsigC-8IqrE0iDeRMro,748
340
339
  stoobly_agent/app/proxy/replay/alias_resolver.py,sha256=0t7dISfVoFIa_fOqhUZQr0IbTR3sN3nmGPK3OkM7GSw,3493
341
- stoobly_agent/app/proxy/replay/body_parser_service.py,sha256=ZoWEN9qdo8nMyWSM-YDeqD3YVybYGMk7EuT2qdguJ6I,3621
340
+ stoobly_agent/app/proxy/replay/body_parser_service.py,sha256=rZftmJMDx9TY9JSvJiUPulbT5cvj3FU8GvIxlgjOy4U,3853
342
341
  stoobly_agent/app/proxy/replay/context.py,sha256=_dtU2-OmTVY_zsXRU7gdL9E7zbx9a9jSfkm9_H6vfp0,796
343
342
  stoobly_agent/app/proxy/replay/multipart.py,sha256=LzvBdNgWKy0sRSIzD23uoZbXpV26HSrZJxKhhIv2aMg,2309
344
343
  stoobly_agent/app/proxy/replay/replay_request_service.py,sha256=ZxSD_7DhGgqS-BGUTpVgjLmE5O5qUwv-kOPSu6VEBkA,7045
@@ -422,9 +421,9 @@ stoobly_agent/config/constants/statuses.py,sha256=dR88qHHnDR_5ppuKijwc0R24D_fWc6
422
421
  stoobly_agent/config/constants/test_filter.py,sha256=rQ-eMZ8kpq49pqS1PQhaRx59dlRicd-Ag4sjgoXfpY8,109
423
422
  stoobly_agent/config/constants/test_output_level.py,sha256=yrn8cs-lexrK0Ckpc_SX3NhsZPfVhNpmjzjSP62LCro,135
424
423
  stoobly_agent/config/constants/test_strategy.py,sha256=d6-WgKqElB3q_csP-QYFkhR4XvlPGfGdCJ-SBEDEoL4,152
425
- stoobly_agent/config/data_dir.py,sha256=xlNP9b9of0zPSjfDRL_YcmdZ6JJ7DMgqwlXe3dTagqI,7745
424
+ stoobly_agent/config/data_dir.py,sha256=zNp-diJRcW6tl3YHWMcShwJgRIxc8Bq7DJ2WR9hJFIM,7777
426
425
  stoobly_agent/config/mitmproxy.py,sha256=z9L1JSWwQFsn4gMZk8Dcz5mOcUc6dYnW1ZugrYTEttw,1902
427
- stoobly_agent/config/schema.yml,sha256=b4I8utMrUrMSr86UbXgYYxt2-TJynQA9oQtOQ7CM-PE,1963
426
+ stoobly_agent/config/schema.yml,sha256=aLSrTI7c6_K-fGOyoGFUdA2Prx9zQwpF3IC43LvXupo,1993
428
427
  stoobly_agent/config/settings.yml.sample,sha256=muxP1bWrtknVaSgdseFaw23tuwduILNdQTVy7aB519M,404
429
428
  stoobly_agent/config/source_dir.py,sha256=3oYwWmIrid0YsIf91AIUI2itAA3pdPA10eHaC-nmelQ,1146
430
429
  stoobly_agent/db/migrations/2022_03_17_060144_create_requests.py,sha256=UAKfkAi4EhECWneDME3tCH7J3JhN72ImDz6L61PPHPQ,890
@@ -664,7 +663,7 @@ stoobly_agent/test/app/cli/request/request_reset_test.py,sha256=5My6Z452eideAOUu
664
663
  stoobly_agent/test/app/cli/request/request_response_test.py,sha256=Fu-A8tIn016DKme4WIaPzo3YeFY-CPtTOpaSFigUVVM,1263
665
664
  stoobly_agent/test/app/cli/request/request_snapshot_test.py,sha256=0013aoiMZin-2YEtHzEmQspAPA3SUd_6XiItbX0U7Ok,4425
666
665
  stoobly_agent/test/app/cli/request/request_test_test.py,sha256=-cJNXKjgryVVfVt-7IN5fIhBwe3NjFoPmeavDH8lAjU,5527
667
- stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=BXqWjSMRrK6MxX6rM6uHbFj4keqylSGDPvgy4TDdb9I,3702
666
+ stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=_nGDLUsYxqkeqs5DdhvAeXy3IuotpgqKHXKVzu6GDF4,3700
668
667
  stoobly_agent/test/app/cli/scaffold/cli_test.py,sha256=sMNvO845MIu5DVGa1HmwXQDmKDcwrfNTdEb3fK5886w,4557
669
668
  stoobly_agent/test/app/cli/scaffold/e2e_test.py,sha256=fd_LWwkkjMbQQ39hxG0SwrwXeR-_cycT0Bmz3QOzpss,12978
670
669
  stoobly_agent/test/app/cli/scaffold/hosts_file_reader_test.py,sha256=zGx-fvYTT3N-WS09guOICcRHl8Ann43NHLGTt33FR1s,2279
@@ -674,7 +673,7 @@ stoobly_agent/test/app/cli/scenario/scenario_replay_test.py,sha256=XqR-GDrR8uUtx
674
673
  stoobly_agent/test/app/cli/scenario/scenario_reset_test.py,sha256=QOyytOoFu1FALny3-xwp9r4bfOE9fftgnhkDJWYxXh0,2021
675
674
  stoobly_agent/test/app/cli/scenario/scenario_snapshot_test.py,sha256=vk572Oxp1c8Y4utqq3L24nTkFj5Fttig0R2cWXUzg3E,3395
676
675
  stoobly_agent/test/app/cli/scenario/scenario_test_integration_test.py,sha256=BdXGe1xfb79tCCTKtp4sqI6CkZL_KamvQKLK8Wwb4u0,5543
677
- stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py,sha256=gyNWX9b4PFkmxQxEth8xe1-xNryvjBuM0AyuJsEPOQA,15529
676
+ stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py,sha256=p0Nyv66agEPOKY23lMNBZQNAXNL1zoYJz2N5ev4rvO0,21729
678
677
  stoobly_agent/test/app/cli/snapshot/snapshot_copy_test.py,sha256=Yg78-FhSiG_r6Jpm-sN8sn0LjVXTwTOXt6hg8ni2GIY,1953
679
678
  stoobly_agent/test/app/cli/snapshot/snapshot_prune_test.py,sha256=Hi8-rpQ9ryy1Jdl_KB9ERXgbLHLKmuFQZaxn5EVFj9I,3752
680
679
  stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=fILsX2M5j4wuLRP6LJTHe4CPB8gvaEbsSoYmFCHmKVk,4514
@@ -692,7 +691,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
692
691
  stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=5IFGVGn3ogvRT0fzZgXzhrYlSfSlr8IR1p_XExaegMQ,3399
693
692
  stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
694
693
  stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
695
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=s4n9aV0PFyXVJPIoNMaqvv68dMsxTpUy9-iiXCnuR9I,5
694
+ stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=xH9bGLikMOaYuf4V5R9hGZhOeDNLzz9F4hDTDDfvL54,5
696
695
  stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
697
696
  stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
698
697
  stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
@@ -724,13 +723,13 @@ stoobly_agent/test/mock_data/petstore-references.yaml,sha256=OpNrCSb5-qKmUBIO9oG
724
723
  stoobly_agent/test/mock_data/petstore-swagger-io.yaml,sha256=FbOEaArZKl1dV7jEf1hyJQv9jdAb5jXfsRRZB5i4-0Y,22094
725
724
  stoobly_agent/test/mock_data/petstore.yaml,sha256=CCdliJky04Az4FIOkFA883uunwFDHLr2Y8ohtozFi_Q,2714
726
725
  stoobly_agent/test/mock_data/request_show_response.py,sha256=K_a0fP0QT58T8sX9PaM6hqtX1A1depZsqg_GsNPf--k,707
727
- stoobly_agent/test/mock_data/scaffold/docker-compose-assets-service.yml,sha256=ftMKf-iB1Njl5QNatMr1XuBu2KqieLpNgV40_qnW8w8,277
726
+ stoobly_agent/test/mock_data/scaffold/docker-compose-assets-service.yml,sha256=TJpkkkSjUlfz3t8Oxsz6Ery1JX7Ed79Fh6oiEuKI4i0,275
728
727
  stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=x7hYB1R9RtDDcU1NS1bkhXlTCwCgCPrOW7Y9tyAVUjs,249
729
728
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
730
729
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
731
730
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
732
- stoobly_agent-1.2.2.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
733
- stoobly_agent-1.2.2.dist-info/METADATA,sha256=wxhs6QuVxAV3YEKIAFE1N27I-purayuYVsmpmdiHYlM,3384
734
- stoobly_agent-1.2.2.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
735
- stoobly_agent-1.2.2.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
736
- stoobly_agent-1.2.2.dist-info/RECORD,,
731
+ stoobly_agent-1.3.0.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
732
+ stoobly_agent-1.3.0.dist-info/METADATA,sha256=bt_uMnloOVPMpxtK06lQ4OiE6vD_YL5PTFIaBA8Bm1Q,3384
733
+ stoobly_agent-1.3.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
734
+ stoobly_agent-1.3.0.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
735
+ stoobly_agent-1.3.0.dist-info/RECORD,,
@@ -1,34 +0,0 @@
1
- FROM ubuntu:24.04 AS build
2
-
3
- WORKDIR /tmp
4
-
5
- RUN apt-get update && apt-get install -y curl
6
- RUN curl -JLO "https://dl.filippo.io/mkcert/v1.4.4?for=linux/amd64" && \
7
- chmod +x mkcert-v1.4.4-linux-amd64
8
-
9
- FROM ubuntu:24.04 AS cert
10
-
11
- ARG SERVICE_HOSTNAME
12
-
13
- COPY --from=build /tmp/mkcert-v1.4.4-linux-amd64 /bin/mkcert
14
-
15
- RUN useradd -m mkcert
16
-
17
- USER mkcert
18
- WORKDIR /home/mkcert
19
-
20
- RUN mkcert $SERVICE_HOSTNAME && mkcert -pkcs12 $SERVICE_HOSTNAME && cat $SERVICE_HOSTNAME.pem >> $SERVICE_HOSTNAME-joined.pem && cat $SERVICE_HOSTNAME-key.pem >> $SERVICE_HOSTNAME-joined.pem
21
-
22
- FROM stoobly/agent:1.2
23
-
24
- ARG SERVICE_HOSTNAME
25
- ARG USER_ID
26
-
27
- # Allow running stoobly on port 443
28
- RUN apt-get update && apt-get install -y curl libcap2-bin
29
- RUN setcap 'cap_net_bind_service=+ep' /usr/local/bin/python3.12
30
-
31
- # Change user id of stoobly user to that of host's user id
32
- RUN if [ -n "$USER_ID" ]; then groupmod -g $USER_ID stoobly; usermod -u $USER_ID stoobly; fi
33
-
34
- COPY --chown=stoobly:stoobly --from=cert /home/mkcert/$SERVICE_HOSTNAME-joined.pem /etc/ssl/certs