Skip to content

Commit 3d85860

Browse files
authored
remove cors (#887)
1 parent ede93e1 commit 3d85860

File tree

9 files changed

+2
-76
lines changed

9 files changed

+2
-76
lines changed

charts/platform-registry/templates/deployment.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,6 @@ spec:
7272
value: {{ .Values.upstreamRegistry.maxCatalogEntries | quote }}
7373
- name: NP_CLUSTER_NAME
7474
value: {{ .Values.platform.clusterName }}
75-
{{- if .Values.cors.origins }}
76-
- name: NP_CORS_ORIGINS
77-
value: {{ .Values.cors.origins | join "," | quote }}
78-
{{- end }}
7975
{{- if eq .Values.upstreamRegistry.type "basic" }}
8076
- name: NP_REGISTRY_UPSTREAM_BASIC_USERNAME
8177
{{- if .Values.upstreamRegistry.basicUsername }}

charts/platform-registry/values-dev.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,6 @@ service:
3535
traefik.ingress.kubernetes.io/service.sticky.cookie: "true"
3636
traefik.ingress.kubernetes.io/service.sticky.cookie.name: NEURO_REGISTRYAPI_SESSION
3737

38-
cors:
39-
origins:
40-
- '*'
41-
4238
sentry:
4339
dsn: https://432bc48cd2444be7afec5efeb1fc03a6@o489136.ingest.sentry.io/5530426
4440
clusterName: dev

charts/platform-registry/values.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ ingress:
3636
hosts: []
3737
annotations: {}
3838

39-
cors:
40-
origins:
41-
- 'https://app.neu.ro'
42-
4339
service:
4440
annotations: {}
4541

platform_registry_api/api.py

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import aiobotocore.session
1414
import aiohttp.web
15-
import aiohttp_cors
1615
import aiohttp_remotes
1716
import botocore.exceptions
1817
import pkg_resources
@@ -38,7 +37,6 @@
3837
Response,
3938
StreamResponse,
4039
)
41-
from aiohttp_cors import CorsConfig
4240
from aiohttp_security import check_authorized, check_permission
4341
from multidict import CIMultiDict, CIMultiDictProxy
4442
from neuro_auth_client import AuthClient, Permission, User
@@ -61,7 +59,6 @@
6159
from .basic import BasicUpstream
6260
from .config import (
6361
Config,
64-
CORSConfig,
6562
EnvironConfigFactory,
6663
UpstreamRegistryConfig,
6764
UpstreamType,
@@ -240,7 +237,7 @@ def _registry_client(self) -> aiohttp.ClientSession:
240237
def _upstream(self) -> Upstream:
241238
return self._app["upstream"]
242239

243-
def register(self, app: aiohttp.web.Application, cors: CorsConfig) -> None:
240+
def register(self, app: aiohttp.web.Application) -> None:
244241
app.add_routes(
245242
(
246243
aiohttp.web.get("/", self.handle_version_check),
@@ -263,9 +260,6 @@ def register(self, app: aiohttp.web.Application, cors: CorsConfig) -> None:
263260
METH_PUT,
264261
)
265262
)
266-
for route in app.router.routes():
267-
logger.debug(f"Setting up CORS for {route}")
268-
cors.add(route)
269263

270264
def _create_url_factory(self, request: Request) -> URLFactory:
271265
return URLFactory.from_config(
@@ -932,29 +926,11 @@ def make_tracing_trace_configs(config: Config) -> list[aiohttp.TraceConfig]:
932926
return trace_configs
933927

934928

935-
def _setup_cors(app: aiohttp.web.Application, config: CORSConfig) -> CorsConfig:
936-
if not config.allowed_origins:
937-
return aiohttp_cors.setup(app)
938-
939-
logger.info(f"Setting up CORS with allowed origins: {config.allowed_origins}")
940-
default_options = aiohttp_cors.ResourceOptions(
941-
allow_credentials=True,
942-
expose_headers="*",
943-
allow_headers="*",
944-
)
945-
cors = aiohttp_cors.setup(
946-
app, defaults={origin: default_options for origin in config.allowed_origins}
947-
)
948-
return cors
949-
950-
951929
async def create_app(config: Config) -> aiohttp.web.Application:
952930
app = aiohttp.web.Application()
953931

954932
await aiohttp_remotes.setup(app, aiohttp_remotes.XForwardedRelaxed())
955933

956-
cors = _setup_cors(app, config.cors)
957-
958934
async def _init_app(app: aiohttp.web.Application) -> AsyncIterator[None]:
959935
async with AsyncExitStack() as exit_stack:
960936

@@ -1016,7 +992,7 @@ async def on_request_redirect(
1016992

1017993
v2_app = aiohttp.web.Application()
1018994
v2_handler = V2Handler(app=v2_app, config=config)
1019-
v2_handler.register(v2_app, cors)
995+
v2_handler.register(v2_app)
1020996

1021997
app["v2_app"] = v2_app
1022998
app.add_subapp("/v2", v2_app)

platform_registry_api/config.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
import os
4-
from collections.abc import Sequence
54
from dataclasses import dataclass, field
65
from enum import Enum
76
from typing import Any
@@ -76,17 +75,11 @@ class SentryConfig:
7675
sample_rate: float = 0
7776

7877

79-
@dataclass(frozen=True)
80-
class CORSConfig:
81-
allowed_origins: Sequence[str] = ()
82-
83-
8478
@dataclass(frozen=True)
8579
class Config:
8680
server: ServerConfig
8781
upstream_registry: UpstreamRegistryConfig
8882
auth: AuthConfig
89-
cors: CORSConfig
9083
cluster_name: str
9184
zipkin: ZipkinConfig | None = None
9285
sentry: SentryConfig | None = None
@@ -165,13 +158,6 @@ def create_auth(self) -> AuthConfig:
165158
token = self._environ["NP_REGISTRY_AUTH_TOKEN"]
166159
return AuthConfig(server_endpoint_url=url, service_token=token)
167160

168-
def create_cors(self) -> CORSConfig:
169-
origins: Sequence[str] = CORSConfig.allowed_origins
170-
origins_str = self._environ.get("NP_CORS_ORIGINS", "").strip()
171-
if origins_str:
172-
origins = origins_str.split(",")
173-
return CORSConfig(allowed_origins=origins)
174-
175161
def create_zipkin(self) -> ZipkinConfig | None:
176162
if "NP_ZIPKIN_URL" not in self._environ:
177163
return None
@@ -200,7 +186,6 @@ def create(self) -> Config:
200186
server_config = self.create_server()
201187
upstream_registry_config = self.create_upstream_registry()
202188
auth_config = self.create_auth()
203-
cors_config = self.create_cors()
204189
zipkin_config = self.create_zipkin()
205190
sentry_config = self.create_sentry()
206191
cluster_name = self._environ["NP_CLUSTER_NAME"]
@@ -209,7 +194,6 @@ def create(self) -> Config:
209194
server=server_config,
210195
upstream_registry=upstream_registry_config,
211196
auth=auth_config,
212-
cors=cors_config,
213197
cluster_name=cluster_name,
214198
zipkin=zipkin_config,
215199
sentry=sentry_config,

setup.cfg

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ platforms = any
1717
install_requires =
1818
aiodns==3.2.0
1919
aiohttp==3.8.6
20-
aiohttp-cors==0.7.0
2120
aiohttp-remotes==1.2.0
2221
cchardet==2.1.7
2322
iso8601==2.1.0
@@ -88,9 +87,6 @@ ignore_missing_imports = true
8887
[mypy-aiohttp_security]
8988
ignore_missing_imports = true
9089

91-
[mypy-aiohttp_cors]
92-
ignore_missing_imports = true
93-
9490
[mypy-neuro_auth_client]
9591
ignore_missing_imports = true
9692

tests/integration/test_api.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from platform_registry_api.config import (
88
AuthConfig,
99
Config,
10-
CORSConfig,
1110
ServerConfig,
1211
UpstreamRegistryConfig,
1312
)
@@ -28,12 +27,10 @@ def config(admin_token: str, cluster_name: str) -> Config:
2827
auth = AuthConfig(
2928
server_endpoint_url=URL("http://localhost:5003"), service_token=admin_token
3029
)
31-
cors = CORSConfig()
3230
return Config(
3331
server=ServerConfig(),
3432
upstream_registry=upstream_registry,
3533
auth=auth,
36-
cors=cors,
3734
cluster_name=cluster_name,
3835
)
3936

tests/integration/test_basic.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from platform_registry_api.config import (
2424
AuthConfig,
2525
Config,
26-
CORSConfig,
2726
ServerConfig,
2827
UpstreamRegistryConfig,
2928
UpstreamType,
@@ -198,7 +197,6 @@ def config(upstream: URL, auth_config: AuthConfig, project: str) -> Config:
198197
server=ServerConfig(),
199198
upstream_registry=upstream_registry,
200199
auth=auth_config,
201-
cors=CORSConfig(),
202200
cluster_name="test-cluster",
203201
)
204202

tests/unit/test_config.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from platform_registry_api.config import (
44
AuthConfig,
55
Config,
6-
CORSConfig,
76
EnvironConfigFactory,
87
SentryConfig,
98
ServerConfig,
@@ -45,7 +44,6 @@ def test_defaults_oauth(self) -> None:
4544
server_endpoint_url=None,
4645
service_token="test_auth_token",
4746
),
48-
cors=CORSConfig(),
4947
cluster_name="test-cluster",
5048
)
5149
assert config.upstream_registry.is_oauth
@@ -89,7 +87,6 @@ def test_oauth(self) -> None:
8987
server_endpoint_url=URL("https://test_auth"),
9088
service_token="test_auth_token",
9189
),
92-
cors=CORSConfig(),
9390
cluster_name="test-cluster",
9491
zipkin=ZipkinConfig(URL("http://zipkin.io:9411/")),
9592
sentry=SentryConfig(dsn=URL("https://sentry"), cluster_name="test"),
@@ -119,7 +116,6 @@ def test_aws_ecr(self) -> None:
119116
server_endpoint_url=URL("https://test_auth"),
120117
service_token="test_auth_token",
121118
),
122-
cors=CORSConfig(),
123119
cluster_name="test-cluster",
124120
)
125121
assert not config.upstream_registry.is_oauth
@@ -147,7 +143,6 @@ def test_defaults_basic(self) -> None:
147143
server_endpoint_url=URL("https://test_auth"),
148144
service_token="test_auth_token",
149145
),
150-
cors=CORSConfig(),
151146
cluster_name="test-cluster",
152147
)
153148
assert config.upstream_registry.is_basic
@@ -180,7 +175,6 @@ def test_basic(self) -> None:
180175
server_endpoint_url=URL("https://test_auth"),
181176
service_token="test_auth_token",
182177
),
183-
cors=CORSConfig(),
184178
cluster_name="test-cluster",
185179
)
186180
assert config.upstream_registry.is_basic
@@ -214,13 +208,6 @@ def test_create_sentry_none(self) -> None:
214208

215209
assert result is None
216210

217-
def test_create_cors_custom(self) -> None:
218-
env = {"NP_CORS_ORIGINS": "https://domain1.com,http://do.main"}
219-
220-
result = EnvironConfigFactory(env).create_cors()
221-
222-
assert result == CORSConfig(["https://domain1.com", "http://do.main"])
223-
224211
def test_create_sentry_default(self) -> None:
225212
env = {
226213
"NP_SENTRY_DSN": "https://sentry",

0 commit comments

Comments
 (0)