Skip to content

Commit 0efa2c4

Browse files
authored
Merge pull request #362 from cipherstash/docs/add-changelog
docs: add CHANGELOG.md and release documentation guidelines
2 parents e9d037c + 8effe72 commit 0efa2c4

File tree

2 files changed

+293
-1
lines changed

2 files changed

+293
-1
lines changed

CHANGELOG.md

Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
# Changelog
2+
3+
All notable changes to CipherStash Proxy will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6+
7+
## [Unreleased]
8+
9+
## [2.1.20] - 2026-01-29
10+
11+
### Added
12+
13+
- **Slow statement logging**: Enable with `CS_LOG__SLOW_STATEMENTS=true` to log detailed timing breakdowns when queries exceed a configurable threshold (default 2 seconds). Includes breakdown of parse, encrypt, server wait, and decrypt phases.
14+
- **Prometheus slow statement counter**: New `cipherstash_proxy_slow_statements_total` metric increments when slow statements are detected.
15+
- **Prometheus histogram labels**: Duration histograms now include `statement_type`, `protocol`, `mapped`, and `multi_statement` labels for granular performance analysis.
16+
- **Term filters for STE-VEC indexes**: Support for `term_filters` configuration in `eql_v2.add_search_config()`, enabling case-insensitive JSONB queries with the `downcase` filter.
17+
18+
### Changed
19+
20+
- Updated `cipherstash-client` to v0.32.2.
21+
- GitHub Actions jobs now timeout after 30 minutes.
22+
- ARM64 builds migrated to Blacksmith runners.
23+
24+
## [2.1.9] - 2026-01-10
25+
26+
### Added
27+
28+
- Encryption sanity checks for improved error detection.
29+
- Developer documentation updates.
30+
31+
### Changed
32+
33+
- Updated `cipherstash-client` to v0.31.1.
34+
35+
## [2.1.8] - 2025-12-15
36+
37+
### Changed
38+
39+
- Refactored EQL encryption logic.
40+
- JSONB containment operator transformation improvements.
41+
- Testing across multiple PostgreSQL versions.
42+
43+
## [2.1.7] - 2025-11-27
44+
45+
### Added
46+
47+
- Security documentation.
48+
49+
### Changed
50+
51+
- Improved ZeroKMS error handling.
52+
- Database connection CLI arguments now optional.
53+
54+
## [2.1.6] - 2025-09-05
55+
56+
### Fixed
57+
58+
- Accurate cipher cache sizing.
59+
- JSONB encrypted type protocol fixes.
60+
61+
### Changed
62+
63+
- Module restructuring.
64+
65+
## [2.1.5] - 2025-08-21
66+
67+
### Added
68+
69+
- `SET` command for `keyset_id` configuration.
70+
- Configurable cipher caching using async Moka.
71+
72+
## [2.1.4] - 2025-08-08
73+
74+
### Changed
75+
76+
- Updated EQL to v2.1.8.
77+
78+
## [2.1.3] - 2025-08-01
79+
80+
### Added
81+
82+
- Helm chart support.
83+
- JSONB operator integration tests.
84+
- Comprehensive proxy/EQL showcase crate.
85+
86+
## [2.1.2] - 2025-07-16
87+
88+
### Fixed
89+
90+
- Common Table Expression (CTE) table resolution in EQL mapper.
91+
92+
## [2.1.1] - 2025-07-15
93+
94+
### Added
95+
96+
- JSON indexing for EQL v2.
97+
- Prometheus metrics collection.
98+
- Multiple integration test frameworks.
99+
100+
## [2.0.10] - 2025-06-26
101+
102+
### Added
103+
104+
- `SET` command to disable mapping.
105+
106+
## [2.0.9] - 2025-06-20
107+
108+
### Changed
109+
110+
- Upgraded container base image to Ubuntu 25.10.
111+
- Updated sqltk dependency to v0.10.0.
112+
113+
## [2.0.8] - 2025-06-18
114+
115+
### Added
116+
117+
- Version string sent to ZeroKMS/CTS requests.
118+
119+
### Fixed
120+
121+
- Type-related issues in sqlparser.
122+
123+
### Changed
124+
125+
- Release workflow now triggers on release events.
126+
127+
## [2.0.7] - 2025-06-12
128+
129+
### Added
130+
131+
- Language-specific tests in integration suite.
132+
- PostgreSQL custom and domain type identifier handling.
133+
134+
### Fixed
135+
136+
- Docker image build processes in GitHub Actions.
137+
138+
## [2.0.6] - 2025-06-09
139+
140+
### Added
141+
142+
- TLS and Docker configuration documentation.
143+
- Expanded test coverage for order and group operations.
144+
145+
### Changed
146+
147+
- URL encoding for usernames in Docker entrypoint.
148+
- Preference for CRN over workspace_id and region.
149+
150+
### Removed
151+
152+
- Order and group transformers.
153+
154+
## [2.0.5] - 2025-05-27
155+
156+
### Fixed
157+
158+
- Cache usage in release artifact building.
159+
160+
## [2.0.4] - 2025-05-26
161+
162+
### Added
163+
164+
- OIDC support.
165+
166+
### Fixed
167+
168+
- Special character handling in database configuration.
169+
- "Insufficient data left in message" errors with null values.
170+
171+
## [2.0.3] - 2025-05-26
172+
173+
### Fixed
174+
175+
- Tests now ignore `CS_` environment variables during configuration validation.
176+
177+
### Changed
178+
179+
- Added environment debugging to AWS Marketplace release workflow.
180+
181+
## [2.0.2] - 2025-05-22
182+
183+
### Added
184+
185+
- Multi-platform Docker image builds.
186+
187+
### Changed
188+
189+
- Updated EQL to v2.0.1.
190+
191+
## [2.0.1] - 2025-05-21
192+
193+
### Added
194+
195+
- Encryption configuration validation.
196+
- pgbench performance testing integration.
197+
- ZeroKMS and CTS host configuration options.
198+
- `GROUP BY` SQL transformations.
199+
- EQL v2 decryption support.
200+
- Enhanced column configuration verification.
201+
202+
### Fixed
203+
204+
- Connection termination messaging.
205+
206+
### Changed
207+
208+
- Upgraded to Rust 1.86.0 compatibility.
209+
- Upgraded sqltk to v0.8.0.
210+
211+
## [2.0.0] - 2025-03-27
212+
213+
### Added
214+
215+
- Initial release of CipherStash Proxy.
216+
- Transparent proxy for PostgreSQL with automatic encryption/decryption.
217+
- Support for queries over encrypted values (equality, comparison, ordering).
218+
- Docker container deployment.
219+
- Integration with CipherStash ZeroKMS.
220+
- Encrypt Query Language (EQL) for indexing and searching encrypted data.
221+
222+
[Unreleased]: https://github.com/cipherstash/proxy/compare/v2.1.20...HEAD
223+
[2.1.20]: https://github.com/cipherstash/proxy/releases/tag/v2.1.20
224+
[2.1.9]: https://github.com/cipherstash/proxy/releases/tag/v2.1.9
225+
[2.1.8]: https://github.com/cipherstash/proxy/releases/tag/v2.1.8
226+
[2.1.7]: https://github.com/cipherstash/proxy/releases/tag/v2.1.7
227+
[2.1.6]: https://github.com/cipherstash/proxy/releases/tag/v2.1.6
228+
[2.1.5]: https://github.com/cipherstash/proxy/releases/tag/v2.1.5
229+
[2.1.4]: https://github.com/cipherstash/proxy/releases/tag/v2.1.4
230+
[2.1.3]: https://github.com/cipherstash/proxy/releases/tag/v2.1.3
231+
[2.1.2]: https://github.com/cipherstash/proxy/releases/tag/v2.1.2
232+
[2.1.1]: https://github.com/cipherstash/proxy/releases/tag/v2.1.1
233+
[2.0.10]: https://github.com/cipherstash/proxy/releases/tag/v2.0.10
234+
[2.0.9]: https://github.com/cipherstash/proxy/releases/tag/v2.0.9
235+
[2.0.8]: https://github.com/cipherstash/proxy/releases/tag/v2.0.8
236+
[2.0.7]: https://github.com/cipherstash/proxy/releases/tag/v2.0.7
237+
[2.0.6]: https://github.com/cipherstash/proxy/releases/tag/v2.0.6
238+
[2.0.5]: https://github.com/cipherstash/proxy/releases/tag/v2.0.5
239+
[2.0.4]: https://github.com/cipherstash/proxy/releases/tag/v2.0.4
240+
[2.0.3]: https://github.com/cipherstash/proxy/releases/tag/v2.0.3
241+
[2.0.2]: https://github.com/cipherstash/proxy/releases/tag/v2.0.2
242+
[2.0.1]: https://github.com/cipherstash/proxy/releases/tag/v2.0.1
243+
[2.0.0]: https://github.com/cipherstash/proxy/releases/tag/v2.0.0

