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

Central audit logging #155

Open
3 tasks
dcseifert opened this issue Jul 16, 2021 · 0 comments
Open
3 tasks

Central audit logging #155

dcseifert opened this issue Jul 16, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@dcseifert
Copy link
Contributor

dcseifert commented Jul 16, 2021

Kelon should have the possibility to enable central audit logging of each decision and its context. A possible audit log entry might look like this:

[
    {
        "labels": {
            "app": "my-example-app",
            "version": "v0.13.5"
        },
        "decision_id": "4ca636c1-55e4-417a-b1d8-4aceb67960d1",
        "datastore": {
            "alias": "postgres",
            "host": "localhost",
            "database": "int"
        },
        "package": "articles",
        "input": {
            "method": "GET",
            "path": "/salary/bob",
            "accessor": {
                "configuredFieldA": "value",
                "configuredFieldB": "value"
            },
            "body": {
                "aRequestBodyField": ""
            }
        },
        "decision": "ALLOW|DENY|ERROR",
        "error": "",
        "requested_by": "[::1]:59943",
        "timestamp": "2018-01-01T00:00:00.000000Z"
    }
]

Audit logging endpoints might be a local file or a HTTP-Endpoint like i.e. FluentBit.

Configuration hints

Audit logging itself should be configurable on kelon itself as an flag/envar which represents an enum:

  • NONE (default)
  • FILE
  • HTTP

If one of (FILE/HTTP) is selected, following configs inside the kelon.yml might be possible:

configs:
  audit:
    file:
      path: <path to audit file directory>
      rotation:
        max-age: <max age of a log file (i.e.) 24h>
    http:
      host: <target host>
      port: <target port>
  labels:
    app: Kelon
    region: europe-west3
    environment: development
...
@dcseifert dcseifert added the enhancement New feature or request label Jul 16, 2021
@dcseifert dcseifert added this to the Capability test milestone Jul 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants