Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
38 changes: 38 additions & 0 deletions .github/workflows/validate-pr-title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: "Validate PR Title"

on:
pull_request:
types: [ opened, edited, reopened, ready_for_review, synchronize ]

jobs:
validate-pr-title:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write

steps:
- name: Check PR title format
shell: bash
run: |
TITLE="${{ github.event.pull_request.title }}"
echo "PR title: $TITLE"

# Skip validation for renovate
if [[ "$TITLE" == *"chore(deps)"* ]]; then
echo "⚠️ Skipping validation for renovate Prs."
exit 0
fi

# Regex for:
# [category/subcategory] type(scope?): description (#123?)
PATTERN='^\[([a-z]+(/[a-z]+)*)\] (feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)(\([a-z]+\))?: [a-z].*( \(#[0-9]+\))$'

if [[ ! "$TITLE" =~ $PATTERN ]]; then
echo "❌ Invalid PR title."
echo "Required format:"
echo "[category] type(scope?): description (#123)"
exit 1
fi

echo "✅ PR title is valid."
9 changes: 6 additions & 3 deletions docs/administration/policies.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ This page currently includes the configuration of _login messages_, with plans t
**Login Messages**
Administrators can create and manage messages that are displayed to users upon login. This feature is useful for providing important information or updates directly to users when they access the platform.
There are three types of messages:
* **Platform Login Message**: Displayed above the login form to communicate vital information or announcements.
* **Platform Consent Message**: Displayed to users during the login process. It appears as a notification that blocks access to the login form until users actively give their consent by checking an approval box. This ensures that users acknowledge and agree to certain terms or conditions before proceeding with logging in.
* **Platform Consent Confirm Text**: A message accompanying the consent box, providing clarity on the consent confirmation process.

**Platform Login Message**: Displayed above the login form to communicate vital information or announcements.

**Platform Consent Message**: Displayed to users during the login process. It appears as a notification that blocks access to the login form until users actively give their consent by checking an approval box. This ensures that users acknowledge and agree to certain terms or conditions before proceeding with logging in.

**Platform Consent Confirm Text**: A message accompanying the consent box, providing clarity on the consent confirmation process.

These messages can be customized to fit the organization's specific needs and requirements, ensuring that critical information is communicated effectively to users.

Expand Down
12 changes: 6 additions & 6 deletions docs/development/collectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ them against injected expectations in OpenAEV.

Note that while this guide puts an emphasis on the Python language, a collector may be implemented in any language
because it communicates with the OpenAEV server via its REST API. However, Filigran provides an official implementation
of a REST client for the OpenAEV API, in python: PyOBAS.
of a REST client for the OpenAEV API, in python: PyOAEV.

In this guide, we will use [PyOBAS](https://pypi.org/project/pyobas/), the official OpenAEV API client for Python. The guide requires a basic understanding
In this guide, we will use [PyOAEV](https://pypi.org/project/pyoaev/), the official OpenAEV API client for Python. The guide requires a basic understanding
of the Python language, and a working Python install on the development machine.

### High level overview
Expand All @@ -25,10 +25,10 @@ expectations from within the OpenAEV system.

![High level process overview](assets/high-level-collector-overview.png)

This would translate to this partially-pseudo code, using PyOBAS (some functions omitted for brevity):
This would translate to this partially-pseudo code, using PyOAEV (some functions omitted for brevity):
```python
from pyobas.daemons import CollectorDaemon
from pyobas.configuration import Configuration
from pyoaev.daemons import CollectorDaemon
from pyoaev.configuration import Configuration

# this is where the whole of the collector logic needs
# to be implemented.
Expand Down Expand Up @@ -145,4 +145,4 @@ You may find reference implementations in the OpenAEV Collectors repository:
* [Microsoft Sentinel](https://github.com/OpenAEV-Platform/collectors/tree/main/microsoft-sentinel)

You might find them useful to find inspiration on how to implement a matching logic against your EDR or SIEM
of choice, using PyOBAS.
of choice, using PyOAEV.
2 changes: 1 addition & 1 deletion docs/development/injectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ internally to access the parameter values.

!!! note "🐍 Python-based injectors"

For injectors created with the Python language, Filigran maintains the [`pyobas` library](https://pypi.org/project/pyobas/)
For injectors created with the Python language, Filigran maintains the [`pyoaev` library](https://pypi.org/project/pyoaev/)
which provides a wealth of utility classes to compose a functional contract.

Note however that injectors are typically independent processes communicating with OpenAEV via a network transport,
Expand Down