diff --git a/README.md b/README.md index fe9d5c6c..cd0ef8bc 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Below are the steps to start all services. For other methods, please consult the 1. Set-up environement variables -`VITE_DA_SIMU`, `VITE_SNCF_SIMU` & `VITE_POWERGRID_SIMU` are the simulators endpoints. +`VITE_POWERGRID_SIMU` is the simulator's endpoint. Put for each UC the corresponding IP address. Examples: @@ -101,6 +101,11 @@ cd config/dev/cab-standalone - After adding the frontend URL, save the changes to update the client settings. 4. Load resources +**WARINING:** You need to restart the frontend after updating the URL on keycloak do it before loading the resources. +```sh +docker restart frontend +``` + ```sh cd resources ./loadTestConf.sh diff --git a/backend/cab_common/tests/conftest.py b/backend/cab_common/tests/conftest.py index b1728ea5..d5f9d729 100644 --- a/backend/cab_common/tests/conftest.py +++ b/backend/cab_common/tests/conftest.py @@ -28,11 +28,11 @@ def mock_introspect(token): "jti": "91ee1b13-35c7-4509-a306-033a74abb9d4", "iss": "http://192.168.208.57:3200/auth/realms/dev", "aud": "account", - "sub": "sncf_user", + "sub": "railway_user", "typ": "Bearer", "azp": "opfab-client", "session_state": "420008f7-52de-4174-a7fa-36afcc5ec78e", - "preferred_username": "sncf_user", + "preferred_username": "railway_user", "email_verified": False, "acr": "1", "realm_access": {"roles": ["offline_access", "uma_authorization"]}, @@ -47,9 +47,9 @@ def mock_introspect(token): }, "scope": "email profile", "sid": "420008f7-52de-4174-a7fa-36afcc5ec78e", - "entitiesId": "SNCF", + "entitiesId": "Railway", "client_id": "opfab-client", - "username": "sncf_user", + "username": "railway_user", "active": True, } return valid_introspect diff --git a/backend/cab_common/tests/test_get_use_cases.py b/backend/cab_common/tests/test_get_use_cases.py index db42315c..6a218170 100644 --- a/backend/cab_common/tests/test_get_use_cases.py +++ b/backend/cab_common/tests/test_get_use_cases.py @@ -14,7 +14,7 @@ def test_get_use_cases_valid_token(app, mock_keycloak_introspect, valid_token): use_cases = get_use_cases() # Assert the expected result - assert use_cases == ["SNCF"] + assert use_cases == ["Railway"] def test_get_use_cases_invalid_token(app, mock_keycloak_introspect): diff --git a/backend/context-service/api/schemas.py b/backend/context-service/api/schemas.py index c14c19be..3752e236 100644 --- a/backend/context-service/api/schemas.py +++ b/backend/context-service/api/schemas.py @@ -14,7 +14,7 @@ class MetadataSchema(Schema): class ContextIn(Schema): use_case = String( - required=True, validate=OneOf(["PowerGrid", "SNCF", "DA", "ORANGE"]) + required=True, validate=OneOf(["PowerGrid", "Railway", "ATM"]) ) date = DateTime(format="iso") data = Dict() diff --git a/backend/context-service/resources/ATM/context_manager.py b/backend/context-service/resources/ATM/context_manager.py new file mode 100644 index 00000000..b44ce208 --- /dev/null +++ b/backend/context-service/resources/ATM/context_manager.py @@ -0,0 +1,8 @@ +# backend/context-service/resources/ATM/context_manager.py + +from api.context_manager.base_context_manager import BaseContextManager + +class ATMContextManager(BaseContextManager): + def __init__(self): + super().__init__() + self.use_case = "ATM" \ No newline at end of file diff --git a/backend/context-service/resources/ATM/schemas.py b/backend/context-service/resources/ATM/schemas.py new file mode 100644 index 00000000..b522beec --- /dev/null +++ b/backend/context-service/resources/ATM/schemas.py @@ -0,0 +1,8 @@ +# backend/context-service/resources/ATM/schemas.py + +from api.schemas import MetadataSchema +from apiflask.fields import Dict, String + +class MetadataSchemaATM(MetadataSchema): + topology = String(allow_none=False) + observation = Dict(allow_none=False) \ No newline at end of file diff --git a/backend/context-service/resources/Railway/context_manager.py b/backend/context-service/resources/Railway/context_manager.py new file mode 100644 index 00000000..94153c96 --- /dev/null +++ b/backend/context-service/resources/Railway/context_manager.py @@ -0,0 +1,8 @@ +# backend/context-service/resources/Railway/context_manager.py + +from api.context_manager.base_context_manager import BaseContextManager + +class RailwayContextManager(BaseContextManager): + def __init__(self): + super().__init__() + self.use_case = "Railway" \ No newline at end of file diff --git a/backend/context-service/resources/Railway/schemas.py b/backend/context-service/resources/Railway/schemas.py new file mode 100644 index 00000000..9eda25bc --- /dev/null +++ b/backend/context-service/resources/Railway/schemas.py @@ -0,0 +1,10 @@ +# backend/context-service/resources/Railway/schemas.py + +from api.schemas import MetadataSchema +from apiflask.fields import Dict, String, List, Integer + +class MetadataSchemaRailway(MetadataSchema): + trains = List(Dict(), required=False) + list_of_target = Dict(required=False) + direction_agents = List(Integer(), required=False) + position_agents = Dict(required=False) diff --git a/backend/context-service/tests/conftest.py b/backend/context-service/tests/conftest.py index 77721709..50f4750d 100644 --- a/backend/context-service/tests/conftest.py +++ b/backend/context-service/tests/conftest.py @@ -101,7 +101,7 @@ def publisher_test_auth_mocker(client, mocker): "scope": "email profile", "sid": "c8f122de-77aa-46e5-8e0f-37516e0f2933", "groups": "Dispatcher;ReadOnly;Supervisor", - "entitiesId": "SNCF;ORANGE;DA;PowerGrid", + "entitiesId": "Railway;ATM;PowerGrid", "client_id": "opfab-client", "username": "publisher_test", "active": True, @@ -137,7 +137,7 @@ def create_contexts(client, publisher_test_auth_mocker): } ] }, - "use_case": "SNCF", + "use_case": "Railway", } client.post("/api/v1/contexts", headers=headers, json=context_data) diff --git a/backend/event-service/resources/ATM/event_manager.py b/backend/event-service/resources/ATM/event_manager.py new file mode 100644 index 00000000..b6e305ac --- /dev/null +++ b/backend/event-service/resources/ATM/event_manager.py @@ -0,0 +1,19 @@ +# backend/event-service/resources/ATM/event_manager.py + +from api.event_manager.base_event_manager import BaseEventManager + +class ATMEventManager(BaseEventManager): + def __init__(self): + super().__init__() + self.use_case = "ATM" + self.use_case_process = "cabProcess" + + # Optional: Customize Event Uniqueness + def get_unique_fields(self, data): + """ + Override to specify unique fields for event uniqueness. + + This method specifies the fields on which InteractiveAI will ensure event uniqueness. + """ + input_line = data["data"].get("line") + return {"line": input_line} \ No newline at end of file diff --git a/backend/event-service/resources/ATM/schemas.py b/backend/event-service/resources/ATM/schemas.py new file mode 100644 index 00000000..3dbaff1c --- /dev/null +++ b/backend/event-service/resources/ATM/schemas.py @@ -0,0 +1,17 @@ +# backend/event-service/resources/ATM/schemas.py + +from apiflask.fields import Float, String, Dict +from apiflask.validators import OneOf +from api.schemas import MetadataSchema + +class MetadataSchemaATM(MetadataSchema): + event_type = String( + required=True, + validate=OneOf(["KPI", "anticipation", "agent", "consignation"]), + ) + creation_date = String() + zone = String(validate=OneOf(["Est", "Ouest", "Centre"])) + line = String(required=True) + flux = Float() + kpis = Dict(required=True) + event_context = String() \ No newline at end of file diff --git a/backend/event-service/resources/Railway/event_manager.py b/backend/event-service/resources/Railway/event_manager.py new file mode 100644 index 00000000..1fac9b5c --- /dev/null +++ b/backend/event-service/resources/Railway/event_manager.py @@ -0,0 +1,15 @@ +# backend/event-service/resources/Railway/event_manager.py + +from api.event_manager.base_event_manager import BaseEventManager + +class RailwayEventManager(BaseEventManager): + def __init__(self): + super().__init__() + self.use_case = "Railway" + self.use_case_process = "cabProcess" + + # Optional: Customize Event Uniqueness + def get_unique_fields(self, data): + id_train = data["data"].get("id_train") + event_type = data["data"].get("event_type") + return {"id_train": id_train, "event_type": event_type} diff --git a/backend/event-service/resources/Railway/schemas.py b/backend/event-service/resources/Railway/schemas.py new file mode 100644 index 00000000..f088708a --- /dev/null +++ b/backend/event-service/resources/Railway/schemas.py @@ -0,0 +1,21 @@ +# backend/event-service/resources/Railway/schemas.py + +from apiflask.fields import Float, String, Dict, List, Integer +from apiflask.validators import OneOf +from api.schemas import MetadataSchema + +class MetadataSchemaRailway(MetadataSchema): + agent_id = String(allow_none=True, required=True) + event_type = String(required=True) + agent_position = List( + Integer(allow_none=True), allow_none=True, default=None + ) + delay = Integer(required=True) + id_train = String(allow_none=True, required=True) + malfunction_stop_position = List(Integer(allow_none=True), allow_none=True) + num_rame = String(allow_none=True, default=None) + tmp_rame = String(allow_none=True, default=None) + travel_plan = List(Dict(), allow_none=True) + longitude = Float(allow_none=True, default=None) + latitude = Float(allow_none=True, default=None) + simulation_name = String(allow_none=True, default=None) diff --git a/backend/event-service/tests/conftest.py b/backend/event-service/tests/conftest.py index 8286abb8..57744334 100644 --- a/backend/event-service/tests/conftest.py +++ b/backend/event-service/tests/conftest.py @@ -112,7 +112,7 @@ def create_events(client, create_usecases, PowerGrid_auth_mocker): ) event2 = EventModel( id_event="456", - use_case="DA", + use_case="ATM", title="Test Event 2", description="This is another test event", start_date=datetime.now(), diff --git a/backend/event-service/tests/test_views.py b/backend/event-service/tests/test_views.py index c625c8b4..fa2c3bb5 100644 --- a/backend/event-service/tests/test_views.py +++ b/backend/event-service/tests/test_views.py @@ -5,8 +5,8 @@ from settings import logger POWERGRID_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQzMzMyNjEsImlhdCI6MTY4MzcyODQ2MSwianRpIjoiNzE2YjAyZDQtMjliYS00MWJkLTg1YjItODAwNGNlYzFhMDMzIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJydGVfdXNlciIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiI4OTc2YjEyNS0zOWE4LTRiZGYtYjUyMy03ZTBkY2JjZGQzYjQiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI4OTc2YjEyNS0zOWE4LTRiZGYtYjUyMy03ZTBkY2JjZGQzYjQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IkRpc3BhdGNoZXI7UmVhZE9ubHk7U3VwZXJ2aXNvciIsInByZWZlcnJlZF91c2VybmFtZSI6InJ0ZV91c2VyIiwiZ2l2ZW5fbmFtZSI6IiIsImVudGl0aWVzSWQiOiJSVEUiLCJmYW1pbHlfbmFtZSI6IiJ9.j-_kiNnn5jQtUBMZ-oaeWVVfZLM1dWLFjRYKfL9pkpklG-CAVl1CuUQE969YkaPZLD4TtXaiNy02LhkIWmSwQuks2lH5_dtUlCBlpIouD1liDxg1g_oXn_m3vKwzDQ03KeeVC03BCMJR8gDTED80U-vjXT33-BngpjMP2rFMZRiZIJO_BB4GnIf55dnazWj8jbp0MVZYS9fuNeuLLrRgMevGDn5s-AlznmWLce1K6P882StmhI0unRXVOTRae8xRvDkk0BJ545K9FtLoZtgOeyEw7JrvElkPMqWKOy3R5hmpJENZSV1zCMBdXusVi7GTyn4denCqA7yYerWi_yaITg" -DA_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDEyMTksImlhdCI6MTY4Mzc5NjQxOSwianRpIjoiYTI4NzM0ZjYtZjVjOC00MTMwLThmYjctNTczZDc1YzM5ZDhjIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJkYV91c2VyIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BmYWItY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZ3JvdXBzIjoiUlRFO0FETUlOO1JlYWRPbmx5IiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGFfdXNlciIsImVudGl0aWVzSWQiOiJEQSJ9.RKl9ndaXW_EdMW81YRBxuwQhcRaZwvlfSG1H0ms1ElySp-XGnunvdNuj6VLwB56_wjdijPUnqOrKAsYMxa9lGipUzeAIdbPFojO1Et1IxGQSyqxJTX9ngpSQi3btJM3eP1bQ3bHSLNKIdSpZrCdhhxP8-s6vHa__7RcIMxSBvYjX-tT97qQBubqqHdSouAJP1RZYn1_G8T6Pzs1hK2RXseMRYvBUAtXD24-Lk9IaRB9GUO5P9MCb_VldqUEPAWM5rVkjxrojAUB0OM1NGcge1jiQotHyeqBPnB5oHD_2LdygbsuO5i1t4Z5y4Q2JxyMzrR4nyh3lrSjhUf60cfFpEA" -SNCF_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDE2OTAsImlhdCI6MTY4Mzc5Njg5MCwianRpIjoiN2MzZTQ2YzUtYTliOC00ZTRmLWFmYjAtZjBlODU5Y2U3YzA1IiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJzbmNmX3VzZXIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJvcGZhYi1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwic2lkIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzbmNmX3VzZXIiLCJlbnRpdGllc0lkIjoiU05DRiJ9.LZzZGg8Gu73_8HKzAPZJdR1E_e_NPyt-Q_d0lV7YzL2zjO0_q5-F08QG8nZYBoIAK_2C10Ho7qABHNTBeIR0Oe9NQnvyRn85YGLlx1k495e9p2-ZGNAh-JBbZ20ohEoghEbRAmR304gr_fKqVBM5QoxZrYdApMRbMfGuR_vGlUaQwnuG_p5uHu0wU_3SFItOtg1cSEWgviKnEt5gNuQ3D8zWAN1YtYivpqraYwQRdbENjXtxJCWsIgK-nclAWilan3vEGHGLBhZ8FCYw0U670YnlXOoe2wnFXEwt20maJzidPXA7XhEjbmUo9J-yEgEnjWspvcQhNwgsisx8P2Jyqw" +ATM_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDEyMTksImlhdCI6MTY4Mzc5NjQxOSwianRpIjoiYTI4NzM0ZjYtZjVjOC00MTMwLThmYjctNTczZDc1YzM5ZDhjIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJkYV91c2VyIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BmYWItY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZ3JvdXBzIjoiUlRFO0FETUlOO1JlYWRPbmx5IiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGFfdXNlciIsImVudGl0aWVzSWQiOiJEQSJ9.RKl9ndaXW_EdMW81YRBxuwQhcRaZwvlfSG1H0ms1ElySp-XGnunvdNuj6VLwB56_wjdijPUnqOrKAsYMxa9lGipUzeAIdbPFojO1Et1IxGQSyqxJTX9ngpSQi3btJM3eP1bQ3bHSLNKIdSpZrCdhhxP8-s6vHa__7RcIMxSBvYjX-tT97qQBubqqHdSouAJP1RZYn1_G8T6Pzs1hK2RXseMRYvBUAtXD24-Lk9IaRB9GUO5P9MCb_VldqUEPAWM5rVkjxrojAUB0OM1NGcge1jiQotHyeqBPnB5oHD_2LdygbsuO5i1t4Z5y4Q2JxyMzrR4nyh3lrSjhUf60cfFpEA" +RAILWAY_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDE2OTAsImlhdCI6MTY4Mzc5Njg5MCwianRpIjoiN2MzZTQ2YzUtYTliOC00ZTRmLWFmYjAtZjBlODU5Y2U3YzA1IiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJzbmNmX3VzZXIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJvcGZhYi1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwic2lkIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzbmNmX3VzZXIiLCJlbnRpdGllc0lkIjoiU05DRiJ9.LZzZGg8Gu73_8HKzAPZJdR1E_e_NPyt-Q_d0lV7YzL2zjO0_q5-F08QG8nZYBoIAK_2C10Ho7qABHNTBeIR0Oe9NQnvyRn85YGLlx1k495e9p2-ZGNAh-JBbZ20ohEoghEbRAmR304gr_fKqVBM5QoxZrYdApMRbMfGuR_vGlUaQwnuG_p5uHu0wU_3SFItOtg1cSEWgviKnEt5gNuQ3D8zWAN1YtYivpqraYwQRdbENjXtxJCWsIgK-nclAWilan3vEGHGLBhZ8FCYw0U670YnlXOoe2wnFXEwt20maJzidPXA7XhEjbmUo9J-yEgEnjWspvcQhNwgsisx8P2Jyqw" def test_get_all_PowerGrid_events( @@ -82,7 +82,7 @@ def test_update_PowerGrid_event_if_exist( "use_case": "PowerGrid", "is_active": False, } - headers = {"Authorization": f"Bearer {SNCF_BEARER_TOKEN}"} + headers = {"Authorization": f"Bearer {RAILWAY_BEARER_TOKEN}"} # Create intial event response = client.post("/api/v1/events", headers=headers, json=event_data) diff --git a/backend/recommendation-service/report.xml b/backend/recommendation-service/report.xml index 25dbce05..913ee44b 100644 --- a/backend/recommendation-service/report.xml +++ b/backend/recommendation-service/report.xml @@ -92,7 +92,7 @@ app = <APIFlask 'recommendation-service'> ) E RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set. -../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") +../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") def app(): > app = create_app("test") @@ -186,7 +186,7 @@ app = <APIFlask 'recommendation-service'> ) E RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set. -../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") +../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") def app(): > app = create_app("test") @@ -280,7 +280,7 @@ app = <APIFlask 'recommendation-service'> ) E RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set. -../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") +../../cab_venv_312/lib/python3.12/site-packages/flask_sqlalchemy/extension.py:310: RuntimeError@pytest.fixture(scope="function") def app(): > app = create_app("test") diff --git a/backend/recommendation-service/resources/ATM/manager.py b/backend/recommendation-service/resources/ATM/manager.py new file mode 100644 index 00000000..6d814d6c --- /dev/null +++ b/backend/recommendation-service/resources/ATM/manager.py @@ -0,0 +1,25 @@ +# backend/recommendation-service/resources/RTE/manager.py + +from api.manager.base_manager import BaseRecommendationManager + +class ATMManager(BaseRecommendationManager): + def __init__(self): + super().__init__() + + def get_recommendation(self, request_data): + """ + Override to provide recommendations specific to the RTE use case. + + This method generates and returns recommendations tailored for RTE. + """ + action_dict = {} + + output_json = { + "title": "recommendation", + "description": "description", + "use_case": "ATM", + "agent_type": "agent_type", + "actions": [action_dict], + } + + return [output_json] \ No newline at end of file diff --git a/backend/recommendation-service/resources/Railway/manager.py b/backend/recommendation-service/resources/Railway/manager.py new file mode 100644 index 00000000..85b0a9b7 --- /dev/null +++ b/backend/recommendation-service/resources/Railway/manager.py @@ -0,0 +1,25 @@ +# backend/recommendation-service/resources/RTE/manager.py + +from api.manager.base_manager import BaseRecommendationManager + +class RailwayManager(BaseRecommendationManager): + def __init__(self): + super().__init__() + + def get_recommendation(self, request_data): + """ + Override to provide recommendations specific to the RTE use case. + + This method generates and returns recommendations tailored for RTE. + """ + action_dict = {} + + output_json = { + "title": "recommendation", + "description": "description", + "use_case": "Railway", + "agent_type": "agent_type", + "actions": [action_dict], + } + + return [output_json] \ No newline at end of file diff --git a/backend/recommendation-service/start_service.bash b/backend/recommendation-service/start_service.bash index 5c52bf44..29c02b73 100755 --- a/backend/recommendation-service/start_service.bash +++ b/backend/recommendation-service/start_service.bash @@ -5,6 +5,6 @@ export FLASK_ENV="development" export AUTH_DISABLED="True" # Create a default use case to replace user detection from JWT # This option is used only with AUTH_DISABLED="True" -export DEFAULT_USE_CASE="DA" +export DEFAULT_USE_CASE="ATM" # Start python app on default port (5000) python -m flask run --host=0.0.0.0 --reload \ No newline at end of file diff --git a/backend/recommendation-service/tests/test_views.py b/backend/recommendation-service/tests/test_views.py index 2eb5d581..01c0ba42 100644 --- a/backend/recommendation-service/tests/test_views.py +++ b/backend/recommendation-service/tests/test_views.py @@ -4,9 +4,9 @@ from settings import logger POWERGRID_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQzMzMyNjEsImlhdCI6MTY4MzcyODQ2MSwianRpIjoiNzE2YjAyZDQtMjliYS00MWJkLTg1YjItODAwNGNlYzFhMDMzIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJydGVfdXNlciIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiI4OTc2YjEyNS0zOWE4LTRiZGYtYjUyMy03ZTBkY2JjZGQzYjQiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI4OTc2YjEyNS0zOWE4LTRiZGYtYjUyMy03ZTBkY2JjZGQzYjQiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IkRpc3BhdGNoZXI7UmVhZE9ubHk7U3VwZXJ2aXNvciIsInByZWZlcnJlZF91c2VybmFtZSI6InJ0ZV91c2VyIiwiZ2l2ZW5fbmFtZSI6IiIsImVudGl0aWVzSWQiOiJSVEUiLCJmYW1pbHlfbmFtZSI6IiJ9.j-_kiNnn5jQtUBMZ-oaeWVVfZLM1dWLFjRYKfL9pkpklG-CAVl1CuUQE969YkaPZLD4TtXaiNy02LhkIWmSwQuks2lH5_dtUlCBlpIouD1liDxg1g_oXn_m3vKwzDQ03KeeVC03BCMJR8gDTED80U-vjXT33-BngpjMP2rFMZRiZIJO_BB4GnIf55dnazWj8jbp0MVZYS9fuNeuLLrRgMevGDn5s-AlznmWLce1K6P882StmhI0unRXVOTRae8xRvDkk0BJ545K9FtLoZtgOeyEw7JrvElkPMqWKOy3R5hmpJENZSV1zCMBdXusVi7GTyn4denCqA7yYerWi_yaITg" -DA_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDEyMTksImlhdCI6MTY4Mzc5NjQxOSwianRpIjoiYTI4NzM0ZjYtZjVjOC00MTMwLThmYjctNTczZDc1YzM5ZDhjIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJkYV91c2VyIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BmYWItY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZ3JvdXBzIjoiUlRFO0FETUlOO1JlYWRPbmx5IiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGFfdXNlciIsImVudGl0aWVzSWQiOiJEQSJ9.RKl9ndaXW_EdMW81YRBxuwQhcRaZwvlfSG1H0ms1ElySp-XGnunvdNuj6VLwB56_wjdijPUnqOrKAsYMxa9lGipUzeAIdbPFojO1Et1IxGQSyqxJTX9ngpSQi3btJM3eP1bQ3bHSLNKIdSpZrCdhhxP8-s6vHa__7RcIMxSBvYjX-tT97qQBubqqHdSouAJP1RZYn1_G8T6Pzs1hK2RXseMRYvBUAtXD24-Lk9IaRB9GUO5P9MCb_VldqUEPAWM5rVkjxrojAUB0OM1NGcge1jiQotHyeqBPnB5oHD_2LdygbsuO5i1t4Z5y4Q2JxyMzrR4nyh3lrSjhUf60cfFpEA" -SNCF_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDE2OTAsImlhdCI6MTY4Mzc5Njg5MCwianRpIjoiN2MzZTQ2YzUtYTliOC00ZTRmLWFmYjAtZjBlODU5Y2U3YzA1IiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJzbmNmX3VzZXIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJvcGZhYi1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwic2lkIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzbmNmX3VzZXIiLCJlbnRpdGllc0lkIjoiU05DRiJ9.LZzZGg8Gu73_8HKzAPZJdR1E_e_NPyt-Q_d0lV7YzL2zjO0_q5-F08QG8nZYBoIAK_2C10Ho7qABHNTBeIR0Oe9NQnvyRn85YGLlx1k495e9p2-ZGNAh-JBbZ20ohEoghEbRAmR304gr_fKqVBM5QoxZrYdApMRbMfGuR_vGlUaQwnuG_p5uHu0wU_3SFItOtg1cSEWgviKnEt5gNuQ3D8zWAN1YtYivpqraYwQRdbENjXtxJCWsIgK-nclAWilan3vEGHGLBhZ8FCYw0U670YnlXOoe2wnFXEwt20maJzidPXA7XhEjbmUo9J-yEgEnjWspvcQhNwgsisx8P2Jyqw" -ORANGE_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ3NjY4NTksImlhdCI6MTY4NDE2MjA1OSwianRpIjoiNDE4ZGVlMmItYWFjNi00NTJlLWE5MGYtMzIyNzhlMzRhMjJiIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJvcmFuZ2VfdXNlciIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiI1Mjk3ODA1ZC1mYzczLTRkOTQtOTdmYy0wYzVhNTJjNDE0NDAiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI1Mjk3ODA1ZC1mYzczLTRkOTQtOTdmYy0wYzVhNTJjNDE0NDAiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IlJURTtBRE1JTjtSZWFkT25seSIsInByZWZlcnJlZF91c2VybmFtZSI6Im9yYW5nZV91c2VyIiwiZW50aXRpZXNJZCI6Ik9SQU5HRSJ9.KriZd2FZT39Yi8LD2lnVGJad9nEZ00W7rQzcTaFBbGjh9AnfgC6bEwmH20u0d61ldHA0KcH9_NC8LolNhRDjGqA6QDy8l-nA67VUK-CT_9uj9bW9oo8LVHCKn-pcK2t6LlPFexQjSeb0-rK9_jA-O-7rAdXQVEhYc1shxJYTNhNqtwmEBE_QApmDTocoIBPA6jUzqGWh0wUMswmKVPAUU1yWDBUBVDsRCcKVRAO2p-P64CxyXC0R1RRSGZ1i4jexggjeIfyrARXkJrjcAMYAu4HBi8k91vDd6KBiJs45TVm9_5rrW25ZASWTPUO4fuuaz3k47DTUGQBNstO483ZrkA" +ATM_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDEyMTksImlhdCI6MTY4Mzc5NjQxOSwianRpIjoiYTI4NzM0ZjYtZjVjOC00MTMwLThmYjctNTczZDc1YzM5ZDhjIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJkYV91c2VyIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BmYWItY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImJkM2I4NjEwLTFkMDUtNGJkZC05MTZiLTYxZGNmZTZkNWU3MiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZ3JvdXBzIjoiUlRFO0FETUlOO1JlYWRPbmx5IiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGFfdXNlciIsImVudGl0aWVzSWQiOiJEQSJ9.RKl9ndaXW_EdMW81YRBxuwQhcRaZwvlfSG1H0ms1ElySp-XGnunvdNuj6VLwB56_wjdijPUnqOrKAsYMxa9lGipUzeAIdbPFojO1Et1IxGQSyqxJTX9ngpSQi3btJM3eP1bQ3bHSLNKIdSpZrCdhhxP8-s6vHa__7RcIMxSBvYjX-tT97qQBubqqHdSouAJP1RZYn1_G8T6Pzs1hK2RXseMRYvBUAtXD24-Lk9IaRB9GUO5P9MCb_VldqUEPAWM5rVkjxrojAUB0OM1NGcge1jiQotHyeqBPnB5oHD_2LdygbsuO5i1t4Z5y4Q2JxyMzrR4nyh3lrSjhUf60cfFpEA" +RAILWAY_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ0MDE2OTAsImlhdCI6MTY4Mzc5Njg5MCwianRpIjoiN2MzZTQ2YzUtYTliOC00ZTRmLWFmYjAtZjBlODU5Y2U3YzA1IiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJzbmNmX3VzZXIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJvcGZhYi1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwic2lkIjoiM2MwNzRmNTMtODMxNy00NTE5LTk1MGMtOWZlOTE1ZjVjY2QwIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzbmNmX3VzZXIiLCJlbnRpdGllc0lkIjoiU05DRiJ9.LZzZGg8Gu73_8HKzAPZJdR1E_e_NPyt-Q_d0lV7YzL2zjO0_q5-F08QG8nZYBoIAK_2C10Ho7qABHNTBeIR0Oe9NQnvyRn85YGLlx1k495e9p2-ZGNAh-JBbZ20ohEoghEbRAmR304gr_fKqVBM5QoxZrYdApMRbMfGuR_vGlUaQwnuG_p5uHu0wU_3SFItOtg1cSEWgviKnEt5gNuQ3D8zWAN1YtYivpqraYwQRdbENjXtxJCWsIgK-nclAWilan3vEGHGLBhZ8FCYw0U670YnlXOoe2wnFXEwt20maJzidPXA7XhEjbmUo9J-yEgEnjWspvcQhNwgsisx8P2Jyqw" +#ORANGE_BEARER_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2ODQ3NjY4NTksImlhdCI6MTY4NDE2MjA1OSwianRpIjoiNDE4ZGVlMmItYWFjNi00NTJlLWE5MGYtMzIyNzhlMzRhMjJiIiwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMjExLjk1OjMyMDAvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJvcmFuZ2VfdXNlciIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiI1Mjk3ODA1ZC1mYzczLTRkOTQtOTdmYy0wYzVhNTJjNDE0NDAiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI1Mjk3ODA1ZC1mYzczLTRkOTQtOTdmYy0wYzVhNTJjNDE0NDAiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IlJURTtBRE1JTjtSZWFkT25seSIsInByZWZlcnJlZF91c2VybmFtZSI6Im9yYW5nZV91c2VyIiwiZW50aXRpZXNJZCI6Ik9SQU5HRSJ9.KriZd2FZT39Yi8LD2lnVGJad9nEZ00W7rQzcTaFBbGjh9AnfgC6bEwmH20u0d61ldHA0KcH9_NC8LolNhRDjGqA6QDy8l-nA67VUK-CT_9uj9bW9oo8LVHCKn-pcK2t6LlPFexQjSeb0-rK9_jA-O-7rAdXQVEhYc1shxJYTNhNqtwmEBE_QApmDTocoIBPA6jUzqGWh0wUMswmKVPAUU1yWDBUBVDsRCcKVRAO2p-P64CxyXC0R1RRSGZ1i4jexggjeIfyrARXkJrjcAMYAu4HBi8k91vDd6KBiJs45TVm9_5rrW25ZASWTPUO4fuuaz3k47DTUGQBNstO483ZrkA" def test_PowerGrid_get_recommendation(client, create_usecases, PowerGrid_auth_mocker): diff --git a/config/dev/cab-keycloak/export/dev-users-0.json b/config/dev/cab-keycloak/export/dev-users-0.json index 282d1b15..ef13891e 100755 --- a/config/dev/cab-keycloak/export/dev-users-0.json +++ b/config/dev/cab-keycloak/export/dev-users-0.json @@ -9,7 +9,7 @@ "totp": false, "emailVerified": false, "attributes": { - "entitiesId": ["SNCF;ORANGE;DA;PowerGrid"], + "entitiesId": ["Railway;ATM;PowerGrid"], "groups": ["ADMIN"] }, "credentials": [ @@ -72,12 +72,12 @@ { "id": "555a469f-8d21-4308-8229-3532fe6e52f5", "createdTimestamp": 1557499482370, - "username": "da_user", + "username": "atm_user", "enabled": true, "totp": false, "emailVerified": false, "attributes": { - "entitiesId": ["DA"], + "entitiesId": ["ATM"], "groups": ["PowerGrid;ADMIN;ReadOnly"] }, "credentials": [ @@ -106,12 +106,12 @@ { "id": "34869ff3-7ee4-4d0c-9e33-c08f2319744b", "createdTimestamp": 1557499482370, - "username": "sncf_user", + "username": "railway_user", "enabled": true, "totp": false, "emailVerified": false, "attributes": { - "entitiesId": ["SNCF"], + "entitiesId": ["Railway"], "groups": [] }, "credentials": [ @@ -239,7 +239,7 @@ "firstName": "", "lastName": "", "attributes": { - "entitiesId": ["SNCF;ORANGE;DA;PowerGrid"], + "entitiesId": ["Railway;ATM;PowerGrid"], "groups": ["Dispatcher;ReadOnly;Supervisor"] }, "credentials": [ diff --git a/config/dev/cab-standalone/businessconfig-storage/cabProcess/1/template/template.handlebars b/config/dev/cab-standalone/businessconfig-storage/cabProcess/1/template/template.handlebars index 6a52f8de..691ddffb 100644 --- a/config/dev/cab-standalone/businessconfig-storage/cabProcess/1/template/template.handlebars +++ b/config/dev/cab-standalone/businessconfig-storage/cabProcess/1/template/template.handlebars @@ -1,5 +1,5 @@ -

