port-ocean 0.14.6__tar.gz → 0.14.7__tar.gz
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.
Potentially problematic release.
This version of port-ocean might be problematic. Click here for more details.
- {port_ocean-0.14.6 → port_ocean-0.14.7}/PKG-INFO +1 -1
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/authentication.py +1 -1
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/mixins/entities.py +1 -1
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/helpers/retry.py +1 -1
- port_ocean-0.14.7/port_ocean/tests/helpers/fake_port_api.py +191 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/pyproject.toml +1 -1
- {port_ocean-0.14.6 → port_ocean-0.14.7}/LICENSE.md +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/README.md +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Dockerfile.Deb +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/config/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/context/event.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/models.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/ocean.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/py.typed +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/run.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/version.py +0 -0
|
@@ -48,6 +48,7 @@ class EntityClientMixin:
|
|
|
48
48
|
).lower(),
|
|
49
49
|
"validation_only": str(validation_only).lower(),
|
|
50
50
|
},
|
|
51
|
+
extensions={"retryable": True},
|
|
51
52
|
)
|
|
52
53
|
|
|
53
54
|
if response.is_error:
|
|
@@ -205,7 +206,6 @@ class EntityClientMixin:
|
|
|
205
206
|
"include": ["blueprint", "identifier"],
|
|
206
207
|
},
|
|
207
208
|
extensions={"retryable": True},
|
|
208
|
-
timeout=30,
|
|
209
209
|
)
|
|
210
210
|
handle_status_code(response)
|
|
211
211
|
return [Entity.parse_obj(result) for result in response.json()["entities"]]
|
|
@@ -134,7 +134,7 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
|
134
134
|
"""
|
|
135
135
|
try:
|
|
136
136
|
transport: httpx.BaseTransport = self._wrapped_transport # type: ignore
|
|
137
|
-
if
|
|
137
|
+
if self._is_retryable_method(request):
|
|
138
138
|
send_method = partial(transport.handle_request)
|
|
139
139
|
response = self._retry_operation(request, send_method)
|
|
140
140
|
else:
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import uvicorn
|
|
2
|
+
import os
|
|
3
|
+
from typing import Dict, Any
|
|
4
|
+
from fastapi import FastAPI, Request
|
|
5
|
+
|
|
6
|
+
SMOKE_TEST_SUFFIX = os.environ.get("SMOKE_TEST_SUFFIX", "smoke")
|
|
7
|
+
|
|
8
|
+
app = FastAPI()
|
|
9
|
+
|
|
10
|
+
FAKE_DEPARTMENT_BLUEPRINT = {
|
|
11
|
+
"identifier": f"fake-department-{SMOKE_TEST_SUFFIX}",
|
|
12
|
+
"title": "Fake Department",
|
|
13
|
+
"icon": "Blueprint",
|
|
14
|
+
"schema": {"properties": {"name": {"type": "string"}, "id": {"type": "string"}}},
|
|
15
|
+
"relations": {},
|
|
16
|
+
}
|
|
17
|
+
FAKE_PERSON_BLUEPRINT = {
|
|
18
|
+
"identifier": f"fake-person-{SMOKE_TEST_SUFFIX}",
|
|
19
|
+
"title": "Fake Person",
|
|
20
|
+
"icon": "Blueprint",
|
|
21
|
+
"schema": {
|
|
22
|
+
"properties": {
|
|
23
|
+
"status": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["WORKING", "NOPE"],
|
|
26
|
+
"enumColors": {"WORKING": "green", "NOPE": "red"},
|
|
27
|
+
"title": "Status",
|
|
28
|
+
},
|
|
29
|
+
"email": {"type": "string", "format": "email", "title": "Email"},
|
|
30
|
+
"age": {"type": "number", "title": "Age"},
|
|
31
|
+
"bio": {"type": "string", "title": "Bio"},
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"relations": {
|
|
35
|
+
"department": {
|
|
36
|
+
"title": "Department",
|
|
37
|
+
"description": "Fake Department",
|
|
38
|
+
"target": f"fake-department-{SMOKE_TEST_SUFFIX}",
|
|
39
|
+
"required": False,
|
|
40
|
+
"many": False,
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@app.router.get("/v1/blueprints/{blueprint_id}")
|
|
47
|
+
@app.router.patch("/v1/blueprints/{blueprint_id}")
|
|
48
|
+
async def get_blueprint(blueprint_id: str) -> Dict[str, Any]:
|
|
49
|
+
return {
|
|
50
|
+
"blueprint": (
|
|
51
|
+
FAKE_PERSON_BLUEPRINT
|
|
52
|
+
if blueprint_id.startswith("fake-person")
|
|
53
|
+
else FAKE_DEPARTMENT_BLUEPRINT
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@app.router.post("/v1/entities/search")
|
|
59
|
+
async def search_entities() -> Dict[str, Any]:
|
|
60
|
+
return {"ok": True, "entities": []}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@app.router.get("/v1/integration/{integration_id}")
|
|
64
|
+
@app.router.patch("/v1/integration/{integration_id}")
|
|
65
|
+
@app.router.patch("/v1/integration/{integration_id}/resync-state")
|
|
66
|
+
async def get_integration(integration_id: str) -> Dict[str, Any]:
|
|
67
|
+
return {
|
|
68
|
+
"integration": {
|
|
69
|
+
"identifer": integration_id,
|
|
70
|
+
"resyncState": {
|
|
71
|
+
"status": "completed",
|
|
72
|
+
"lastResyncEnd": "2024-11-20T12:01:54.225362+00:00",
|
|
73
|
+
"lastResyncStart": "2024-11-20T12:01:45.483844+00:00",
|
|
74
|
+
"nextResync": None,
|
|
75
|
+
"intervalInMinuets": None,
|
|
76
|
+
"updatedAt": "2024-11-20T12:01:54.355Z",
|
|
77
|
+
},
|
|
78
|
+
"config": {
|
|
79
|
+
"deleteDependentEntities": True,
|
|
80
|
+
"createMissingRelatedEntities": True,
|
|
81
|
+
"enableMergeEntity": True,
|
|
82
|
+
"resources": [
|
|
83
|
+
{
|
|
84
|
+
"kind": "fake-department",
|
|
85
|
+
"selector": {"query": "true"},
|
|
86
|
+
"port": {
|
|
87
|
+
"entity": {
|
|
88
|
+
"mappings": {
|
|
89
|
+
"identifier": ".id",
|
|
90
|
+
"title": ".name",
|
|
91
|
+
"blueprint": f'"fake-department-{SMOKE_TEST_SUFFIX}"',
|
|
92
|
+
"properties": {"name": ".name", "id": ".id"},
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "fake-person",
|
|
99
|
+
"selector": {"query": "true"},
|
|
100
|
+
"port": {
|
|
101
|
+
"entity": {
|
|
102
|
+
"mappings": {
|
|
103
|
+
"identifier": ".id",
|
|
104
|
+
"title": ".name",
|
|
105
|
+
"blueprint": f'"fake-person-{SMOKE_TEST_SUFFIX}"',
|
|
106
|
+
"properties": {
|
|
107
|
+
"name": ".name",
|
|
108
|
+
"email": ".email",
|
|
109
|
+
"status": ".status",
|
|
110
|
+
"age": ".age",
|
|
111
|
+
"department": ".department.name",
|
|
112
|
+
},
|
|
113
|
+
"relations": {"department": ".department.id"},
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
"installationType": "OnPrem",
|
|
121
|
+
"_orgId": "org_ZOMGMYUNIQUEID",
|
|
122
|
+
"_id": "integration_0dOOhnlJQDjMPnfe",
|
|
123
|
+
"identifier": f"smoke-test-integration-{SMOKE_TEST_SUFFIX}",
|
|
124
|
+
"integrationType": "smoke-test",
|
|
125
|
+
"createdBy": "APSQAYsYoIwPXqjn6XpwCAgnPakkNO67",
|
|
126
|
+
"updatedBy": "APSQAYsYoIwPXqjn6XpwCAgnPakkNO67",
|
|
127
|
+
"createdAt": "2024-11-20T12:01:42.651Z",
|
|
128
|
+
"updatedAt": "2024-11-20T12:01:54.355Z",
|
|
129
|
+
"clientId": "",
|
|
130
|
+
"logAttributes": {
|
|
131
|
+
"ingestId": "DOHSAIDHOMER",
|
|
132
|
+
"ingestUrl": "http://localhost:5555/logs/integration/DOHSAIDHOMER",
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
@app.router.post("/v1/blueprints/{blueprint_id}/entities")
|
|
139
|
+
async def upsert_entities(blueprint_id: str, request: Request) -> Dict[str, Any]:
|
|
140
|
+
json = await request.json()
|
|
141
|
+
|
|
142
|
+
return {
|
|
143
|
+
"ok": True,
|
|
144
|
+
"entity": json,
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
@app.router.post("/v1/auth/access_token")
|
|
149
|
+
async def auth_token() -> Dict[str, Any]:
|
|
150
|
+
return {
|
|
151
|
+
"accessToken": "ZOMG",
|
|
152
|
+
"expiresIn": 1232131231,
|
|
153
|
+
"tokenType": "adadad",
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
@app.router.delete("/v1/blueprints/{blueprint_id}/all-entities")
|
|
158
|
+
async def delete_blueprint(blueprint_id: str, request: Request) -> Dict[str, Any]:
|
|
159
|
+
return {"migrationId": "ZOMG"}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
@app.router.get("/v1/migrations/{migration_id}")
|
|
163
|
+
async def migration(migration_id: str, request: Request) -> Dict[str, Any]:
|
|
164
|
+
return {
|
|
165
|
+
"migration": {
|
|
166
|
+
"id": migration_id,
|
|
167
|
+
"status": "COMPLETE",
|
|
168
|
+
"actor": "Dwayne Scissors Johnson",
|
|
169
|
+
"sourceBlueprint": "leBlue",
|
|
170
|
+
"mapping": {},
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
CATCH_ALL = "/{full_path:path}"
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@app.router.get(CATCH_ALL)
|
|
179
|
+
@app.router.post(CATCH_ALL)
|
|
180
|
+
@app.router.patch(CATCH_ALL)
|
|
181
|
+
@app.router.delete(CATCH_ALL)
|
|
182
|
+
async def catch_all(full_path: str, request: Request) -> str:
|
|
183
|
+
return f"Hello there from fake Port API - {full_path}, thanks for accessing me with {request.method}"
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
def start() -> None:
|
|
187
|
+
uvicorn.run(app, host="0.0.0.0", port=5555)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
if __name__ == "__main__":
|
|
191
|
+
start()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entities_state_applier/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/port_app_config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/core/handlers/resync_state_updater/updater.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.14.6 → port_ocean-0.14.7}/port_ocean/tests/clients/port/mixins/test_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|