CLAUDE.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,53 @@ mise run build:binary --target aarch64-unknown-linux-gnu
178178
mise run build:docker --platform linux/arm64
179179
```
180180

181-
The build system supports cross-compilation from macOS to Linux using MaterializeInc/crosstools.
181+
The build system supports cross-compilation from macOS to Linux using MaterializeInc/crosstools.
182+
183+
## Release Documentation
184+
185+
### Changelog
186+
187+
The project maintains a `CHANGELOG.md` following [Keep a Changelog](https://keepachangelog.com/) format. When making changes that are user-facing or notable, update the changelog:
188+
189+
1. Add entries under an `## [Unreleased]` section at the top
190+
2. Use appropriate subsections: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`
191+
3. Write entries from the user's perspective, not implementation details
192+
4. When a release is cut, rename `[Unreleased]` to the version number and date
193+
194+
Example entry:
195+
```markdown
196+
## [Unreleased]
197+
198+
### Added
199+
200+
- **Feature name**: Brief description of what users can now do.
201+
202+
### Fixed
203+
204+
- Description of bug that was fixed.
205+
```
206+
207+
### Release Announcements
208+
209+
For significant releases, write an `ANNOUNCEMENT.md` for the GitHub Discussions page:
210+
211+
1. **Title**: `CipherStash Proxy X.Y.Z Released - Brief Feature Summary`
212+
2. **Structure**:
213+
- Opening paragraph summarizing the release
214+
- H2 sections for each major feature with examples
215+
- Configuration tables where applicable
216+
- Code examples (SQL, JSON, PromQL as relevant)
217+
- "Other Changes" section for minor updates
218+
- "Upgrade" section linking to the releases page
219+
3. **Callouts**: Use GitHub callout syntax for important notes:
220+
```markdown
221+
> [!NOTE]
222+
> Helpful context or clarification.
223+
224+
> [!TIP]
225+
> Recommended best practices.
226+
227+
> [!IMPORTANT]
228+
> Critical information users must know.
229+
```
230+
4. After copying content to GitHub Discussions, delete `ANNOUNCEMENT.md` from the repo

0 commit comments

Comments
 (0)