Skip to content

Commit c25bcf5

Browse files
committed
Merge branch 'development' into staging
2 parents 915772c + 6401cc7 commit c25bcf5

13 files changed

Lines changed: 2474 additions & 152 deletions

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# SCM syntax highlighting & preventing 3-way merges
2+
pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,6 @@ dmypy.json
132132
.idea
133133
webapp/config.py
134134
keys/
135+
# pixi environments
136+
.pixi/*
137+
!.pixi/config.toml

GEMINI.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Project Context: PinchMe
2+
**Gatekeeper** is an EDI (Environmental Data Initiative) data repository reverse proxy.
3+
4+
## 1. Core Environment & Constraints
5+
- **Package Manager:** Pixi (Conda-based). Never use `pip` or `conda` directly.
6+
- **Python Version:** 3.14.x (Strictly enforced).
7+
- **Shell:** Fish Shell. All terminal commands must use Fish syntax (e.g., `set -x` instead of `export`).
8+
- **Linter/Formatter:** Ruff (configured for Python 3.14 compatibility).
9+
10+
## 2. Mandatory Workflow (Pixi Tasks)
11+
Before considering a task "done," you must execute the following via `pixi run`:
12+
- `pixi run format`: To apply Ruff formatting.
13+
- `pixi run check`: To perform linting and automatic fixes.
14+
- `pixi run test`: To verify logic in the `tests/` directory.
15+
16+
## 3. Python Development Standards
17+
- **Version:** Target **Python 3.14+** (specifically `3.14` as per pixi config).
18+
- **Typing:** Strict type hints are mandatory for all function signatures. Use modern pipe syntax for unions (e.g., `str | None`).
19+
- **Naming:** `snake_case` for variables/functions, `PascalCase` for classes.
20+
21+
## 4. Testing & Validation
22+
- **Test Runner:** Use `pytest` via `pixi run test`.
23+
- **Workflow:** 1. For bug fixes, create a reproduction test in `tests/` first.
24+
2. Run `pixi run check` and `pixi run test` before declaring a task "done."
25+
- **CLI Testing:** The main entry point is `pinchme`. Test changes using `pixi run run`.
26+
-
27+
## 5. Git Workflow
28+
- **Git** Never perform a git pull, add, or commit - leave this to the developer.
29+
- **GitHub** Never push to GitHub directly - leave this to the developer.
30+
- Commit messages should use the following structure:
31+
- "Summary:" - A brief description of the commit.
32+
- "Context:" - The purpose or background of the commit.
33+
- "Changes:" - The specific changes made to the codebase.
34+
- Display of Gemini generated commit message should not include line numbers.
35+
- Commit messages should include the following at the very bottom of the messate: "Co-authored-by: Gemini CLI <gemini-cli@google.com>"

VERSION.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.0.0

changelog.md

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# Gatekeeper change log
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## (1.0.0) 2026-04-27
8+
### Added/Changed/Fixed
9+
- Remove use of legacy PASTA auth-token from all code, rely only the edi-token.
10+
11+
## (0.37.0) 2026-04-14
12+
### Added/Changed/Fixed
13+
- Remove auth-token from token refresh.
14+
15+
## (0.36.0) 2026-04-09
16+
### Added/Changed/Fixed
17+
- Convert project to use pixi.
18+
- Remove auth_token as a required object in authentication flow.
19+
- Optimization of authentication code.
20+
- Edi-token refresh only when token is older than 1 hour.
21+
22+
## (0.35.0) 2026-03-15
23+
### Added/Changed/Fixed
24+
- Fix payload key name.
25+
- Replace local api key with Config.TEST_API_KEY.
26+
27+
## (0.34.0) 2025-11-27
28+
### Added/Changed/Fixed
29+
- Add CORS header when none exist from PASTA #15.
30+
- Remove NGINX CORS header and replace with only from Gatekeeper where testing for their presence is possible.
31+
32+
## (0.33.0) 2025-11-12
33+
### Added/Changed/Fixed
34+
- Catch IAMResponseError when invalid key is provided.
35+
- Add support for API Key to token.
36+
37+
## (0.32.0) 2025-09-23
38+
### Added/Changed/Fixed
39+
- Fix set-cookie header construction when multiple cookies exist #14.
40+
41+
## (0.31.0) 2025-09-22
42+
### Added/Changed/Fixed
43+
- Change edi_token reference from "token" to "edi-token".
44+
45+
## (0.30.0) 2025-09-21
46+
### Added/Changed/Fixed
47+
- Add X-New-Auth-Token header for javascript support of tokens.
48+
49+
## (0.29.0) 2025-09-20
50+
### Added/Changed/Fixed
51+
- Add OPTIONS to allowed type of inbound request actions.
52+
53+
## (0.28.0) 2025-09-08
54+
### Added/Changed/Fixed
55+
- Add iam-lib for interacting with EDI IAM service.
56+
57+
## (0.27.0) 2025-09-01
58+
### Added/Changed/Fixed
59+
- Change request body to streaming request body to support large data uploads.
60+
- Use raw path in lieu of constructed path.
61+
62+
## (0.26.0) 2025-08-30
63+
### Added/Changed/Fixed
64+
- Remove path cleaning of double slashes (critical for path parameters that include full URLs).
65+
66+
## (0.25.0) 2025-08-24
67+
### Added/Changed/Fixed
68+
- Force creation of EDI IAM public access user if EDI Token does not exist.
69+
70+
## (0.24.0) 2025-08-17
71+
### Added/Changed/Fixed
72+
- Catch httpx.HTTPError when attempting to create public edi-token.
73+
74+
## (0.23.0) 2025-08-07
75+
### Added/Changed/Fixed
76+
- Remove Java artifact (semicolon).
77+
78+
## (0.22.0) 2025-07-31
79+
### Added/Changed/Fixed
80+
- Add Public EDI TOKEN for all public requests (#13).
81+
- Add EDI key for creating a token.
82+
- Add pytest-asyncio to package suite.
83+
84+
## (0.21.0) 2025-07-11
85+
### Added/Changed/Fixed
86+
- Add comment "Make internal token" from external auth-token.
87+
88+
## (0.20.0) 2025-07-03
89+
### Added/Changed/Fixed
90+
- Fix regression on audit filter.
91+
92+
## (0.19.0) 2025-06-30
93+
### Added/Changed/Fixed
94+
- Use EDI-Token.
95+
96+
## (0.18.0) 2025-06-27
97+
### Added/Changed/Fixed
98+
- Set response content argument explicit.
99+
100+
## (0.17.0) 2025-06-26
101+
### Added/Changed/Fixed
102+
- Consolidate FastAPI APIrouter decorators for both package and audit filters (#12).
103+
- Authentication by auth-token should remove external token from inner PASTA call (#10).
104+
- Fix regression on authentication by auth-token.
105+
- make_request_headers should only return new request headers (#11).
106+
- Make function arguments explicitly kwargs.
107+
108+
## (0.16.0) 2025-06-19
109+
### Added/Changed/Fixed
110+
- Refactor test for local CA bundle.
111+
- Fix property name from CAFILE to CA_FILE.
112+
113+
## (0.15.0) 2025-06-18
114+
### Added/Changed/Fixed
115+
- Reformat code for easier reading.
116+
- Add support for local CA file (#9).
117+
118+
## (0.14.0) 2025-02-03
119+
### Added/Changed/Fixed
120+
- Fix 500 response when downloading zip archive of data package with many entities (#8).
121+
122+
## (0.13.0) 2025-02-02
123+
### Added/Changed/Fixed
124+
- Add GoogleOther to robot filter list.
125+
126+
## (0.12.0) 2024-09-05
127+
### Added/Changed/Fixed
128+
- Improve exception handling (#7).
129+
130+
## (0.11.0) 2024-08-24
131+
### Added/Changed/Fixed
132+
- Replace absolute log path with placeholder.
133+
- Fix broken daiquiri log path.
134+
- Update gatekeeper.service file to include default user/group/workingdir/env.
135+
- Update logging path and level.
136+
137+
## (0.10.0) 2023-05-19
138+
### Added/Changed/Fixed
139+
- Add None test for user-agent.
140+
- Test for and support non-existent User-Agent request header (#5).
141+
142+
## (0.9.0) 2023-05-07
143+
### Added/Changed/Fixed
144+
- Support for HTTP HEAD verb in both package and audit (#4).
145+
146+
## (0.8.0) 2023-04-18
147+
### Added/Changed/Fixed
148+
- Change query parameter from dict to str (#3).
149+
150+
## (0.7.0) 2023-04-12
151+
### Added/Changed/Fixed
152+
- Add proxy timeout setting and exception handling for request.
153+
154+
## (0.6.0) 2023-04-10
155+
### Added/Changed/Fixed
156+
- Add Anthill to robot pattern.
157+
- Reformat service section to single command per line.
158+
- Remove static domain names and localhost IP.
159+
- Add logrotate configuration.
160+
- Remove hostname:port for package and audit targets.
161+
162+
## (0.5.0) 2023-04-06
163+
### Added/Changed/Fixed
164+
- Fix incorrect path to home directory.
165+
- Add service endpoint definitions.
166+
- Add STATIC constant.
167+
- Move resource into webapp directory.
168+
- Add query params for all verbs.
169+
170+
## (0.4.0) 2023-04-05
171+
### Added/Changed/Fixed
172+
- Move web specific files to webapp directory.
173+
174+
## (0.3.0) 2023-04-04
175+
### Added/Changed/Fixed
176+
- Edit README.
177+
- Fix missing config.py path.
178+
- Add deployment specification files.
179+
- Add qualifier to log messages.
180+
- Add logging level configuration.
181+
182+
## (0.2.0) 2023-04-03
183+
### Added/Changed/Fixed
184+
- Rename from test_bot_matcher to test_robots.
185+
- Add make request/response headers.
186+
- Add configuration template.
187+
- Add file reader for robot patterns in init.
188+
- Fix cookie/set-cookie issue; add robot filter and test for robot filter.
189+
- Add robot pattern regex text file.
190+
- Correct request cookie header name.
191+
192+
## (0.1.0) 2023-03-29
193+
### Added/Changed/Fixed
194+
- Add favicon.
195+
196+
## (0.0.0) 2023-03-27
197+
### Added/Changed/Fixed
198+
- Initial commit.

0 commit comments

Comments
 (0)