Skip to content

Commit 9f36dc0

Browse files
committed
[DOP-25348] Fix building documentation
1 parent 2ff4a56 commit 9f36dc0

File tree

1 file changed

+21
-9
lines changed
  • syncmaster/server/settings/server

1 file changed

+21
-9
lines changed

syncmaster/server/settings/server/cors.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44

5-
from pydantic import BaseModel, ConfigDict, Field
5+
import json
6+
from typing import Any
7+
8+
from pydantic import BaseModel, ConfigDict, Field, field_validator
69

710

811
class CORSSettings(BaseModel):
@@ -23,20 +26,20 @@ class CORSSettings(BaseModel):
2326
.. code-block:: bash
2427
2528
SYNCMASTER__SERVER__CORS__ENABLED=True
26-
SYNCMASTER__SERVER__CORS__ALLOW_ORIGINS=["*"]
27-
SYNCMASTER__SERVER__CORS__ALLOW_METHODS=["*"]
28-
SYNCMASTER__SERVER__CORS__ALLOW_HEADERS=["*"]
29-
SYNCMASTER__SERVER__CORS__EXPOSE_HEADERS=["X-Request-ID"]
29+
SYNCMASTER__SERVER__CORS__ALLOW_ORIGINS=*
30+
SYNCMASTER__SERVER__CORS__ALLOW_METHODS=*
31+
SYNCMASTER__SERVER__CORS__ALLOW_HEADERS=*
32+
SYNCMASTER__SERVER__CORS__EXPOSE_HEADERS=X-Request-ID,Location,Access-Control-Allow-Credentials
3033
3134
For production environment:
3235
3336
.. code-block:: bash
3437
3538
SYNCMASTER__SERVER__CORS__ENABLED=True
36-
SYNCMASTER__SERVER__CORS__ALLOW_ORIGINS=["production.example.com"]
37-
SYNCMASTER__SERVER__CORS__ALLOW_METHODS=["GET"]
38-
SYNCMASTER__SERVER__CORS__ALLOW_HEADERS=["X-Request-ID", "X-Request-With"]
39-
SYNCMASTER__SERVER__CORS__EXPOSE_HEADERS=["X-Request-ID"]
39+
SYNCMASTER__SERVER__CORS__ALLOW_ORIGINS=production.example.com
40+
SYNCMASTER__SERVER__CORS__ALLOW_METHODS=GET
41+
SYNCMASTER__SERVER__CORS__ALLOW_HEADERS=X-Request-ID,X-Request-With
42+
SYNCMASTER__SERVER__CORS__EXPOSE_HEADERS=X-Request-ID
4043
# custom option passed directly to middleware
4144
SYNCMASTER__SERVER__CORS__MAX_AGE=600
4245
"""
@@ -55,4 +58,13 @@ class CORSSettings(BaseModel):
5558
)
5659
expose_headers: list[str] = Field(default=["X-Request-ID"], description="HTTP headers exposed from server")
5760

61+
@field_validator("allow_origins", "allow_methods", "allow_headers", "expose_headers", mode="before")
62+
@classmethod
63+
def _validate_bootstrap_servers(cls, value: Any):
64+
if not isinstance(value, str):
65+
return value
66+
if "[" in value:
67+
return json.loads(value)
68+
return [item.strip() for item in value.split(",")]
69+
5870
model_config = ConfigDict(extra="allow")

0 commit comments

Comments
 (0)