Repository navigation
build: harden the initial Saju CalDAV release #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
d4e7392
fix: pin immutable setup-uv release
seonghobae a004e74
build: pin GitHub Actions by commit
seonghobae e126e29
security: harden CalDAV transport and image
seonghobae 2a0ca0a
build: install hash-locked runtime dependencies
seonghobae 5adc875
docs: correct research journal citation
seonghobae d996011
docs: link private vulnerability reporting
seonghobae 7f2e498
docs: design Korean lunar and private calendar flow
seonghobae 548c605
docs: plan Korean lunar privacy follow-up
seonghobae dcb43d6
feat: normalize Korean lunar birth dates
seonghobae 43b6760
feat: accept solar and Korean lunar profiles
seonghobae dd63c9e
feat: explain calendar rules in Korean
seonghobae b004faf
feat: search from the current local date
seonghobae 628830f
feat: minimize CalDAV event disclosure
seonghobae ccdb0aa
privacy: keep acceptance fixture out of public artifacts
seonghobae 876f03d
feat: explain preview matches in Korean
seonghobae e653243
docs: record lunar and CalDAV privacy decisions
seonghobae 5116908
test: allow long CalDAV acceptance syncs
seonghobae 1b485de
fix: make schema migration statically auditable
seonghobae e351939
feat: resolve birth cities and calendar visibility
seonghobae 4811f56
build: vendor deterministic lunar calendar source
seonghobae 96fa833
fix: package vendored lunar calendar in container
seonghobae a565ea1
fix: keep rule defaults privacy-neutral
seonghobae f710749
fix(calendar): exclude elapsed default windows
seonghobae 13a45ff
fix(review): harden runtime error paths
seonghobae 06d0448
fix(api): report invalid calendar metadata
seonghobae e5d589b
fix(ui): preserve manual birthplace selection
seonghobae 422cbc8
docs(research): link lunar conversion license
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Security policy | ||
|
|
||
| ## Supported versions | ||
|
|
||
| Security fixes are applied to the current default branch. This project is not | ||
| yet publishing versioned release lines. | ||
|
|
||
| ## Reporting a vulnerability | ||
|
|
||
| Please report suspected vulnerabilities through the repository's | ||
| [private GitHub security-advisory channel](https://github.com/ContextualWisdomLab/saju-caldav/security/advisories/new). | ||
| Do not open a public issue with credentials, birth data, calendar contents, | ||
| deployment addresses, or exploit details. | ||
|
|
||
| Include the affected commit, a minimal reproduction, expected impact, and any | ||
| suggested mitigation. Maintainers will acknowledge a complete report within | ||
| seven days and will coordinate disclosure after a fix is available. | ||
|
|
||
| ## Sensitive data | ||
|
|
||
| Birth information and generated calendars can be personally sensitive. Use | ||
| synthetic data for public reports and remove CalDAV credentials from logs and | ||
| attachments. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| # 제3자 소프트웨어 고지 | ||
|
|
||
| ## lunar-python 1.4.8 | ||
|
|
||
| - 프로젝트: <https://github.com/6tail/lunar-python> | ||
| - 배포물: <https://pypi.org/project/lunar-python/1.4.8/> | ||
| - 원본 소스 아카이브 SHA-256: | ||
| `3aa11cc73c25e70ddf0ba5bdac7398c03acc9491a3aa512a91c9642973b669d6` | ||
| - 라이선스: MIT | ||
| - 저장 위치: `lunar_python/` | ||
| - 라이선스 전문: `licenses/lunar-python-MIT.txt` | ||
|
|
||
| 이 저장소는 정확한 버전의 순수 Python 소스를 포함합니다. 이를 통해 운영 이미지와 | ||
| 네트워크가 차단된 검증 환경에서 제3자 소스 배포물의 설치 스크립트를 실행하지 않고도 | ||
| 동일한 역법 계산 코드를 사용합니다. | ||
|
|
||
| ## korean-lunar-calendar 0.4.0 | ||
|
|
||
| - 프로젝트: <https://github.com/usingsky/korean_lunar_calendar_py> | ||
| - 배포물: <https://pypi.org/project/korean-lunar-calendar/0.4.0/> | ||
| - 소스 배포물 SHA-256: | ||
| `be56f27bc0594fdbbdf7bbe00f504a9f929a31e311bd7d9bb93561b645afade7` | ||
| - 범용 Python wheel SHA-256: | ||
| `c042e20de0bb702add6bec8d0f6da1ea8d3b170838e63846f70420cf341fe4e7` | ||
| - 라이선스: MIT | ||
| - 라이선스 전문: `licenses/korean-lunar-calendar-MIT.txt` | ||
|
|
||
| 이 패키지는 한국천문연구원 기준의 한국 음력과 그레고리력 사이 변환에 사용하는 | ||
| 고정 버전 런타임 의존성입니다. 배포물 해시는 잠금 파일의 설치 허용 목록과 같습니다. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| """Normalize solar and Korean lunar birth input to Gregorian local time.""" | ||
|
|
||
| from __future__ import annotations | ||
|
|
||
| from dataclasses import dataclass | ||
| from datetime import date, datetime, time | ||
| from typing import Literal | ||
|
|
||
| from korean_lunar_calendar import KoreanLunarCalendar | ||
|
|
||
|
|
||
| @dataclass(frozen=True, slots=True) | ||
| class BirthInput: | ||
| calendar: Literal["solar", "lunar"] | ||
| year: int | ||
| month: int | ||
| day: int | ||
| at: time | ||
| is_leap_month: bool = False | ||
|
|
||
|
|
||
| def normalize_birth(value: BirthInput) -> datetime: | ||
| """Return a naive Gregorian wall time for a validated birth input.""" | ||
|
|
||
| if value.calendar == "solar": | ||
| if value.is_leap_month: | ||
| raise ValueError("양력에는 윤달을 지정할 수 없습니다") | ||
| try: | ||
| solar_date = date(value.year, value.month, value.day) | ||
| except ValueError as error: | ||
| raise ValueError("유효하지 않은 양력 날짜입니다") from error | ||
| return datetime.combine(solar_date, value.at) | ||
|
|
||
| converter = KoreanLunarCalendar() | ||
| if not converter.setLunarDate( | ||
| value.year, | ||
| value.month, | ||
| value.day, | ||
| value.is_leap_month, | ||
| ): | ||
| raise ValueError("지원하지 않거나 존재하지 않는 한국 음력·윤달 날짜입니다") | ||
| return datetime( | ||
| converter.solarYear, | ||
| converter.solarMonth, | ||
| converter.solarDay, | ||
| value.at.hour, | ||
| value.at.minute, | ||
| value.at.second, | ||
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.