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

gatewayd-io / gatewayd / 8118240630
60%

Build:
DEFAULT BRANCH: main
Ran 01 Mar 2024 11:07PM UTC
Jobs 2
Files 46
Run time 1min
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

01 Mar 2024 11:05PM UTC coverage: 58.52% (-2.2%) from 60.767%
8118240630

push

github

web-flow
Act system (#451)

This giant PR adds the very first version of the Act system that was proposed in [this proposal](https://github.com/gatewayd-io/proposals/issues/5). The old way of signaling was static and only supported a single signal: `terminate`. The new system support more signals, adds proper policies that can be easily controlled by the users and the actions are executed in sync and async mode.

The Act system consists of these components:
1. **Act Registry**: takes care of registering signals, policies and actions. It also applies policies to signals to produce outputs for actions and runs actions using those outputs.
2. **Signals**: plugins' hooks can return signal(s) as part of their request/response. These signals tell GatewayD what to do.
3. **Policies**: signals pass through predefined policies that will decide whether GatewayD should react to the signal or not.
4. **Actions**: actions run in sync or async mode and perform a function. Sync actions are used to control traffic (passthrough, terminate, etc.) and other parts of the system, and async actions can other things (log, publish a message to Kafka, etc.).
5. **Plugin Registry**: after running a hook on each plugin, the signals are extracted and the policies are applied to those signals. The output of those policy evaluations are returned to the caller, which knows how to run action and use its results.

And the code spans over two projects:
1. **GatewayD**: all the above components of the Act system are in GatewayD.
2. **SDK**: types and helper functions for creating and exporting signals are in the SDK.

### Breaking changes 
The old way of terminating requests don't work anymore, as it was refactored in #442 and all the plugins are updated to pick up the changes.

369 of 480 new or added lines in 9 files covered. (76.88%)

3582 of 6121 relevant lines covered (58.52%)

6.42 hits per line

Jobs
ID Job ID Ran Files Coverage
1 8118240630.1 01 Mar 2024 11:07PM UTC 0
58.47
GitHub Action Run
2 8118240630.2 01 Mar 2024 11:13PM UTC 0
58.29
GitHub Action Run
Source Files on build 8118240630
Detailed source file information is not available for this build.
  • Back to Repo
  • 6ccf9b70 on github
  • Prev Build on main (#8104041506)
  • Next Build on main (#8124391951)
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