You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENT.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ skills/ # task playbooks (SKILL.md per subfolder) for assistants and
45
45
46
46
1.**`Course` naming**: `scheduler.config` uses `Course` as a **course-id string** type in JSON config. `scheduler.models` defines a **`Course` class** (credits, meetings, etc.). `CourseInstance.course` is the model; use **`.course.course_id`** for the config-style id. (See README “Note on naming”.)
47
47
2.**Generated artifacts**: After changing **`server.py`** or API-facing models, refresh **`fern/openapi.json`**. After **`CombinedConfig`** / config models change, refresh **`fern/docs/assets/combined-config.schema.json`**. After public **docstrings** change, refresh **`fern/docs/pages/python/reference.mdx`** — see CONTRIBUTING.
48
-
3.**Style**: **Ruff** is authoritative (`pyproject.toml`: line length **120**, `py312`). CONTRIBUTING’s “88 / Black” note is outdated relative to the repo config — follow **`pyproject.toml`**.
48
+
3.**Style**: **Ruff** is authoritative (`pyproject.toml`: line length **120**, `py312`). CONTRIBUTING matches this; when in doubt follow **`pyproject.toml`**.
Copy file name to clipboardExpand all lines: README.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -89,6 +89,16 @@ curl -X POST "http://localhost:8000/schedules/{schedule_id}/next"
89
89
curl -X GET "http://localhost:8000/schedules/{schedule_id}/count"
90
90
```
91
91
92
+
### Server deployment and security
93
+
94
+
The REST API is convenient for local use and trusted integrations. For production or internet-facing deployments:
95
+
96
+
-**No built-in authentication** — use a reverse proxy, API gateway, or private network; do not expose the process directly without controls you trust.
97
+
-**In-memory sessions** — active schedule sessions are lost on restart and are not shared across multiple server processes.
98
+
-**CORS** — set the `CORS_ORIGINS` environment variable to a comma-separated list of allowed origins when browsers must send credentials. If unset, the server allows all origins without credentials (typical for local development).
99
+
100
+
See [SECURITY.md](SECURITY.md) for how to report vulnerabilities.
Please **do not** open a public GitHub issue for security-sensitive reports.
6
+
7
+
Instead, use **[GitHub Security Advisories](https://github.com/mucsci/scheduler/security/advisories/new)** for this repository (or the Security tab → *Report a vulnerability*). We will work with you to understand and address the issue before any public disclosure.
8
+
9
+
## REST server expectations
10
+
11
+
The `scheduler-server` process does not implement API keys or user authentication. Deploy it only on trusted networks, or place it behind infrastructure that provides authentication, rate limiting, and appropriate request size limits. Schedule sessions are stored in memory and are cleared when the process stops.
12
+
13
+
For non-sensitive questions about deployment, open a regular GitHub issue on this repository.
0 commit comments