You received the following a message from InteractiveAI bundle

+

You received the following a message from cab bundle

event_type {{card.data.metadata.event_type}}

diff --git a/config/dev/cab-standalone/businessconfig-storage/realtimescreens.json b/config/dev/cab-standalone/businessconfig-storage/realtimescreens.json index 329066b3..9252de74 100644 --- a/config/dev/cab-standalone/businessconfig-storage/realtimescreens.json +++ b/config/dev/cab-standalone/businessconfig-storage/realtimescreens.json @@ -6,9 +6,9 @@ { "entitiesGroups": [ { - "name": "DA", + "name": "ATM", "entities": [ - "DA" + "ATM" ], "groups": [ "Dispatcher", @@ -39,9 +39,9 @@ ] }, { - "name": "SNCF", + "name": "Railway", "entities": [ - "SNCF" + "Railway" ], "groups": [ "Dispatcher", diff --git a/config/dev/cab-standalone/docker-compose.yml b/config/dev/cab-standalone/docker-compose.yml index dc27d720..0f247617 100644 --- a/config/dev/cab-standalone/docker-compose.yml +++ b/config/dev/cab-standalone/docker-compose.yml @@ -136,9 +136,13 @@ services: dockerfile: Dockerfile args: VITE_POWERGRID_SIMU: ${VITE_POWERGRID_SIMU} + VITE_ATM_SIMU: ${VITE_ATM_SIMU} + VITE_RAILWAY_SIMU: ${VITE_RAILWAY_SIMU} restart: unless-stopped environment: - VITE_POWERGRID_SIMU=${VITE_POWERGRID_SIMU} + - VITE_ATM_SIMU=${VITE_ATM_SIMU} + - VITE_RAILWAY_SIMU=${VITE_RAILWAY_SIMU} volumes: - './ui-config:/usr/share/nginx/html/opfab' - './nginx-cors-permissive.conf:/etc/nginx/conf.d/default.conf' diff --git a/config/dev/cab-standalone/users-docker.yml b/config/dev/cab-standalone/users-docker.yml index 221fb1cb..77cbae76 100644 --- a/config/dev/cab-standalone/users-docker.yml +++ b/config/dev/cab-standalone/users-docker.yml @@ -10,22 +10,22 @@ operatorfabric.users.default: users: - login: admin groups: ["ADMIN"] - entities: ["SNCF","ORANGE", "DA", "PowerGrid"] + entities: ["Railway", "ATM", "PowerGrid"] - login: ilyes firstname : Ilyes lastname : KAANICH groups: ["Dispatcher","ReadOnly"] entities: ["IRT_MAIN"] - - login: sncf_user + - login: railway_user groups: ["Planner", "ReadOnly"] - entities: ["SNCF"] + entities: ["Railway"] - login: orange_user groups: [ "PowerGrid","ADMIN","ReadOnly","Dispatcher"] entities: [ "ORANGE" ] - - login: da_user + - login: atm_user groups: ["ReadOnly","Dispatcher"] - entities: ["DA"] - - login: PowerGrid_user + entities: ["ATM"] + - login: powergrid_user groups: [ "PowerGrid","ADMIN","ReadOnly","Dispatcher"] entities: [ "PowerGrid" ] groups: @@ -57,7 +57,7 @@ operatorfabric.users.default: description: ReadOnly Group realtime: false entities: - - id: SNCF + - id: Railway name: National society of French railroads description: National society of French railroads parents : ["IRT_MAIN"] @@ -65,9 +65,9 @@ operatorfabric.users.default: name: Orange description: Orange parents : ["IRT_MAIN"] - - id: DA - name: Dassault Aviation - description: Dassault Aviation + - id: ATM + name: ATM usecase + description: ATM usecase parents : ["IRT_MAIN"] - id: PowerGrid name: Electricity Transmission Network diff --git a/config/dev/cab-standalone/users-kubernetes.yml b/config/dev/cab-standalone/users-kubernetes.yml index 221fb1cb..d9bc0a03 100644 --- a/config/dev/cab-standalone/users-kubernetes.yml +++ b/config/dev/cab-standalone/users-kubernetes.yml @@ -10,21 +10,21 @@ operatorfabric.users.default: users: - login: admin groups: ["ADMIN"] - entities: ["SNCF","ORANGE", "DA", "PowerGrid"] + entities: ["Railway", "ATM", "PowerGrid"] - login: ilyes firstname : Ilyes lastname : KAANICH groups: ["Dispatcher","ReadOnly"] entities: ["IRT_MAIN"] - - login: sncf_user + - login: railway_user groups: ["Planner", "ReadOnly"] - entities: ["SNCF"] + entities: ["Railway"] - login: orange_user groups: [ "PowerGrid","ADMIN","ReadOnly","Dispatcher"] entities: [ "ORANGE" ] - - login: da_user + - login: atm_user groups: ["ReadOnly","Dispatcher"] - entities: ["DA"] + entities: ["ATM"] - login: PowerGrid_user groups: [ "PowerGrid","ADMIN","ReadOnly","Dispatcher"] entities: [ "PowerGrid" ] @@ -57,7 +57,7 @@ operatorfabric.users.default: description: ReadOnly Group realtime: false entities: - - id: SNCF + - id: Railway name: National society of French railroads description: National society of French railroads parents : ["IRT_MAIN"] @@ -65,9 +65,9 @@ operatorfabric.users.default: name: Orange description: Orange parents : ["IRT_MAIN"] - - id: DA - name: Dassault Aviation - description: Dassault Aviation + - id: ATM + name: ATM usecase + description: ATM usecase parents : ["IRT_MAIN"] - id: PowerGrid name: Electricity Transmission Network diff --git a/docs/Insomnium_collection.json b/docs/Insomnium_collection.json index ae85bf4e..36b2798b 100644 --- a/docs/Insomnium_collection.json +++ b/docs/Insomnium_collection.json @@ -1 +1 @@ -{"_type":"export","__export_format":4,"__export_date":"2023-11-10T16:02:07.150Z","__export_source":"insomnia.desktop.app:v0.2.3-a","resources":[{"_id":"req_f1766201d986470b93676b66c818a418","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631882957,"created":1699629195419,"url":"http://{{HOST}}{{PORT_UI}}/auth/token","name":"Login","description":"","method":"POST","body":{"mimeType":"application/x-www-form-urlencoded","params":[{"id":"pair_2855c3ce23844aa1ab2fa94c88a8c8fd","name":"username","value":"orange_user","description":""},{"id":"pair_0bd59d3bc11143c293c80d8747693efe","name":"password","value":"test","description":""},{"id":"pair_2933b6180b2f407491d29cd6c179a9e7","name":"grant_type","value":"password","description":""},{"id":"pair_4edd10be8904426e8871a95c86cd8a3c","name":"clientId","value":"opfab-client","description":""}]},"parameters":[],"headers":[{"name":"Content-Type","value":"application/x-www-form-urlencoded"}],"authentication":{},"metaSortKey":-1699629195551,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699629879951,"created":1699629195419,"name":"Utils","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629195419,"_type":"request_group"},{"_id":"wrk_c2b53722a4bc450389b09ded35e52437","parentId":null,"modified":1699628881490,"created":1699628828142,"name":"CAB","description":"","scope":"collection","_type":"workspace"},{"_id":"req_94f0ac6f29e247c49c61e9e157ce7081","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631900837,"created":1699629195451,"url":"http://{{HOST}}{{PORT_KEYCLOAK}}/auth/realms/dev/protocol/openid-connect/logout","name":"Logout","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2NzQxNDIwMTYsImlhdCI6MTY3MzUzNzIxNiwianRpIjoiYWE3YzdhMGQtOGY0OS00OGE4LTk0ZjgtMzUyNTliMGI0NDQwIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozMjAwL2F1dGgvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJhZG1pbiIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiIxNWZiYzliZC1iOWU2LTRkOTEtYmMzZC1jNTY1MjRlOWE1ZGIiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiIxNWZiYzliZC1iOWU2LTRkOTEtYmMzZC1jNTY1MjRlOWE1ZGIiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IkFETUlOIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJlbnRpdGllc0lkIjoiU05DRjtPUkFOR0U7REE7UlRFIn0.WJVkcqSLEBX-BYTJfLaDHbajRgjiLMctWvD5S2B0lh3wppo_0d7J-GuKVYKDEKMNGyNjusiFb-EXMsXjv8wMD110EgjG6E7VTwH_TLj1r3MGh5k3hgU2TQ2hWxp_IFzqDfkwExW604KNl4jXt4yCGMMXdrtcjRFbZKf_IETDGG41QkKsDTqcERgoLl2V4CEVArwFrn5dBDged14SEFSEDEAy_iHm6YM_BaC8nVLN6DAz9B7QI5wgE_GHT-02LwqHO5mQNyaFsy70YQn_tW9YOtRM2oHz50_GR1K4FJdTevjlozFvOrepnHEZ8eTa_LmfdfkZ1KjyFlB3vzqVD-MGrQ","prefix":""},"metaSortKey":-1699629195451,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_1ccce285e11c4307bb5d1f684c9f0ed9","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631947508,"created":1699629195444,"url":"http://{{HOST}}{{PORT_UI}}/auth/check_token","name":"Check token","description":"","method":"POST","body":{"mimeType":"application/x-www-form-urlencoded","params":[{"value":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","name":"token","disabled":false,"id":"pair_0f6b61629512400b998f93301b064158"}]},"parameters":[],"headers":[{"name":"Content-Type","value":"application/x-www-form-urlencoded"}],"authentication":{"type":"bearer","token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}"},"metaSortKey":-1699629195444,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_db0855e556d644409b654d06e126fdcc","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631953089,"created":1699629195436,"url":"http://{{HOST}}{{PORT_UI}}/users/users/{% response 'body', 'req_5392e5e82b2847679e4dfd684eec15f3', 'b64::JC5sb2dpbg==::46b', 'always', 60 %}/settings","name":"Settings","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}"},"metaSortKey":-1699629195436,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_c85d44c4565d426698fd8b19eebc7230","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631957971,"created":1699629195429,"url":"http://{{HOST}}{{PORT_UI}}/users/CurrentUserWithPerimeters","name":"Current user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629195429,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_5392e5e82b2847679e4dfd684eec15f3","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631962909,"created":1699629195420,"url":"http://{{HOST}}{{PORT_UI}}/users/users/synchronizeWithToken","name":"Get infos","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629195420,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_f755d08ad8bb476a96f06ddda6763a8b","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631979937,"created":1699628873415,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/contexts","name":"Add context","description":"","method":"POST","body":{"mimeType":"","text":"{\n \"data\": {},\n \"use_case\": \"PowerGrid\"\n}"},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873415,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_44078527f5e549d8bb8f3ba4b2315bfc","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630833213,"created":1699628873402,"name":"Context","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629175563.5,"_type":"request_group"},{"_id":"req_d8395b3c80784228a44b4eaa2c342c21","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631984385,"created":1699628873405,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/contexts","name":"Get all contexts","description":"","method":"GET","body":{},"parameters":[{"name":"date","value":"2023-01-26T10:54:49.036399","disabled":true}],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873405,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_498c909138534cc6873103032929d8bd","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631988352,"created":1699628873403,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/context/2022-12-01T17:10:27.326878","name":"Get context by date","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873403,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_92caf334ec474a429aedec14e0fba639","parentId":"fld_b7658eb7706249aa96921d2873e2e1e2","modified":1699631995503,"created":1699629116775,"url":"http://{{HOST}}{{PORT_UI}}/cab_event/api/v1/events","name":"Get events","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629116775,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_b7658eb7706249aa96921d2873e2e1e2","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630836837,"created":1699629116774,"name":"Event","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629165635.75,"_type":"request_group"},{"_id":"req_140d58bb16c24865a4a9d21374d7a528","parentId":"fld_b7658eb7706249aa96921d2873e2e1e2","modified":1699632002529,"created":1699629116775,"url":"http://{{HOST}}{{PORT_UI}}/cab_event/api/v1/events","name":"Add event","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"use_case\": \"SNCF\",\n \"criticality\": \"HIGH\",\n \"title\": \"Signal alarm\",\n \"description\": \"this is a description\",\n \"data\": {\n \"event_type\": \"VOYAGEUR\",\n \"id_train\": \"TGV 88212\",\n \"num_rame\": \"18\",\n \"tmp_rame\": \"27\",\n \"delay\": \"15\"\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629116775,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_8c4fe3767e2542d19840602a83ed15c0","parentId":"fld_a41a50c026154f0e8e1a39f5afcd86ba","modified":1699632007878,"created":1699629223919,"url":"http://{{HOST}}{{PORT_UI}}/api/v1/recommendation","name":"?","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"context\": {\n \"position_agents\": {\n \"0\": [\n 3,\n 2\n ],\n \"1\": [\n 3,\n 2\n ],\n \"2\": [\n 3,\n 2\n ]\n },\n \"direction_agents\": [\n 2,\n 0,\n 0\n ],\n \"list_of_target\": {\n \"0\": [\n [\n 297,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"1\": [\n [\n 297,\n 2\n ],\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"2\": [\n [\n 297,\n 2\n ],\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n }\n },\n \"event\": {\n \"malfunction_agent\": 0,\n \"malfunction_position\": [\n 9,\n 12\n ],\n \"malfunction_delay\": 15\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1699629223919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_a41a50c026154f0e8e1a39f5afcd86ba","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630859399,"created":1699629223917,"name":"Recommendations","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629160671.875,"_type":"request_group"},{"_id":"req_15232c12c4c546b0bad572dba6f6e819","parentId":"fld_a41a50c026154f0e8e1a39f5afcd86ba","modified":1699632013077,"created":1699629223917,"url":"http://{{HOST}}{{PORT_UI}}/cab_recommendation/api/v1/recommendation","name":"Get recommendation","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"context\": {\n \"direction_agents\": [\n 2,\n 2,\n 2\n ],\n \"list_of_target\": {\n \"0\": [\n [\n 8,\n 7\n ]\n ],\n \"1\": [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"2\": [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n },\n \"position_agents\": {\n \"0\": [\n 3,\n 2\n ],\n \"1\": [\n 3,\n 2\n ],\n \"2\": [\n 3,\n 2\n ]\n }\n },\n \"event\": {\n \"malfunction_agent\": 0,\n \"malfunction_position\": [\n 9,\n 12\n ],\n \"malfunction_delay\": 15\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629223918,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_6439cb0771bf4364ac36f792321018b1","parentId":"fld_240351437c924157ba46003b0348056f","modified":1699632031473,"created":1699629155712,"url":"http://{{HOST}}{{PORT_HISTORIC}}/api/v1/traces","name":"Traces","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"data\": {\n },\n \"step\": \"SOLUTION\",\n \"use_case\": \"PowerGrid\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1699629155712,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_240351437c924157ba46003b0348056f","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630827250,"created":1699629155708,"name":"Historic","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629155708,"_type":"request_group"},{"_id":"req_d8f8f42433794026940f480ed3e4e75a","parentId":"fld_240351437c924157ba46003b0348056f","modified":1699632041253,"created":1699629155711,"url":"http://{{HOST}}{{PORT_HISTORIC}}/api/v1/traces","name":"Traces","description":"","method":"GET","body":{},"parameters":[{"name":"date_start","value":"2022-11-21T16:33:51.304097","disabled":false},{"name":"date_end","value":"2003-12-22T16:33:51.304097","disabled":true},{"name":"use_case","value":"PowerGrid","disabled":false}],"headers":[],"authentication":{},"metaSortKey":-1699629155711,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_c3ff3e5d1aae4c89801b6862476bb759","parentId":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","modified":1699632055326,"created":1699628912588,"url":"http://{{HOST}}{{PORT_UI}}/cab_correlation/api/v1/correlation","name":"Get correlation","description":"","method":"GET","body":{},"parameters":[{"name":"size","value":"10","disabled":false}],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628912588,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630711269,"created":1699628912581,"name":"Correlation","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699628912581,"_type":"request_group"},{"_id":"req_fd40dca33df04250b95f3e219d4d20b8","parentId":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","modified":1699632067069,"created":1699628912585,"url":"http://{{HOST}}{{PORT_UI}}/cab_correlation/api/v1/correlation","name":"Add correlation","description":"","method":"POST","body":{"mimeType":"","text":"[\n {\n \"KPI\": {\n \"delay_avg\": 84,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 125\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"1\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 13,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 5\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"18\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 222,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 43\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"4\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 100,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 16\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"5\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 53,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 4\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"6\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 48,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 357\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"7\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 135,\n \"nb_err\": 32,\n \"nb_pl\": 0,\n \"nb_req\": 6848\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.004672897196261682,\n \"ratio_pl\": 0\n },\n \"id_application\": \"8\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 321,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 222\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"9\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 11,\n \"nb_err\": 0,\n \"nb_pl\": 4,\n \"nb_req\": 10060\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0.00039761431411530816\n },\n \"id_application\": \"10\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 102,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 368\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"11\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 3617,\n \"nb_err\": 2,\n \"nb_pl\": 2,\n \"nb_req\": 22\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.09090909090909091,\n \"ratio_pl\": 0.09090909090909091\n },\n \"id_application\": \"12\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 152,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 176\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"13\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 534,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 493\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"15\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 59,\n \"nb_err\": 17,\n \"nb_pl\": 0,\n \"nb_req\": 892\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.01905829596412556,\n \"ratio_pl\": 0\n },\n \"id_application\": \"16\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n }\n]"},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628912585,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"env_1f854ee2319941caab35437ef517b40d","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699628827139,"created":1699628827139,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1699628827139,"_type":"environment"},{"_id":"jar_8fb0ae0a1ce24e58a85967772246f550","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699631971675,"created":1699628828139,"name":"Default Jar","cookies":[{"key":"KEYCLOAK_LOCALE","expires":"1970-01-01T00:00:10.000Z","maxAge":0,"domain":"192.168.211.95","path":"/auth/realms/dev/","httpOnly":true,"extensions":["Version=1","Comment=Expiring cookie"],"hostOnly":true,"creation":"2023-11-10T15:19:11.345Z","lastAccessed":"2023-11-10T15:58:33.586Z","id":"5237502991902458"},{"key":"KC_RESTART","expires":"1970-01-01T00:00:10.000Z","maxAge":0,"domain":"192.168.211.95","path":"/auth/realms/dev/","httpOnly":true,"extensions":["Version=1"],"hostOnly":true,"creation":"2023-11-10T15:19:11.347Z","lastAccessed":"2023-11-10T15:58:33.586Z","id":"12121794443882594"},{"key":"JSESSIONID","value":"node0gga3gbd41e5bcl93qm3nytlp9.node0","domain":"192.168.211.95","path":"/","hostOnly":true,"creation":"2023-11-10T15:44:43.873Z","lastAccessed":"2023-11-10T15:59:31.675Z","id":"2238541395974034"},{"key":"JSESSIONID","value":"node01e87f4kvn5yc01exr5bck1pt0g5.44cbfc241228","domain":"192.168.211.95","path":"/auth","hostOnly":true,"creation":"2023-11-10T15:46:44.829Z","lastAccessed":"2023-11-10T15:46:44.829Z","id":"7973756689579978"}],"_type":"cookie_jar"},{"_id":"env_8e3eae4c71054c779b2667d2d7ba5e95","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631855797,"created":1699628943335,"name":"Preprod","data":{"HOST":"192.168.208.57","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200","PORT_KEYCLOAK":":89"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI","PORT_KEYCLOAK"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1699628943335,"_type":"environment"},{"_id":"env_d242e764681f4716bfbb81fa862819fb","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631713992,"created":1699629028794,"name":"Dev","data":{"HOST":"192.168.211.95","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI"]},"color":"#ffff00","isPrivate":false,"metaSortKey":1699629028794,"_type":"environment"},{"_id":"env_34d7c2b61b1a440485cda94f6fe6e28e","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631861452,"created":1699629171129,"name":"Local","data":{"HOST":"localhost","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2002","PORT_UI":":3200","PORT_KEYCLOAK":":89"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI","PORT_KEYCLOAK"]},"color":null,"isPrivate":false,"metaSortKey":1699629171129,"_type":"environment"},{"_id":"env_3db2d7852ad641d888ccc3ebe0d6a2d2","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631754549,"created":1699631440753,"name":"Simu","data":{"HOST":"192.168.209.166","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI"]},"color":"#ff8000","isPrivate":false,"metaSortKey":1699629028793,"_type":"environment"}]} \ No newline at end of file +{"_type":"export","__export_format":4,"__export_date":"2023-11-10T16:02:07.150Z","__export_source":"insomnia.desktop.app:v0.2.3-a","resources":[{"_id":"req_f1766201d986470b93676b66c818a418","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631882957,"created":1699629195419,"url":"http://{{HOST}}{{PORT_UI}}/auth/token","name":"Login","description":"","method":"POST","body":{"mimeType":"application/x-www-form-urlencoded","params":[{"id":"pair_2855c3ce23844aa1ab2fa94c88a8c8fd","name":"username","value":"orange_user","description":""},{"id":"pair_0bd59d3bc11143c293c80d8747693efe","name":"password","value":"test","description":""},{"id":"pair_2933b6180b2f407491d29cd6c179a9e7","name":"grant_type","value":"password","description":""},{"id":"pair_4edd10be8904426e8871a95c86cd8a3c","name":"clientId","value":"opfab-client","description":""}]},"parameters":[],"headers":[{"name":"Content-Type","value":"application/x-www-form-urlencoded"}],"authentication":{},"metaSortKey":-1699629195551,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699629879951,"created":1699629195419,"name":"Utils","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629195419,"_type":"request_group"},{"_id":"wrk_c2b53722a4bc450389b09ded35e52437","parentId":null,"modified":1699628881490,"created":1699628828142,"name":"CAB","description":"","scope":"collection","_type":"workspace"},{"_id":"req_94f0ac6f29e247c49c61e9e157ce7081","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631900837,"created":1699629195451,"url":"http://{{HOST}}{{PORT_KEYCLOAK}}/auth/realms/dev/protocol/openid-connect/logout","name":"Logout","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSbXFOVTNLN0x4ck5SRmtIVTJxcTZZcTEya1RDaXNtRkw5U2NwbkNPeDBjIn0.eyJleHAiOjE2NzQxNDIwMTYsImlhdCI6MTY3MzUzNzIxNiwianRpIjoiYWE3YzdhMGQtOGY0OS00OGE4LTk0ZjgtMzUyNTliMGI0NDQwIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozMjAwL2F1dGgvcmVhbG1zL2RldiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJhZG1pbiIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9wZmFiLWNsaWVudCIsInNlc3Npb25fc3RhdGUiOiIxNWZiYzliZC1iOWU2LTRkOTEtYmMzZC1jNTY1MjRlOWE1ZGIiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiIxNWZiYzliZC1iOWU2LTRkOTEtYmMzZC1jNTY1MjRlOWE1ZGIiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImdyb3VwcyI6IkFETUlOIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJlbnRpdGllc0lkIjoiU05DRjtPUkFOR0U7REE7UlRFIn0.WJVkcqSLEBX-BYTJfLaDHbajRgjiLMctWvD5S2B0lh3wppo_0d7J-GuKVYKDEKMNGyNjusiFb-EXMsXjv8wMD110EgjG6E7VTwH_TLj1r3MGh5k3hgU2TQ2hWxp_IFzqDfkwExW604KNl4jXt4yCGMMXdrtcjRFbZKf_IETDGG41QkKsDTqcERgoLl2V4CEVArwFrn5dBDged14SEFSEDEAy_iHm6YM_BaC8nVLN6DAz9B7QI5wgE_GHT-02LwqHO5mQNyaFsy70YQn_tW9YOtRM2oHz50_GR1K4FJdTevjlozFvOrepnHEZ8eTa_LmfdfkZ1KjyFlB3vzqVD-MGrQ","prefix":""},"metaSortKey":-1699629195451,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_1ccce285e11c4307bb5d1f684c9f0ed9","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631947508,"created":1699629195444,"url":"http://{{HOST}}{{PORT_UI}}/auth/check_token","name":"Check token","description":"","method":"POST","body":{"mimeType":"application/x-www-form-urlencoded","params":[{"value":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","name":"token","disabled":false,"id":"pair_0f6b61629512400b998f93301b064158"}]},"parameters":[],"headers":[{"name":"Content-Type","value":"application/x-www-form-urlencoded"}],"authentication":{"type":"bearer","token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}"},"metaSortKey":-1699629195444,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_db0855e556d644409b654d06e126fdcc","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631953089,"created":1699629195436,"url":"http://{{HOST}}{{PORT_UI}}/users/users/{% response 'body', 'req_5392e5e82b2847679e4dfd684eec15f3', 'b64::JC5sb2dpbg==::46b', 'always', 60 %}/settings","name":"Settings","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}"},"metaSortKey":-1699629195436,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_c85d44c4565d426698fd8b19eebc7230","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631957971,"created":1699629195429,"url":"http://{{HOST}}{{PORT_UI}}/users/CurrentUserWithPerimeters","name":"Current user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629195429,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_5392e5e82b2847679e4dfd684eec15f3","parentId":"fld_d5132ec81ddc4a099a2c04f2a0808bfd","modified":1699631962909,"created":1699629195420,"url":"http://{{HOST}}{{PORT_UI}}/users/users/synchronizeWithToken","name":"Get infos","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629195420,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_f755d08ad8bb476a96f06ddda6763a8b","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631979937,"created":1699628873415,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/contexts","name":"Add context","description":"","method":"POST","body":{"mimeType":"","text":"{\n \"data\": {},\n \"use_case\": \"PowerGrid\"\n}"},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873415,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_44078527f5e549d8bb8f3ba4b2315bfc","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630833213,"created":1699628873402,"name":"Context","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629175563.5,"_type":"request_group"},{"_id":"req_d8395b3c80784228a44b4eaa2c342c21","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631984385,"created":1699628873405,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/contexts","name":"Get all contexts","description":"","method":"GET","body":{},"parameters":[{"name":"date","value":"2023-01-26T10:54:49.036399","disabled":true}],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873405,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_498c909138534cc6873103032929d8bd","parentId":"fld_44078527f5e549d8bb8f3ba4b2315bfc","modified":1699631988352,"created":1699628873403,"url":"http://{{HOST}}{{PORT_UI}}/cabcontext/api/v1/context/2022-12-01T17:10:27.326878","name":"Get context by date","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628873403,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_92caf334ec474a429aedec14e0fba639","parentId":"fld_b7658eb7706249aa96921d2873e2e1e2","modified":1699631995503,"created":1699629116775,"url":"http://{{HOST}}{{PORT_UI}}/cab_event/api/v1/events","name":"Get events","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629116775,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_b7658eb7706249aa96921d2873e2e1e2","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630836837,"created":1699629116774,"name":"Event","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629165635.75,"_type":"request_group"},{"_id":"req_140d58bb16c24865a4a9d21374d7a528","parentId":"fld_b7658eb7706249aa96921d2873e2e1e2","modified":1699632002529,"created":1699629116775,"url":"http://{{HOST}}{{PORT_UI}}/cab_event/api/v1/events","name":"Add event","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"use_case\": \"Railway\",\n \"criticality\": \"HIGH\",\n \"title\": \"Signal alarm\",\n \"description\": \"this is a description\",\n \"data\": {\n \"event_type\": \"VOYAGEUR\",\n \"id_train\": \"TGV 88212\",\n \"num_rame\": \"18\",\n \"tmp_rame\": \"27\",\n \"delay\": \"15\"\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629116775,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_8c4fe3767e2542d19840602a83ed15c0","parentId":"fld_a41a50c026154f0e8e1a39f5afcd86ba","modified":1699632007878,"created":1699629223919,"url":"http://{{HOST}}{{PORT_UI}}/api/v1/recommendation","name":"?","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"context\": {\n \"position_agents\": {\n \"0\": [\n 3,\n 2\n ],\n \"1\": [\n 3,\n 2\n ],\n \"2\": [\n 3,\n 2\n ]\n },\n \"direction_agents\": [\n 2,\n 0,\n 0\n ],\n \"list_of_target\": {\n \"0\": [\n [\n 297,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"1\": [\n [\n 297,\n 2\n ],\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"2\": [\n [\n 297,\n 2\n ],\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n }\n },\n \"event\": {\n \"malfunction_agent\": 0,\n \"malfunction_position\": [\n 9,\n 12\n ],\n \"malfunction_delay\": 15\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1699629223919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_a41a50c026154f0e8e1a39f5afcd86ba","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630859399,"created":1699629223917,"name":"Recommendations","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629160671.875,"_type":"request_group"},{"_id":"req_15232c12c4c546b0bad572dba6f6e819","parentId":"fld_a41a50c026154f0e8e1a39f5afcd86ba","modified":1699632013077,"created":1699629223917,"url":"http://{{HOST}}{{PORT_UI}}/cab_recommendation/api/v1/recommendation","name":"Get recommendation","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"context\": {\n \"direction_agents\": [\n 2,\n 2,\n 2\n ],\n \"list_of_target\": {\n \"0\": [\n [\n 8,\n 7\n ]\n ],\n \"1\": [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n \"2\": [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n },\n \"position_agents\": {\n \"0\": [\n 3,\n 2\n ],\n \"1\": [\n 3,\n 2\n ],\n \"2\": [\n 3,\n 2\n ]\n }\n },\n \"event\": {\n \"malfunction_agent\": 0,\n \"malfunction_position\": [\n 9,\n 12\n ],\n \"malfunction_delay\": 15\n }\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699629223918,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_6439cb0771bf4364ac36f792321018b1","parentId":"fld_240351437c924157ba46003b0348056f","modified":1699632031473,"created":1699629155712,"url":"http://{{HOST}}{{PORT_HISTORIC}}/api/v1/traces","name":"Traces","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"data\": {\n },\n \"step\": \"SOLUTION\",\n \"use_case\": \"PowerGrid\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1699629155712,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_240351437c924157ba46003b0348056f","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630827250,"created":1699629155708,"name":"Historic","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699629155708,"_type":"request_group"},{"_id":"req_d8f8f42433794026940f480ed3e4e75a","parentId":"fld_240351437c924157ba46003b0348056f","modified":1699632041253,"created":1699629155711,"url":"http://{{HOST}}{{PORT_HISTORIC}}/api/v1/traces","name":"Traces","description":"","method":"GET","body":{},"parameters":[{"name":"date_start","value":"2022-11-21T16:33:51.304097","disabled":false},{"name":"date_end","value":"2003-12-22T16:33:51.304097","disabled":true},{"name":"use_case","value":"PowerGrid","disabled":false}],"headers":[],"authentication":{},"metaSortKey":-1699629155711,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"req_c3ff3e5d1aae4c89801b6862476bb759","parentId":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","modified":1699632055326,"created":1699628912588,"url":"http://{{HOST}}{{PORT_UI}}/cab_correlation/api/v1/correlation","name":"Get correlation","description":"","method":"GET","body":{},"parameters":[{"name":"size","value":"10","disabled":false}],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628912588,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699630711269,"created":1699628912581,"name":"Correlation","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1699628912581,"_type":"request_group"},{"_id":"req_fd40dca33df04250b95f3e219d4d20b8","parentId":"fld_c74eb70eccd14ddd9fa87f8f98cb6f28","modified":1699632067069,"created":1699628912585,"url":"http://{{HOST}}{{PORT_UI}}/cab_correlation/api/v1/correlation","name":"Add correlation","description":"","method":"POST","body":{"mimeType":"","text":"[\n {\n \"KPI\": {\n \"delay_avg\": 84,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 125\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"1\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 13,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 5\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"18\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 222,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 43\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"4\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 100,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 16\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"5\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 53,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 4\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"6\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 48,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 357\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"7\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 135,\n \"nb_err\": 32,\n \"nb_pl\": 0,\n \"nb_req\": 6848\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.004672897196261682,\n \"ratio_pl\": 0\n },\n \"id_application\": \"8\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 321,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 222\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"9\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 11,\n \"nb_err\": 0,\n \"nb_pl\": 4,\n \"nb_req\": 10060\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0.00039761431411530816\n },\n \"id_application\": \"10\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 102,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 368\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"11\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 3617,\n \"nb_err\": 2,\n \"nb_pl\": 2,\n \"nb_req\": 22\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.09090909090909091,\n \"ratio_pl\": 0.09090909090909091\n },\n \"id_application\": \"12\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 152,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 176\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"13\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 534,\n \"nb_err\": 0,\n \"nb_pl\": 0,\n \"nb_req\": 493\n },\n \"KPI_composite\": {\n \"ratio_err\": 0,\n \"ratio_pl\": 0\n },\n \"id_application\": \"15\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n },\n {\n \"KPI\": {\n \"delay_avg\": 59,\n \"nb_err\": 17,\n \"nb_pl\": 0,\n \"nb_req\": 892\n },\n \"KPI_composite\": {\n \"ratio_err\": 0.01905829596412556,\n \"ratio_pl\": 0\n },\n \"id_application\": \"16\",\n \"timestamp\": \"2022-06-19T20:40:00.000000\"\n }\n]"},"parameters":[],"headers":[],"authentication":{"type":"bearer","disabled":false,"token":"{% response 'body', 'req_f1766201d986470b93676b66c818a418', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 6048 %}","prefix":""},"metaSortKey":-1699628912585,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","segmentParams":[],"_type":"request"},{"_id":"env_1f854ee2319941caab35437ef517b40d","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699628827139,"created":1699628827139,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1699628827139,"_type":"environment"},{"_id":"jar_8fb0ae0a1ce24e58a85967772246f550","parentId":"wrk_c2b53722a4bc450389b09ded35e52437","modified":1699631971675,"created":1699628828139,"name":"Default Jar","cookies":[{"key":"KEYCLOAK_LOCALE","expires":"1970-01-01T00:00:10.000Z","maxAge":0,"domain":"192.168.211.95","path":"/auth/realms/dev/","httpOnly":true,"extensions":["Version=1","Comment=Expiring cookie"],"hostOnly":true,"creation":"2023-11-10T15:19:11.345Z","lastAccessed":"2023-11-10T15:58:33.586Z","id":"5237502991902458"},{"key":"KC_RESTART","expires":"1970-01-01T00:00:10.000Z","maxAge":0,"domain":"192.168.211.95","path":"/auth/realms/dev/","httpOnly":true,"extensions":["Version=1"],"hostOnly":true,"creation":"2023-11-10T15:19:11.347Z","lastAccessed":"2023-11-10T15:58:33.586Z","id":"12121794443882594"},{"key":"JSESSIONID","value":"node0gga3gbd41e5bcl93qm3nytlp9.node0","domain":"192.168.211.95","path":"/","hostOnly":true,"creation":"2023-11-10T15:44:43.873Z","lastAccessed":"2023-11-10T15:59:31.675Z","id":"2238541395974034"},{"key":"JSESSIONID","value":"node01e87f4kvn5yc01exr5bck1pt0g5.44cbfc241228","domain":"192.168.211.95","path":"/auth","hostOnly":true,"creation":"2023-11-10T15:46:44.829Z","lastAccessed":"2023-11-10T15:46:44.829Z","id":"7973756689579978"}],"_type":"cookie_jar"},{"_id":"env_8e3eae4c71054c779b2667d2d7ba5e95","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631855797,"created":1699628943335,"name":"Preprod","data":{"HOST":"192.168.208.57","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200","PORT_KEYCLOAK":":89"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI","PORT_KEYCLOAK"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1699628943335,"_type":"environment"},{"_id":"env_d242e764681f4716bfbb81fa862819fb","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631713992,"created":1699629028794,"name":"Dev","data":{"HOST":"192.168.211.95","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI"]},"color":"#ffff00","isPrivate":false,"metaSortKey":1699629028794,"_type":"environment"},{"_id":"env_34d7c2b61b1a440485cda94f6fe6e28e","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631861452,"created":1699629171129,"name":"Local","data":{"HOST":"localhost","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2002","PORT_UI":":3200","PORT_KEYCLOAK":":89"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI","PORT_KEYCLOAK"]},"color":null,"isPrivate":false,"metaSortKey":1699629171129,"_type":"environment"},{"_id":"env_3db2d7852ad641d888ccc3ebe0d6a2d2","parentId":"env_1f854ee2319941caab35437ef517b40d","modified":1699631754549,"created":1699631440753,"name":"Simu","data":{"HOST":"192.168.209.166","PORT_EVENT":":5000","PORT_HISTORIC":":5200","PORT_CONTEXT":":5100","PORT_USERS":":2103","PORT_UI":":3200"},"dataPropertyOrder":{"&":["HOST","PORT_EVENT","PORT_HISTORIC","PORT_CONTEXT","PORT_USERS","PORT_UI"]},"color":"#ff8000","isPrivate":false,"metaSortKey":1699629028793,"_type":"environment"}]} \ No newline at end of file diff --git a/docs/developer-guide.md b/docs/developer-guide.md index 2af3b382..21c670cd 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -65,7 +65,7 @@ pip install -r requirements.txt FLASK_APP="app:create_app('test')" FLASK_ENV="development" AUTH_DISABLED="True" - DEFAULT_USE_CASE=YOUR_USE_CASE ("SNCF", "PowerGrid", "DA") + DEFAULT_USE_CASE=YOUR_USE_CASE ("Railway", "PowerGrid", "ATM") then start service using command: ```sh python -m flask run --host=0.0.0.0 --reload diff --git a/docs/postman_collections/Context-service.postman_collection.json b/docs/postman_collections/Context-service.postman_collection.json index 197970bb..3b655294 100644 --- a/docs/postman_collections/Context-service.postman_collection.json +++ b/docs/postman_collections/Context-service.postman_collection.json @@ -147,7 +147,7 @@ } ], "cookie": [], - "body": "[\n {\n \"data\": {},\n \"date\": \"2023-01-26T10:54:49.036399\",\n \"id_context\": \"75385c73-0dbf-46e3-b22b-21808eb1e327\",\n \"use_case\": \"DA/FW\"\n }\n]" + "body": "[\n {\n \"data\": {},\n \"date\": \"2023-01-26T10:54:49.036399\",\n \"id_context\": \"75385c73-0dbf-46e3-b22b-21808eb1e327\",\n \"use_case\": \"ATM/FW\"\n }\n]" }, { "name": "Get all contexts", @@ -480,7 +480,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"data\": {},\n \"use_case\": \"DA/FW\"\n}", + "raw": "{\n \"data\": {},\n \"use_case\": \"ATM/FW\"\n}", "options": { "raw": { "language": "json" @@ -543,7 +543,7 @@ } ], "cookie": [], - "body": "{\n \"data\": {},\n \"date\": \"2023-01-26T10:54:49.036399\",\n \"id_context\": \"75385c73-0dbf-46e3-b22b-21808eb1e327\",\n \"use_case\": \"DA/FW\"\n}" + "body": "{\n \"data\": {},\n \"date\": \"2023-01-26T10:54:49.036399\",\n \"id_context\": \"75385c73-0dbf-46e3-b22b-21808eb1e327\",\n \"use_case\": \"ATM/FW\"\n}" } ] } diff --git a/docs/postman_collections/Event-service.postman_collection.json b/docs/postman_collections/Event-service.postman_collection.json index 88055e5e..d232abb0 100644 --- a/docs/postman_collections/Event-service.postman_collection.json +++ b/docs/postman_collections/Event-service.postman_collection.json @@ -77,7 +77,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"use_case\": \"SNCF\",\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Signal alarm\",\r\n \"description\": \"this is a description\",\r\n \"data\": {\r\n \"event_type\": \"VOYAGEUR\",\r\n \"id_train\": \"TGV 88210\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": \"15\",\r\n \"agent_id\": \"TGV 88210\"\r\n }\r\n}", + "raw": "{\r\n \"use_case\": \"Railway\",\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Signal alarm\",\r\n \"description\": \"this is a description\",\r\n \"data\": {\r\n \"event_type\": \"VOYAGEUR\",\r\n \"id_train\": \"TGV 88210\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": \"15\",\r\n \"agent_id\": \"TGV 88210\"\r\n }\r\n}", "options": { "raw": { "language": "json" @@ -188,13 +188,13 @@ "body": null }, { - "name": "event SNCF", + "name": "event Railway", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"SNCF\",\r\n \"data\": {\r\n \"event_type\" : \"VOYAGEUR\",\r\n \"id_train\" : \"57000\",\r\n \"num_name\" : \"abc\",\r\n \"tmp_name\": \"def\",\r\n \"delay\": 17.3\r\n }\r\n}", + "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"Railway\",\r\n \"data\": {\r\n \"event_type\" : \"VOYAGEUR\",\r\n \"id_train\" : \"57000\",\r\n \"num_name\" : \"abc\",\r\n \"tmp_name\": \"def\",\r\n \"delay\": 17.3\r\n }\r\n}", "options": { "raw": { "language": "json" @@ -257,7 +257,7 @@ } ], "cookie": [], - "body": "{\n \"criticality\": \"MEDIUM\",\n \"data\": {\n \"delay\": 17.3,\n \"event_type\": \"VOYAGEUR\",\n \"id_train\": \"57000\",\n \"num_name\": \"abc\",\n \"tmp_name\": \"def\"\n },\n \"date\": \"2023-01-30T15:21:04.118300\",\n \"description\": \"Soyez vigilant sur la zone Est\",\n \"id_event\": \"91b2cf99-9325-4776-b323-e95e23c7dbb8\",\n \"is_active\": null,\n \"use_case\": \"SNCF\"\n}" + "body": "{\n \"criticality\": \"MEDIUM\",\n \"data\": {\n \"delay\": 17.3,\n \"event_type\": \"VOYAGEUR\",\n \"id_train\": \"57000\",\n \"num_name\": \"abc\",\n \"tmp_name\": \"def\"\n },\n \"date\": \"2023-01-30T15:21:04.118300\",\n \"description\": \"Soyez vigilant sur la zone Est\",\n \"id_event\": \"91b2cf99-9325-4776-b323-e95e23c7dbb8\",\n \"is_active\": null,\n \"use_case\": \"Railway\"\n}" }, { "name": "event", @@ -266,7 +266,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"SNCF\",\r\n \"data\": {\r\n \"event_type\" : \"VOYAGEUR\",\r\n \"id_train\" : \"57000\",\r\n \"num_name\" : \"abc\",\r\n \"tmp_name\": \"def\",\r\n \"delay\": 17.3\r\n }\r\n}", + "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"Railway\",\r\n \"data\": {\r\n \"event_type\" : \"VOYAGEUR\",\r\n \"id_train\" : \"57000\",\r\n \"num_name\" : \"abc\",\r\n \"tmp_name\": \"def\",\r\n \"delay\": 17.3\r\n }\r\n}", "options": { "raw": { "language": "json" @@ -299,7 +299,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"DA\",\r\n \"data\": {\r\n \"event_type\": \"KPI\",\r\n \"flux\": 456,\r\n \"line\": \"123\",\r\n \"zone\": \"Est\"\r\n }\r\n}\r\n\r\n", + "raw": "{\r\n \"criticality\": \"MEDIUM\",\r\n \"title\": \"Excé VOYAGEUR\",\r\n \"description\": \"Soyez vigilant sur la ligne TGV\",\r\n \"use_case\": \"ATM\",\r\n \"data\": {\r\n \"event_type\": \"KPI\",\r\n \"flux\": 456,\r\n \"line\": \"123\",\r\n \"zone\": \"Est\"\r\n }\r\n}\r\n\r\n", "options": { "raw": { "language": "json" @@ -326,13 +326,13 @@ "body": null }, { - "name": "event SNCF", + "name": "event Railway", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"use_case\": \"SNCF\",\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Signal alarm\",\r\n \"description\": \"this is a description\",\r\n \"data\": {\r\n \"event_type\": \"VOYAGEUR\",\r\n \"id_train\": \"TGV 88212\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": \"15\"\r\n }\r\n}", + "raw": "{\r\n \"use_case\": \"Railway\",\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Signal alarm\",\r\n \"description\": \"this is a description\",\r\n \"data\": {\r\n \"event_type\": \"VOYAGEUR\",\r\n \"id_train\": \"TGV 88212\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": \"15\"\r\n }\r\n}", "options": { "raw": { "language": "json" @@ -398,13 +398,13 @@ "body": "{\n \"detail\": {},\n \"message\": \"Unauthorized\"\n}" }, { - "name": "DA event", + "name": "ATM event", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"90 PRESS: CABIN ALT TOO HI\",\r\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\r\n \"data\": {\r\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\",\r\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\"\r\n },\r\n \"use_case\": \"DA\"\r\n}", + "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"90 PRESS: CABIN ALT TOO HI\",\r\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\r\n \"data\": {\r\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\",\r\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\"\r\n },\r\n \"use_case\": \"ATM\"\r\n}", "options": { "raw": { "language": "json" @@ -467,16 +467,16 @@ } ], "cookie": [], - "body": "{\n \"criticality\": \"HIGH\",\n \"data\": {\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\",\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\"\n },\n \"date\": \"2023-04-04T13:11:52.224848\",\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\n \"id_event\": \"11302c21-2504-4ad1-9e5d-22c0affb5f2e\",\n \"use_case\": \"DA\"\n}" + "body": "{\n \"criticality\": \"HIGH\",\n \"data\": {\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\",\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\"\n },\n \"date\": \"2023-04-04T13:11:52.224848\",\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\n \"id_event\": \"11302c21-2504-4ad1-9e5d-22c0affb5f2e\",\n \"use_case\": \"ATM\"\n}" }, { - "name": "event SNCF", + "name": "event Railway", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Malaise voyageur - TGV 8404\",\r\n \"description\": \"0 is having PASSENGER malfunction\",\r\n \"data\": {\r\n \"event_type\": \"PASSENGER\",\r\n \"id_train\": \"8404\",\r\n \"agent_id\": \"0\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": 382\r\n },\r\n \"date\": \"2023-04-11T07:00:10.000000\",\r\n \"agent_position\": [\r\n 294,\r\n 2\r\n ],\r\n \"malfunction_stop_position\": [\r\n 94,\r\n 2\r\n ],\r\n \"use_case\": \"SNCF\"\r\n}", + "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"Malaise voyageur - TGV 8404\",\r\n \"description\": \"0 is having PASSENGER malfunction\",\r\n \"data\": {\r\n \"event_type\": \"PASSENGER\",\r\n \"id_train\": \"8404\",\r\n \"agent_id\": \"0\",\r\n \"num_rame\": \"18\",\r\n \"tmp_rame\": \"27\",\r\n \"delay\": 382\r\n },\r\n \"date\": \"2023-04-11T07:00:10.000000\",\r\n \"agent_position\": [\r\n 294,\r\n 2\r\n ],\r\n \"malfunction_stop_position\": [\r\n 94,\r\n 2\r\n ],\r\n \"use_case\": \"Railway\"\r\n}", "options": { "raw": { "language": "json" @@ -503,13 +503,13 @@ "body": null }, { - "name": "event DA", + "name": "event ATM", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"90 PRESS: CABIN ALT TOO HI\",\r\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\r\n \"data\": {\r\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\",\r\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\"\r\n },\r\n \"use_case\": \"DA\"\r\n}", + "raw": "{\r\n \"criticality\": \"HIGH\",\r\n \"title\": \"90 PRESS: CABIN ALT TOO HI\",\r\n \"description\": \"Cabin altitude exceeding: 8,300 ft, OR 14,200 ft when high airfield operation is active.\",\r\n \"data\": {\r\n \"system\": \"AIR CONDITIONING AND PRESSURIZATION\",\r\n \"event_type\": \"90 PRESS: CABIN ALT TOO HI\"\r\n },\r\n \"use_case\": \"ATM\"\r\n}", "options": { "raw": { "language": "json" @@ -744,7 +744,7 @@ "oauth2": [ { "key": "username", - "value": "sncf_user", + "value": "railway_user", "type": "string" }, { @@ -1172,7 +1172,7 @@ "oauth2": [ { "key": "username", - "value": "sncf_user", + "value": "railway_user", "type": "string" }, { @@ -1254,7 +1254,7 @@ "oauth2": [ { "key": "username", - "value": "sncf_user", + "value": "railway_user", "type": "string" }, { diff --git a/docs/postman_collections/OF.postman_collection.json b/docs/postman_collections/OF.postman_collection.json index 14bb55e1..7ee1f9a5 100644 --- a/docs/postman_collections/OF.postman_collection.json +++ b/docs/postman_collections/OF.postman_collection.json @@ -338,7 +338,7 @@ } ], "cookie": [], - "body": "{\n \"userData\": {\n \"login\": \"admin\",\n \"firstName\": null,\n \"lastName\": null,\n \"entities\": [\n \"PowerGrid\",\n \"IRT_MAIN\",\n \"SNCF\",\n \"DA\",\n \"ORANGE\"\n ],\n \"authorizedIPAddresses\": [],\n \"groups\": [\n \"ADMIN\"\n ]\n },\n \"computedPerimeters\": [],\n \"processesStatesNotNotified\": {}\n}" + "body": "{\n \"userData\": {\n \"login\": \"admin\",\n \"firstName\": null,\n \"lastName\": null,\n \"entities\": [\n \"PowerGrid\",\n \"IRT_MAIN\",\n \"Railway\",\n \"ATM\",\n \"ORANGE\"\n ],\n \"authorizedIPAddresses\": [],\n \"groups\": [\n \"ADMIN\"\n ]\n },\n \"computedPerimeters\": [],\n \"processesStatesNotNotified\": {}\n}" } ] }, diff --git a/docs/postman_collections/Recommendation-service.postman_collection.json b/docs/postman_collections/Recommendation-service.postman_collection.json index d86b60ae..e24a23c6 100644 --- a/docs/postman_collections/Recommendation-service.postman_collection.json +++ b/docs/postman_collections/Recommendation-service.postman_collection.json @@ -13,7 +13,7 @@ "oauth2": [ { "key": "username", - "value": "da_user", + "value": "atm_user", "type": "string" }, { @@ -128,7 +128,7 @@ "body": null }, { - "name": "Get recommendation DA", + "name": "Get recommendation ATM", "originalRequest": { "method": "POST", "header": [], @@ -197,10 +197,10 @@ } ], "cookie": [], - "body": "{\n \"da_recommendation\": {\n \"Procedure\": [\n {\n \"TaskIndex\": 1,\n \"TaskText\": \"Engine 1 power lever\"\n },\n {\n \"TaskIndex\": 2,\n \"TaskText\": \"GALLEY MASTER & CABIN MASTER\"\n },\n {\n \"TaskIndex\": 3,\n \"TaskText\": \"ENGINE 1 SHUT OFF\"\n },\n {\n \"TaskIndex\": 4,\n \"TaskText\": \"TA Only\"\n },\n {\n \"TaskIndex\": 5,\n \"TaskText\": \"A/I: ENG 1\"\n },\n {\n \"TaskIndex\": 6,\n \"TaskText\": \"Two engines out?\"\n },\n {\n \"TaskIndex\": 7,\n \"TaskText\": \"WINDSHIELD HEAT LH or RH\"\n },\n {\n \"TaskIndex\": 8,\n \"TaskText\": \"Airbrakes auto retraction function is lost\"\n },\n {\n \"TaskIndex\": 9,\n \"TaskText\": \"NOTE: Do not complete the procedure for FUEL: ENG 1 LO PRESS and ENG 1: OUT\"\n },\n {\n \"TaskIndex\": 10,\n \"TaskText\": \"DO NOT ATTEMPT TO RELIGHT ENGINE 1\"\n },\n {\n \"TaskIndex\": 11,\n \"TaskText\": \"BUS TIE\"\n },\n {\n \"TaskIndex\": 12,\n \"TaskText\": \"Engine 1 FUEL switch\"\n },\n {\n \"TaskIndex\": 13,\n \"TaskText\": \"BOOST 1\"\n },\n {\n \"TaskIndex\": 14,\n \"TaskText\": \"BLEED 1\"\n },\n {\n \"TaskIndex\": 15,\n \"TaskText\": \"XBLEED 1 2\"\n },\n {\n \"TaskIndex\": 16,\n \"TaskText\": \"GEN 1\"\n }\n ],\n \"maxSpeed\": 260,\n \"minSpeed\": 180\n }\n}" + "body": "{\n \"atm_recommendation\": {\n \"Procedure\": [\n {\n \"TaskIndex\": 1,\n \"TaskText\": \"Engine 1 power lever\"\n },\n {\n \"TaskIndex\": 2,\n \"TaskText\": \"GALLEY MASTER & CABIN MASTER\"\n },\n {\n \"TaskIndex\": 3,\n \"TaskText\": \"ENGINE 1 SHUT OFF\"\n },\n {\n \"TaskIndex\": 4,\n \"TaskText\": \"TA Only\"\n },\n {\n \"TaskIndex\": 5,\n \"TaskText\": \"A/I: ENG 1\"\n },\n {\n \"TaskIndex\": 6,\n \"TaskText\": \"Two engines out?\"\n },\n {\n \"TaskIndex\": 7,\n \"TaskText\": \"WINDSHIELD HEAT LH or RH\"\n },\n {\n \"TaskIndex\": 8,\n \"TaskText\": \"Airbrakes auto retraction function is lost\"\n },\n {\n \"TaskIndex\": 9,\n \"TaskText\": \"NOTE: Do not complete the procedure for FUEL: ENG 1 LO PRESS and ENG 1: OUT\"\n },\n {\n \"TaskIndex\": 10,\n \"TaskText\": \"DO NOT ATTEMPT TO RELIGHT ENGINE 1\"\n },\n {\n \"TaskIndex\": 11,\n \"TaskText\": \"BUS TIE\"\n },\n {\n \"TaskIndex\": 12,\n \"TaskText\": \"Engine 1 FUEL switch\"\n },\n {\n \"TaskIndex\": 13,\n \"TaskText\": \"BOOST 1\"\n },\n {\n \"TaskIndex\": 14,\n \"TaskText\": \"BLEED 1\"\n },\n {\n \"TaskIndex\": 15,\n \"TaskText\": \"XBLEED 1 2\"\n },\n {\n \"TaskIndex\": 16,\n \"TaskText\": \"GEN 1\"\n }\n ],\n \"maxSpeed\": 260,\n \"minSpeed\": 180\n }\n}" }, { - "name": "Get recommendation DA", + "name": "Get recommendation ATM", "originalRequest": { "method": "POST", "header": [], @@ -305,7 +305,7 @@ "body": "{\n \"ia_recommendation\": [\n {\n \"LTTD\": \"5 min\",\n \"SousTitre\": \" Assigner le bus 2 à line (extremity) id 36, Assigner le bus 2 à line (extremity) id 37, Assigner le bus 2 à line (extremity) id 38, Assigner le bus 1 à line (extremity) id 39, Assigner le bus 2 à line (origin) id 40, Assigner le bus 2 à line (origin) id 41, Assigner le bus 1 à line (extremity) id 56, Assigner le bus 1 à generator id 14, Assigner le bus 1 à load id 27\",\n \"Titre\": \"Parade topologique: prise de schéma au poste 26\"\n },\n {\n \"LTTD\": \"5 min\",\n \"SousTitre\": \" Assigner le bus 2 à line (extremity) id 17, Assigner le bus 1 à line (extremity) id 18, Assigner le bus 1 à line (extremity) id 19, Assigner le bus 2 à line (extremity) id 20, Assigner le bus 2 à line (extremity) id 21, Assigner le bus 2 à line (origin) id 22, Assigner le bus 2 à line (origin) id 23, Assigner le bus 1 à line (origin) id 27, Assigner le bus 1 à line (origin) id 28, Assigner le bus 2 à line (origin) id 48, Assigner le bus 2 à line (origin) id 49, Assigner le bus 1 à line (origin) id 54, Assigner le bus 1 à generator id 5, Assigner le bus 2 à generator id 6, Assigner le bus 2 à generator id 7, Assigner le bus 1 à generator id 8, Assigner le bus 2 à load id 17\",\n \"Titre\": \"Parade topologique: prise de schéma au poste 16\"\n },\n {\n \"LTTD\": \"5 min\",\n \"SousTitre\": \" Assigner le bus 2 à line (extremity) id 41, Assigner le bus 1 à line (extremity) id 42, Assigner le bus 1 à line (origin) id 44, Assigner le bus 1 à line (extremity) id 57, Assigner le bus 2 à generator id 16\",\n \"Titre\": \"Parade topologique: prise de schéma au poste 28\"\n }\n ],\n \"onto_recommendation\": \"Changer le bus\"\n}" }, { - "name": "Get recommendation SNCF", + "name": "Get recommendation Railway", "originalRequest": { "method": "POST", "header": [], @@ -377,7 +377,7 @@ "body": "{\n \"recommendation\": [\n \"Trains impactés : TGV 8404, TGV 7652 et TGV 5440.\",\n \"La prochaine desserte du train TGV 8404 devait être la gare de St-Pierre-des-Corps, sera maintenant la gare de Angoulême.\",\n \"La prochaine desserte du train TGV 7652 devait être la gare de Bordeaux, sera maintenant la gare de Angoulême.\",\n \"La prochaine desserte du train TGV 5440 devait être la gare de St-Pierre-des-Corps, sera maintenant la gare de Poitiers.\"\n ]\n}" }, { - "name": "Get recommendation SNCF v2.1", + "name": "Get recommendation Railway v2.1", "originalRequest": { "method": "POST", "header": [], @@ -482,7 +482,7 @@ "body": null }, { - "name": "Get recommendation SNCF v3", + "name": "Get recommendation Railway v3", "originalRequest": { "method": "POST", "header": [], @@ -551,7 +551,7 @@ } ], "cookie": [], - "body": "[\n {\n \"actions\": [\n {\n \"transportation_plan\": [\n [\n [\n 204,\n 7\n ]\n ],\n [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n [\n [\n 100,\n 6\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n ]\n }\n ],\n \"agent_type\": \"IA\",\n \"description\": \"Trains impactés : TGV 8404 et TGV 5440.\\nLa prochaine desserte du train TGV 8404 devait être la gare de St-Pierre-des-Corps, sera maintenant la gare de Angoulême.\\nLa prochaine desserte du train TGV 7652 reste la gare de Angoulême.\\nLa prochaine desserte du train TGV 5440 devait être la gare de Angoulême, sera maintenant la gare de Poitiers.\\n\",\n \"title\": \"Modification de plan de transport\",\n \"use_case\": \"SNCF\"\n }\n]" + "body": "[\n {\n \"actions\": [\n {\n \"transportation_plan\": [\n [\n [\n 204,\n 7\n ]\n ],\n [\n [\n 204,\n 7\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ],\n [\n [\n 100,\n 6\n ],\n [\n 176,\n 2\n ],\n [\n 100,\n 6\n ],\n [\n 94,\n 2\n ],\n [\n 8,\n 7\n ]\n ]\n ]\n }\n ],\n \"agent_type\": \"IA\",\n \"description\": \"Trains impactés : TGV 8404 et TGV 5440.\\nLa prochaine desserte du train TGV 8404 devait être la gare de St-Pierre-des-Corps, sera maintenant la gare de Angoulême.\\nLa prochaine desserte du train TGV 7652 reste la gare de Angoulême.\\nLa prochaine desserte du train TGV 5440 devait être la gare de Angoulême, sera maintenant la gare de Poitiers.\\n\",\n \"title\": \"Modification de plan de transport\",\n \"use_case\": \"Railway\"\n }\n]" } ] }, @@ -563,7 +563,7 @@ "oauth2": [ { "key": "username", - "value": "sncf_user", + "value": "railway_user", "type": "string" }, { @@ -645,7 +645,7 @@ }, "response": [ { - "name": "Get procedure DA", + "name": "Get procedure ATM", "originalRequest": { "method": "POST", "header": [], @@ -678,7 +678,7 @@ "body": null }, { - "name": "Get procedure SNCF", + "name": "Get procedure Railway", "originalRequest": { "method": "POST", "header": [], diff --git a/frontend/Dockerfile b/frontend/Dockerfile index aabf5fad..19677e4b 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -3,7 +3,11 @@ RUN mkdir -p /app WORKDIR /app COPY . /app ARG VITE_POWERGRID_SIMU +ARG VITE_RAILWAY_SIMU +ARG VITE_ATM_SIMU ENV VITE_POWERGRID_SIMU=$VITE_POWERGRID_SIMU +ENV VITE_RAILWAY_SIMU=$VITE_RAILWAY_SIMU +ENV VITE_ATM_SIMU=$VITE_ATM_SIMU RUN npm ci RUN npm run build diff --git a/frontend/env/.env b/frontend/env/.env index 1780b608..90b9c9ff 100644 --- a/frontend/env/.env +++ b/frontend/env/.env @@ -1,4 +1,6 @@ VITE_DEFAULT_LOCALE="en" VITE_FALLBACK_LOCALE="en" VITE_POWERGRID_SIMU=$VITE_POWERGRID_SIMU +VITE_RAILWAY_SIMU=$VITE_RAILWAY_SIMU +VITE_ATM_SIMU=$VITE_ATM_SIMU VITE_API="" \ No newline at end of file diff --git a/frontend/src/entities/ATM/CAB/Assistant.vue b/frontend/src/entities/ATM/CAB/Assistant.vue new file mode 100644 index 00000000..0963afd4 --- /dev/null +++ b/frontend/src/entities/ATM/CAB/Assistant.vue @@ -0,0 +1,191 @@ + + + diff --git a/frontend/src/entities/ATM/CAB/Context.vue b/frontend/src/entities/ATM/CAB/Context.vue new file mode 100644 index 00000000..b030d08a --- /dev/null +++ b/frontend/src/entities/ATM/CAB/Context.vue @@ -0,0 +1,68 @@ + + diff --git a/frontend/src/entities/ATM/CAB/Notifications.vue b/frontend/src/entities/ATM/CAB/Notifications.vue new file mode 100644 index 00000000..04022186 --- /dev/null +++ b/frontend/src/entities/ATM/CAB/Notifications.vue @@ -0,0 +1,22 @@ + + diff --git a/frontend/src/entities/ATM/CAB/Timeline.vue b/frontend/src/entities/ATM/CAB/Timeline.vue new file mode 100644 index 00000000..3da1cc63 --- /dev/null +++ b/frontend/src/entities/ATM/CAB/Timeline.vue @@ -0,0 +1,16 @@ + + diff --git a/frontend/src/entities/ATM/api.ts b/frontend/src/entities/ATM/api.ts new file mode 100644 index 00000000..051ffbef --- /dev/null +++ b/frontend/src/entities/ATM/api.ts @@ -0,0 +1,6 @@ +import http from '@/plugins/http' +import type { Action } from '@/types/entities' + +export function applyRecommendation(data: Action<'ATM'>) { + return http.post<{ message: string }>(import.meta.env.VITE_ATM_SIMU + '/update-flight-plan', data) +} diff --git a/frontend/src/entities/ATM/assets/img/BLD_faulty.png b/frontend/src/entities/ATM/assets/img/BLD_faulty.png new file mode 100644 index 00000000..3e597428 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/BLD_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/BLD_nominal.png b/frontend/src/entities/ATM/assets/img/BLD_nominal.png new file mode 100644 index 00000000..3e597428 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/BLD_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/ECS_faulty.png b/frontend/src/entities/ATM/assets/img/ECS_faulty.png new file mode 100644 index 00000000..e8ea2154 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ECS_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/ECS_nominal.png b/frontend/src/entities/ATM/assets/img/ECS_nominal.png new file mode 100644 index 00000000..3b05e0cd Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ECS_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/ELEC_faulty.png b/frontend/src/entities/ATM/assets/img/ELEC_faulty.png new file mode 100644 index 00000000..e0edb9ef Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ELEC_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/ELEC_nominal.png b/frontend/src/entities/ATM/assets/img/ELEC_nominal.png new file mode 100644 index 00000000..e4142613 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ELEC_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/ENG_faulty.png b/frontend/src/entities/ATM/assets/img/ENG_faulty.png new file mode 100644 index 00000000..e85f5afa Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ENG_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/ENG_nominal.png b/frontend/src/entities/ATM/assets/img/ENG_nominal.png new file mode 100644 index 00000000..d4276760 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/ENG_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/FCS_faulty.png b/frontend/src/entities/ATM/assets/img/FCS_faulty.png new file mode 100644 index 00000000..fc4bc4c0 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/FCS_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/FCS_nominal.png b/frontend/src/entities/ATM/assets/img/FCS_nominal.png new file mode 100644 index 00000000..fc4bc4c0 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/FCS_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/FUEL_faulty.png b/frontend/src/entities/ATM/assets/img/FUEL_faulty.png new file mode 100644 index 00000000..9e2a3021 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/FUEL_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/FUEL_nominal.png b/frontend/src/entities/ATM/assets/img/FUEL_nominal.png new file mode 100644 index 00000000..68fd3cec Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/FUEL_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/HYD_faulty.png b/frontend/src/entities/ATM/assets/img/HYD_faulty.png new file mode 100644 index 00000000..895042a2 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/HYD_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/HYD_nominal.png b/frontend/src/entities/ATM/assets/img/HYD_nominal.png new file mode 100644 index 00000000..fbfadeff Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/HYD_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/MISC_faulty.png b/frontend/src/entities/ATM/assets/img/MISC_faulty.png new file mode 100644 index 00000000..de35edf9 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/MISC_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/MISC_nominal.png b/frontend/src/entities/ATM/assets/img/MISC_nominal.png new file mode 100644 index 00000000..de35edf9 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/MISC_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/STAT_faulty.png b/frontend/src/entities/ATM/assets/img/STAT_faulty.png new file mode 100644 index 00000000..cfc6eab9 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/STAT_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/STAT_nominal.png b/frontend/src/entities/ATM/assets/img/STAT_nominal.png new file mode 100644 index 00000000..cfc6eab9 Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/STAT_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/img/TEST_faulty.png b/frontend/src/entities/ATM/assets/img/TEST_faulty.png new file mode 100644 index 00000000..95b4eb0a Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/TEST_faulty.png differ diff --git a/frontend/src/entities/ATM/assets/img/TEST_nominal.png b/frontend/src/entities/ATM/assets/img/TEST_nominal.png new file mode 100644 index 00000000..95b4eb0a Binary files /dev/null and b/frontend/src/entities/ATM/assets/img/TEST_nominal.png differ diff --git a/frontend/src/entities/ATM/assets/logo.svg b/frontend/src/entities/ATM/assets/logo.svg new file mode 100644 index 00000000..26101181 --- /dev/null +++ b/frontend/src/entities/ATM/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/entities/ATM/assets/theme.scss b/frontend/src/entities/ATM/assets/theme.scss new file mode 100644 index 00000000..38f08fb3 --- /dev/null +++ b/frontend/src/entities/ATM/assets/theme.scss @@ -0,0 +1,6 @@ +html.ATM { + --color-blue-500: #00a3ff; + --color-green-500: #f3f3f3; + --color-orange-500: #ffd200; + --color-red-500: #ff0000; +} diff --git a/frontend/src/entities/ATM/locales/en.json b/frontend/src/entities/ATM/locales/en.json new file mode 100644 index 00000000..45f13fa9 --- /dev/null +++ b/frontend/src/entities/ATM/locales/en.json @@ -0,0 +1,13 @@ +{ + "assistant.plan": "Recommend new flight plans", + "cab.assistant.procedure": "Checklist", + "cab.notifications.main": "Failures", + "cab.notifications.sub": "Notifications", + "map.context": "Plane", + "recommendations.button1": "Cockpit maintenance", + "recommendations.button2": "Cost", + "recommendations.button3": "Accomodation", + "recommendations.description": "Flight plan information", + "recommendations.modal": "You are about to recalculate a new flight plan to reroute to {destination}. Do you wish to continue?", + "recommendations.title": "Flight plans recommendations" +} diff --git a/frontend/src/entities/ATM/locales/fr.json b/frontend/src/entities/ATM/locales/fr.json new file mode 100644 index 00000000..090f76cd --- /dev/null +++ b/frontend/src/entities/ATM/locales/fr.json @@ -0,0 +1,13 @@ +{ + "assistant.plan": "Recommander un nouveau plan de vol", + "cab.assistant.procedure": "Checklist", + "cab.notifications.main": "Défaillances", + "cab.notifications.sub": "Notifications", + "map.context": "Avion", + "recommendations.button1": "Maintenance cockpit", + "recommendations.button2": "Coût", + "recommendations.button3": "Accomodation", + "recommendations.description": "Information plan de vol", + "recommendations.modal": "Vous êtes sur le point de recalculer un nouveau plan de vol pour vous rediriger vers {destination}. Souhaitez-vous continuer ?", + "recommendations.title": "Recommandations de plan de vol" +} diff --git a/frontend/src/entities/ATM/types.ts b/frontend/src/entities/ATM/types.ts new file mode 100644 index 00000000..37e5c91b --- /dev/null +++ b/frontend/src/entities/ATM/types.ts @@ -0,0 +1,60 @@ +export type ATM = { + Context: { + 'Current airspeed': number + Latitude: number + Longitude: number + ApDest?: { + apcity: string + apid: Uppercase + aplat: number + aplon: number + apname: string + } + wpList?: { + wpid: Uppercase + wpidx: number + wplat: number + wplon: number + }[] + } + Metadata: { event_type: string; system: string } + Action: { + airport_destination: { + apcity: string + apid: Uppercase + apname: Uppercase + latitude: number + longitude: number + } + waypoints: { + wplat: number + wplon: number + wpidx: number + wpid: Uppercase + }[] + } + TaskTypes: + | 'task' + | 'monitor' + | 'choice' + | 'caution' + | 'note' + | 'flightpathAction' + | 'operatingProcedure' + | 'noActionRequired' +} + +export const SYSTEMS = [ + 'STAT', + 'ENG', + 'ELEC', + 'FUEL', + 'HYD', + 'ECS', + 'FCS', + 'BLD', + 'MISC', + 'TEST' +] as const +Object.freeze(SYSTEMS) +export type System = (typeof SYSTEMS)[number] diff --git a/frontend/src/entities/Railway/CAB/Assistant.vue b/frontend/src/entities/Railway/CAB/Assistant.vue new file mode 100644 index 00000000..82d4f777 --- /dev/null +++ b/frontend/src/entities/Railway/CAB/Assistant.vue @@ -0,0 +1,164 @@ + + diff --git a/frontend/src/entities/Railway/CAB/Context.vue b/frontend/src/entities/Railway/CAB/Context.vue new file mode 100644 index 00000000..56613492 --- /dev/null +++ b/frontend/src/entities/Railway/CAB/Context.vue @@ -0,0 +1,71 @@ + + diff --git a/frontend/src/entities/Railway/CAB/Notifications.vue b/frontend/src/entities/Railway/CAB/Notifications.vue new file mode 100644 index 00000000..2ef25ec9 --- /dev/null +++ b/frontend/src/entities/Railway/CAB/Notifications.vue @@ -0,0 +1,36 @@ + + diff --git a/frontend/src/entities/Railway/CAB/Timeline.vue b/frontend/src/entities/Railway/CAB/Timeline.vue new file mode 100644 index 00000000..1f9f542e --- /dev/null +++ b/frontend/src/entities/Railway/CAB/Timeline.vue @@ -0,0 +1,32 @@ + + diff --git a/frontend/src/entities/Railway/api.ts b/frontend/src/entities/Railway/api.ts new file mode 100644 index 00000000..d97788d8 --- /dev/null +++ b/frontend/src/entities/Railway/api.ts @@ -0,0 +1,6 @@ +import http from '@/plugins/http' +import type { Action } from '@/types/entities' + +export function applyRecommendation(data: Action<'Railway'>) { + return http.post<{ message: string }>(import.meta.env.VITE_RAILWAY_SIMU + '/transport_plan', data) +} diff --git a/frontend/src/entities/Railway/assets/camera.png b/frontend/src/entities/Railway/assets/camera.png new file mode 100644 index 00000000..eae9b5b4 Binary files /dev/null and b/frontend/src/entities/Railway/assets/camera.png differ diff --git a/frontend/src/entities/Railway/assets/logo.svg b/frontend/src/entities/Railway/assets/logo.svg new file mode 100644 index 00000000..db70efa5 --- /dev/null +++ b/frontend/src/entities/Railway/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/entities/Railway/assets/theme.scss b/frontend/src/entities/Railway/assets/theme.scss new file mode 100644 index 00000000..a87d78c0 --- /dev/null +++ b/frontend/src/entities/Railway/assets/theme.scss @@ -0,0 +1,6 @@ +html.Railway { + --color-blue-500: #0084d4; + --color-green-500: #00b388; + --color-orange-500: #daaa00; + --color-red-500: #dc582a; +} diff --git a/frontend/src/entities/Railway/assets/train.svg b/frontend/src/entities/Railway/assets/train.svg new file mode 100644 index 00000000..5e538724 --- /dev/null +++ b/frontend/src/entities/Railway/assets/train.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/entities/Railway/locales/en.json b/frontend/src/entities/Railway/locales/en.json new file mode 100644 index 00000000..7b2afd4e --- /dev/null +++ b/frontend/src/entities/Railway/locales/en.json @@ -0,0 +1,23 @@ +{ + "card.actions.move_user.tooltip": "Delegate the task to a colleague", + "card.event_type.HARDWARE": "Hardware", + "card.event_type.IMPACT": "Impact", + "card.event_type.INFRASTRUCTURE": "Infrastructure", + "card.event_type.PASSENGER": "Passenger", + "card.event_type.RAIL": "Rail", + "event.button.primary": "Recalculate transport plans", + "event.button.primary.passenger": "Show procedure", + "event.button.secondary": "Continue the procedure follow-up", + "event.button.secondary.passenger": "Put on hold", + "event.text": "{event} detected. Would you like help recalculating transportation plans?", + "event.text.infrastructure_childless": "{event} detected.", + "event.text.passenger": "{event} detected. \nWould you like help processing the event?", + "event.tooltip.primary.passenger": "View Traveler's Sickness Treatment Procedure", + "recommendations.button.secondary": "Add a solution", + "recommendations.button1": "Service road", + "recommendations.button2": "Cumulative delay", + "recommendations.button3": "Cost", + "recommendations.button4": "Client impact", + "recommendations.description": "Solution description", + "recommendations.modal": "You are about to apply {recommendation}. Do you want to continue?" +} diff --git a/frontend/src/entities/Railway/locales/fr.json b/frontend/src/entities/Railway/locales/fr.json new file mode 100644 index 00000000..ce8933eb --- /dev/null +++ b/frontend/src/entities/Railway/locales/fr.json @@ -0,0 +1,23 @@ +{ + "card.actions.move_user.tooltip": "Déléguer la tâche à un collègue", + "card.event_type.HARDWARE": "Matériel", + "card.event_type.IMPACT": "Impact", + "card.event_type.INFRASTRUCTURE": "Infrastructure", + "card.event_type.PASSENGER": "Voyageur", + "card.event_type.RAIL": "Rail", + "event.button.primary": "Recalculer les plans de transports", + "event.button.primary.passenger": "Afficher la procédure", + "event.button.secondary": "Continuer le suivi de procédure", + "event.button.secondary.passenger": "Mettre en attente", + "event.text": "{event} détectée. Souhaitez-vous de l'aide pour recalculer les plans de transport ?", + "event.text.infrastructure_childless": "{event} détecté.", + "event.text.passenger": "{event} détecté. Souhaitez-vous de l'aide pour traiter l'événement ?", + "event.tooltip.primary.passenger": "Afficher la procédure de traitement de malaise voyageur", + "recommendations.button.secondary": "Ajouter une solution", + "recommendations.button1": "Desserte", + "recommendations.button2": "Retard cumulé", + "recommendations.button3": "Coût", + "recommendations.button4": "Impact client", + "recommendations.description": "Description solution", + "recommendations.modal": "Vous êtes sur le point d'appliquer {recommendation}. Voulez-vous continuer ?" +} diff --git a/frontend/src/entities/Railway/types.ts b/frontend/src/entities/Railway/types.ts new file mode 100644 index 00000000..16c20600 --- /dev/null +++ b/frontend/src/entities/Railway/types.ts @@ -0,0 +1,44 @@ +export type Railway = { + AppData: { + message: string + } + Context: { + direction_agents: number[] + list_of_target: { + [key: `${number}`]: [number, number][] + } + position_agents: { + [key: `${number}`]: [number, number] + } + trains: { + failure: boolean + id_train: string + latitude: number + longitude: number + nb_passengers_connection: null + nb_passengers_onboard: number + speed: number + }[] + } + Metadata: { + event_type: 'PASSENGER' | 'INFRASTRUCTURE' | 'IMPACT' | 'HARDWARE' + travel_plan?: { name: string; startDate: number; endDate?: number }[] + id_train: string + agent_id: string + agent_position?: [number, number] + latitude?: number + longitude?: number + delay: number + } + Action: { + simulation_name: string + targets_list: { + agent_id: string + targets: { + passengers: number + target_id: number + target_type: 'STATION' + }[] + }[] + } +} diff --git a/frontend/src/entities/config.ts b/frontend/src/entities/config.ts index fa88a84f..291aa79d 100644 --- a/frontend/src/entities/config.ts +++ b/frontend/src/entities/config.ts @@ -1,17 +1,24 @@ // Import your theme here import './PowerGrid/assets/theme.scss' +import './Railway/assets/theme.scss' +import './ATM/assets/theme.scss' // Import your types here import type { PowerGrid } from './PowerGrid/types' - +import type { Railway } from './Railway/types' +import type { ATM } from './ATM/types' // Add your entity and config here // darkMode: use dark mode export const ENTITIES_CONFIG = { - PowerGrid: { darkMode: false } + PowerGrid: { darkMode: false }, + Railway: {darkMode: false}, + ATM: {darkMode: false} } as const Object.freeze(ENTITIES_CONFIG) // Bind your types here export type EntitiesTypes = { PowerGrid: PowerGrid + Railway: Railway + ATM: ATM } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 3230f454..bf2eba0d 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -35,13 +35,9 @@ "cab.status.requests": "Requests", "cab.tab.context": "Context", "cab.tab.dependencies": "Dependencies", - "cab.tab.equipment": "Equipment", "cab.tab.graph": "Graph", - "cab.tab.incident": "Incidents info", "cab.tab.map": "Map", "cab.tab.network": "Network", - "cab.tab.passengers": "Passengers", - "cab.tab.synoptic": "Synoptic", "cab.timeline": "Timeline", "card.actions.delete.tooltip": "Archive the event", "card.actions.downvote.tooltip": "I do not validate this anomaly", diff --git a/frontend/src/locales/fr.json b/frontend/src/locales/fr.json index f1c906ea..b55b1a59 100644 --- a/frontend/src/locales/fr.json +++ b/frontend/src/locales/fr.json @@ -34,14 +34,9 @@ "cab.status.notifications": "Notifications", "cab.status.requests": "Requêtes", "cab.tab.context": "Contexte", - "cab.tab.dependencies": "Dépendances", - "cab.tab.equipment": "Matériel", "cab.tab.graph": "Graphe", - "cab.tab.incident": "Info incidents", "cab.tab.map": "Carte", "cab.tab.network": "Réseau", - "cab.tab.passengers": "Voyageurs", - "cab.tab.synoptic": "Synoptique", "cab.timeline": "Timeline", "card.actions.delete.tooltip": "Archiver l'événement", "card.actions.downvote.tooltip": "Je ne valide pas cette anomalie", diff --git a/resources/cabUsecasesContext/ATMContext.json b/resources/cabUsecasesContext/ATMContext.json new file mode 100755 index 00000000..5feacafa --- /dev/null +++ b/resources/cabUsecasesContext/ATMContext.json @@ -0,0 +1,5 @@ +{ + "name": "ATM", + "context_manager_class": "ATMContextManager", + "metadata_schema_class": "MetadataSchemaATM" +} \ No newline at end of file diff --git a/resources/cabUsecasesContext/RailwayContext.json b/resources/cabUsecasesContext/RailwayContext.json new file mode 100755 index 00000000..fb13b6af --- /dev/null +++ b/resources/cabUsecasesContext/RailwayContext.json @@ -0,0 +1,5 @@ +{ + "name": "Railway", + "context_manager_class": "RailwayContextManager", + "metadata_schema_class": "MetadataSchemaRailway" +} \ No newline at end of file diff --git a/resources/cabUsecasesContext/loadContextServicesUseCase.sh b/resources/cabUsecasesContext/loadContextServicesUseCase.sh index 2817d278..2b5f6540 100755 --- a/resources/cabUsecasesContext/loadContextServicesUseCase.sh +++ b/resources/cabUsecasesContext/loadContextServicesUseCase.sh @@ -1,4 +1,6 @@ cd "$(dirname "${BASH_SOURCE[0]}")" ./createContextUsecase.sh PowerGridContext $1 + ./createContextUsecase.sh ATMContext $1 + ./createContextUsecase.sh RailwayContext $1 \ No newline at end of file diff --git a/resources/cabUsecasesEvent/ATMEvent.json b/resources/cabUsecasesEvent/ATMEvent.json new file mode 100755 index 00000000..2a1a9e30 --- /dev/null +++ b/resources/cabUsecasesEvent/ATMEvent.json @@ -0,0 +1,5 @@ +{ + "name": "ATM", + "event_manager_class": "ATMEventManager", + "metadata_schema_class": "MetadataSchemaATM" +} \ No newline at end of file diff --git a/resources/cabUsecasesEvent/RailwayEvent.json b/resources/cabUsecasesEvent/RailwayEvent.json new file mode 100755 index 00000000..9ee9622a --- /dev/null +++ b/resources/cabUsecasesEvent/RailwayEvent.json @@ -0,0 +1,5 @@ +{ + "name": "Railway", + "event_manager_class": "RailwayEventManager", + "metadata_schema_class": "MetadataSchemaRailway" +} \ No newline at end of file diff --git a/resources/cabUsecasesEvent/loadEventServicesUseCase.sh b/resources/cabUsecasesEvent/loadEventServicesUseCase.sh index abb7eaaf..5b518281 100755 --- a/resources/cabUsecasesEvent/loadEventServicesUseCase.sh +++ b/resources/cabUsecasesEvent/loadEventServicesUseCase.sh @@ -1,3 +1,5 @@ cd "$(dirname "${BASH_SOURCE[0]}")" + ./createEventUsecase.sh ATMEvent $1 ./createEventUsecase.sh PowerGridEvent $1 + ./createEventUsecase.sh RailwayEvent $1 \ No newline at end of file diff --git a/resources/cabUsecasesRecommendation/ATMRecommendationUC.json b/resources/cabUsecasesRecommendation/ATMRecommendationUC.json new file mode 100755 index 00000000..9cad4351 --- /dev/null +++ b/resources/cabUsecasesRecommendation/ATMRecommendationUC.json @@ -0,0 +1,4 @@ +{ + "name": "ATM", + "manager_class": "ATMManager" +} \ No newline at end of file diff --git a/resources/cabUsecasesRecommendation/RailwayRecommendationUC.json b/resources/cabUsecasesRecommendation/RailwayRecommendationUC.json new file mode 100755 index 00000000..e807a955 --- /dev/null +++ b/resources/cabUsecasesRecommendation/RailwayRecommendationUC.json @@ -0,0 +1,4 @@ +{ + "name": "Railway", + "manager_class": "RailwayManager" +} \ No newline at end of file diff --git a/resources/cabUsecasesRecommendation/loadRecommendationServicesUseCase.sh b/resources/cabUsecasesRecommendation/loadRecommendationServicesUseCase.sh index 5d0e685c..1fceb701 100755 --- a/resources/cabUsecasesRecommendation/loadRecommendationServicesUseCase.sh +++ b/resources/cabUsecasesRecommendation/loadRecommendationServicesUseCase.sh @@ -1,3 +1,5 @@ cd "$(dirname "${BASH_SOURCE[0]}")" ./createRecommendationUsecase.sh PowerGridRecommendationUC $1 + ./createRecommendationUsecase.sh ATMRecommendationUC $1 + ./createRecommendationUsecase.sh RailwayRecommendationUC $1 \ No newline at end of file diff --git a/resources/realTimeScreens/realTimeScreens.json b/resources/realTimeScreens/realTimeScreens.json index 329066b3..9252de74 100644 --- a/resources/realTimeScreens/realTimeScreens.json +++ b/resources/realTimeScreens/realTimeScreens.json @@ -6,9 +6,9 @@ { "entitiesGroups": [ { - "name": "DA", + "name": "ATM", "entities": [ - "DA" + "ATM" ], "groups": [ "Dispatcher", @@ -39,9 +39,9 @@ ] }, { - "name": "SNCF", + "name": "Railway", "entities": [ - "SNCF" + "Railway" ], "groups": [ "Dispatcher",