Skip to content
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

Road to v0.2.0 #108

Merged
merged 29 commits into from
Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9e8e163
New storage format for outputs
vruello Feb 14, 2024
59d29ae
Configure subscriptions with files, new RawJson format, ...
vruello Mar 12, 2024
95216b9
Fix clippy warnings
vruello Mar 12, 2024
55ac2ec
Update documentation
vruello Mar 12, 2024
d507fc3
Update changelog
vruello Mar 12, 2024
9dd4bd5
fix typo in conf sample
vruello Mar 13, 2024
6b0d199
Remove requirement for section logging in settings
vruello Mar 25, 2024
45a505c
Add a test to make sure that getting started settings are valid
vruello Mar 27, 2024
96e747c
Build subscription delivery address using subscription uuid instead o…
vruello Mar 26, 2024
0e857a3
Use ReferenceParameters to retrieve subscription public version and r…
vruello Mar 27, 2024
1249e8b
Fix minimal skell
vruello Mar 28, 2024
288171d
Update protocol documentation
vruello Mar 28, 2024
de7f063
Add ClientRevision and ServerRevision
vruello Mar 29, 2024
9cb0bef
Add `locale` and `data_locale` subscriptions parameters
vruello Mar 29, 2024
342b401
Upgrade hyper and tls_listener
vruello Mar 30, 2024
d967d01
Fix kerberos server
vruello Mar 30, 2024
4aa0175
Add comments
vruello Apr 2, 2024
23dcc87
Adding graceful shutdown for tls
vruello Apr 2, 2024
0044257
Add support for proxy protocol
vruello Apr 2, 2024
6bcb556
Support proxy protocol with TLS mode
vruello Apr 2, 2024
a869615
Use CancellationToken for shutdown signal
vruello Apr 4, 2024
ec602b9
Add a monitoring thread to prevent tokio runtime to be blocked
vruello Apr 5, 2024
917e25d
Fix tls test
vruello Apr 9, 2024
b1aa2da
Spawn blocking tasks for all blocking operations
vruello Apr 9, 2024
5d7226e
Use std::thread for Files driver task
vruello Apr 9, 2024
5002fc7
Logging level of monitoring thread messages
vruello Apr 18, 2024
6eda654
Update lock file
vruello Apr 18, 2024
2cabb18
Update ci
vruello Apr 29, 2024
29fa069
Update deps
vruello Apr 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 35 additions & 17 deletions .github/workflows/rust-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,50 @@ env:

jobs:
build:

runs-on: ubuntu-latest
container: rust:slim-bookworm

# see https://docs.github.com/en/actions/using-containerized-services/creating-postgresql-service-containers
# Service containers to run with `build`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432

steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends \
apt-get update && \
apt-get install -y --no-install-recommends \
libkrb5-dev \
libssl-dev
- name: Install a Postgres database (CockroachDB)
run: |
git clone https://github.com/cockroachlabs-field/docker-examples.git
cd docker-examples/example-nginx/
sh up.sh
- name: Build
run: cargo build --verbose
libssl-dev \
make \
clang \
pkgconf ;
- name: Clippy
run: cargo clippy -- -Dwarnings
run: rustup component add clippy && cargo clippy -- -Dwarnings
- name: Run tests
run: |
# Env var to connect to the Postgres docker
export POSTGRES_HOST="localhost"
export POSTGRES_PORT="26257"
export POSTGRES_USER="root"
export POSTGRES_PASSWORD=""
# Env var to connect to the Postgres service
export POSTGRES_HOST="postgres"
export POSTGRES_PORT="5432"
export POSTGRES_USER="postgres"
export POSTGRES_PASSWORD="postgres"
export POSTGRES_DBNAME="test"
cargo test --verbose
19 changes: 17 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.2.0]

### Added

- Add OpenWEC node name (if configured) in JSON format output (#2)
Expand All @@ -16,6 +18,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add a setting to configure `heartbeats_queue_size` (#37)
- Add Tls support for encryption and authentication (#36)
- Add support for output events to redis list (#45)
- Add TCP keepalive settings (with sensible defaults) in server settings (#56)
- Add support for output events to unix domain socket (#60)
- Add configuration files for subscriptions coming with two openwec cli subcommands (`subscriptions load` and `subscriptions skell`)
- Add `cli.read_only_subscriptions` setting to disable the cli features which edit subscriptions (except `subscriptions load`)
- Add `RawJson` format which enables to retrieve events in raw format while also getting the metadata added by OpenWEC
- Add the subscription revision in OpenWEC events metadata
- Add `locale` and `data_locale` subscriptions parameters
- Add support for Proxy Protocol to allow openwec to be used behind a layer 4 load
balancer whilst preserving the client IP address and port.

### Changed

Expand All @@ -26,8 +37,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **Breaking change**: Keytab file path must be specified only once for all collectors (using Kerberos authentication)
- A malformed event will no longer stop the event stream (for a computer/subscription) because formatters are not allowed to fail. In problematic cases, some work is done to try to recover the raw data of the event, and an `OpenWEC.Error` field is added (in the JSON formatter) to help catch the problem (#47)
- **Breaking change**: Split access and server logs. Configuration file format has been updated. (#52)
- Ensure that openwecd shutdowns gracefully even if hyper server is not responding
- Improve the logging of failed Kerberos authentications: missing authorization header warning is now in DEBUG level
- Ensure that openwecd shutdowns gracefully even if hyper server is not responding (#65)
- Improve the logging of failed Kerberos authentications: missing authorization header warning is now in DEBUG level (#65)
- Rework output drivers and output formats architecture
- Change the outputs storage format in database
- Rework the import/export format to enable compatibility between OpenWEC versions
- Each subscription has now two "versions": a public one sent to clients (derived from subscription parameters) and a private one used for synchronization between openwec nodes

### Fixed

Expand Down
Loading
Loading