diff --git a/ansible/roles/kong-api/defaults/main.yml b/ansible/roles/kong-api/defaults/main.yml index 64e1c2dedc6930f1ab5a308f6970f672309cd82b..1d16e9916e6855c1545da54bcdd856c05b7ecd2b 100644 --- a/ansible/roles/kong-api/defaults/main.yml +++ b/ansible/roles/kong-api/defaults/main.yml @@ -90,6 +90,7 @@ observations_service_prefix: /observations observationSubmissions_service_prefix: /observationSubmissions surveys_service_prefix: /surveys user_extension_prefix: /user-extension +uci_admin_prefix: /uci # Service URLs knowledge_mw_service_url: "http://knowledge-mw-service:5000" @@ -114,6 +115,12 @@ ml_reports_service_url: "http://ml-reports-service:3000" ml_survey_service_url: "http://ml-survey-service:3000" ml_project_service_url: "http://ml-projects-service:3000" ml_core_service_url: "http://ml-core-service:3000" +uci_inbound_service_url: "http://inbound-service:8085" +uci_transformer_service_url: "http://trasnformer-service:9091" +uci_gql_service_url: "http://gql-service:8080" +uci_registry_service_url: "http://fusionauth-service:9011" +uci_admin_service_url: "http://uci_api-service:9999" + premium_consumer_rate_limits: - api: createContent @@ -6552,3 +6559,563 @@ kong_apis: config.limit_by: credential - name: request-size-limiting config.allowed_payload_size: "{{ small_request_size_limit }}" + + +# UCI Related + - name: getUserSegmentsUCI + uris: "{{ uci_admin_prefix }}/admin/v1/userSegment/get" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/userSegment/get" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: createUserSegmentsUCI + uris: "{{ uci_admin_prefix }}/admin/v1/userSegment/create" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/userSegment/create" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: updateUserSegmentsUCI + uris: "{{ uci_admin_prefix }}/admin/v1/userSegment/update" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/userSegment/update" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: deleteUserSegmentsUCI + uris: "{{ uci_admin_prefix }}/admin/v1/userSegment/delete" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/userSegment/delete" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: searchUserSegmentsUCI + uris: "{{ uci_admin_prefix }}/admin/v1/userSegment/search" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/userSegment/search" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: createAdapterUCI + uris: "{{ uci_admin_prefix }}/admin/v1/adapter/create" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/adapter/create" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAllAdapterUCI + uris: "{{ uci_admin_prefix }}/admin/v1/adapter/all" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/adapter/all" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAdapterUCI + uris: "{{ uci_admin_prefix }}/admin/v1/adapter/get" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/adapter/get" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: deleteAdapterUCI + uris: "{{ uci_admin_prefix }}/admin/v1/adapter/delete" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/adapter/delete" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: updateAdapterUCI + uris: "{{ uci_admin_prefix }}/admin/v1/adapter/update" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/adapter/update" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAllTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/transformer/all" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/transformer/all" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: createTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/transformer/create" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/transformer/create" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/transformer/get" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/transformer/get" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: updateTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/transformer/update" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/transformer/update" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getFormsTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/transformer/getForms" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/transformer/getForms" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: uploadFormsTransformerUCI + uris: "{{ uci_admin_prefix }}/admin/v1/forms/upload" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/forms/upload" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: createConversationLogicUCI + uris: "{{ uci_admin_prefix }}/admin/v1/conversationLogic/create" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/conversationLogic/create" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAllConversationLogicUCI + uris: "{{ uci_admin_prefix }}/admin/v1/conversationLogic/all" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/conversationLogic/all" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getConversationLogicUCI + uris: "{{ uci_admin_prefix }}/admin/v1/conversationLogic/get" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/conversationLogic/get" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: deleteConversationLogicUCI + uris: "{{ uci_admin_prefix }}/admin/v1/conversationLogic/delete" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/conversationLogic/delete" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: updateConversationLogicUCI + uris: "{{ uci_admin_prefix }}/admin/v1/conversationLogic/update" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/conversationLogic/delete" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: createBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/create" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/create" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAllBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/all" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/all" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/get" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/get" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: startBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/start" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/start" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: pauseBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/pause" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/pause" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: searchBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/search" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/search" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: deleteBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/delete" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/delete" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: updateBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/update" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/update" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: getAllUserForBotUCI + uris: "{{ uci_admin_prefix }}/admin/v1/bot/getAllUsers" + upstream_url: "{{ uci_admin_service_url }}/admin/v1/bot/getAllUsers" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" + + - name: gqlUCI + uris: "{{ uci_admin_prefix }}/uci-api/gql" + upstream_url: "{{ uci_admin_service_url }}/v1/graphql" + strip_uri: true + plugins: + - name: jwt + - name: cors + - "{{ statsd_pulgin }}" + - name: acl + config.whitelist: + - 'userAdmin' + - name: rate-limiting + config.policy: local + config.hour: "{{ medium_rate_limit_per_hour }}" + config.limit_by: credential + - name: request-size-limiting + config.allowed_payload_size: "{{ small_request_size_limit }}" \ No newline at end of file diff --git a/kubernetes/helm_charts/core/nginx-private-ingress/templates/configmap.yaml b/kubernetes/helm_charts/core/nginx-private-ingress/templates/configmap.yaml index e4a710659ada11883176aafd4a4c773770e0242e..522767d8cebb67007296c1256f577eb27d8e8c85 100644 --- a/kubernetes/helm_charts/core/nginx-private-ingress/templates/configmap.yaml +++ b/kubernetes/helm_charts/core/nginx-private-ingress/templates/configmap.yaml @@ -172,6 +172,21 @@ data: rewrite ^/federation-service/(.*) /$1 break; proxy_pass $target; } + location /gql-service/ { + set $target http://gql-service.{{ .Values.namespace }}.svc.cluster.local:8080; + rewrite ^/odk-service/(.*) /$1 break; + proxy_pass $target; + } + location /fusionauth-service/ { + set $target http://fusionauth-service.{{ .Values.namespace }}.svc.cluster.local:9011; + rewrite ^/odk-service/(.*) /$1 break; + proxy_pass $target; + } + location /odk-service/ { + set $target http://odk-service.{{ .Values.namespace }}.svc.cluster.local:8080; + rewrite ^/odk-service/(.*) /$1 break; + proxy_pass $target; + } } } kind: ConfigMap