• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pomerium / pomerium / 17307291904
52%

Build:
DEFAULT BRANCH: main
Ran 28 Aug 2025 08:41PM UTC
Jobs 1
Files 540
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Aug 2025 08:34PM UTC coverage: 53.901% (+0.5%) from 53.41%
17307291904

push

github

web-flow
core: on-disk databroker storage (#5774)

## Summary
This adds a new `file` databroker storage provider that stores data
on-disk. The DSN format is: `file:///path/to/file`.

This storage provider is implemented with a pebble key-value store.
Pebble implements a global, sorted collection of key-value pairs. We
break up the databroker storage into various "key spaces". Each key
space is distinguished via a single-byte prefix. All the keys for that
key space will have the same prefix.

- `Lease`: used to implement distributed locking: key is the lease name,
value is the lease id and the expires at timestamp.
- `Metadata`: metadata about the store: server version and migration
version.
  - The server version is randomly generated for an empty database. 
  - Migrations are used for future changes to the on-disk format.
- `Options`: options for a record type: key is the record type, value is
the protobuf-encoded options.
- Options are currently only used to set a capacity limit for a record
type (for example for events).
- `RecordChange`: each record as they are updated: key is the version,
value is the protobuf-encoded record.
- Record changes are like a write-ahead log. They are used by clients
via the `Sync` call to receive changes as they are made.
- In addition to `Put`s, `Delete`s are also stored as record changes.
(tombstones)
- `RecordChangeIndexByType`: an index of record type to version: key is
the record type + the version, value is nil.
- This index allows us to implement `Sync` with a record type filter
efficiently.
- `Record`: the latest version of each record: key is the record type +
the record id, value is the protobuf-encoded record.
- `RecordIndexByTypeVersion`: an index of record type and version to
record id: key is the record type + the version, value is the record id.
  - This index is used to enforce capacity limits.
- `RegistryService`: registered services: key is kind + endpoint, value
is the expires at timestamp.
- We maintain an ... (continued)

1138 of 1708 new or added lines in 18 files covered. (66.63%)

26 existing lines in 7 files now uncovered.

25582 of 47461 relevant lines covered (53.9%)

90.2 hits per line

Uncovered Changes

Lines Coverage ∆ File
95
0.0
0.0% pkg/storage/storagetest/storagetest.go
82
75.23
pkg/storage/file/backend.go
77
79.25
pkg/storage/file/keyspaces.go
68
48.87
pkg/iterutil/errors.go
64
62.13
pkg/storage/file/pebble.go
55
64.74
pkg/storage/file/iterate.go
31
40.38
pkg/storage/file/filter.go
17
83.33
pkg/storage/file/index.go
16
0.0
pkg/storage/storagetest/benchmark.go
15
83.7
pkg/iterutil/iterutil.go
15
81.01
pkg/storage/file/encoding.go
10
0.0
0.0% internal/testutil/postgres.go
10
84.38
pkg/storage/file/registry.go
6
73.91
pkg/storage/file/migrate.go
4
0.0
0.0% pkg/pebbleutil/pebbleutil.go
3
73.99
-0.53% internal/databroker/server_backend.go
2
86.44
-2.45% internal/zero/bootstrap/source.go

Coverage Regressions

Lines Coverage ∆ File
17
85.78
-8.33% config/config_source.go
2
82.07
-1.38% pkg/grpc/databroker/syncer.go
2
95.83
-2.08% pkg/identity/manager/schedulers.go
2
83.9
-0.98% pkg/ssh/channel.go
1
0.0
0.0% pkg/pebbleutil/pebbleutil.go
1
77.37
1.53% pkg/storage/postgres/backend.go
1
75.41
0.0% pkg/storage/postgres/registry.go
Jobs
ID Job ID Ran Files Coverage
1 17307291904.1 28 Aug 2025 08:41PM UTC 540
53.9
GitHub Action Run
Source Files on build 17307291904
  • Tree
  • List 540
  • Changed 17
  • Source Changed 7
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #17307291904
  • 2f9ae599 on github
  • Prev Build on main (#17275397800)
  • Next Build on main (#17411727421)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc