Logs das Ações

Esta é uma API de registro de ações e operações realizadas na aplicação

Listar as ações/operações realizadas

API de listagem de ações/operações paginadas. Ver documentação de paginação.

GET /api/audit/logs
GET /api/audit/logs?cursor=0&size=15

Exemplo de requisição

GET /api/audit/logs HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.audit.types import GetActionLogsPagesRequest

request = GetActionLogsPagesRequest(cursor=0, size=15)
pages = sdk.audit.get_action_logs_pages(request)
print(response.payload)
const response = sdk.audit.getActionLogs();
const response = pages.next();
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "cursor": {"current": 0, "next": null, "previous": null},
  "action_logs": [
    {
      "datetime": "2019-01-09T11:50:00-02:00",
      "source_ip": "214.188.12.152",
      "consumer_id": "user:1",
      "module": "auth",
      "target_type": "users",
      "target_id": "3",
      "target_desc": "User03",
      "action": "create",
      "payload": {
        "username": "User03",
        "email": "user03@gmail.com",
        "fullname": "User 03 Test",
        "superuser": true,
        "roles": []
      }
    },
    {
      "datetime": "2020-01-09T11:50:00-02:00",
      "source_ip": "200.100.12.152",
      "consumer_id": "user:5",
      "module": "auth",
      "target_type": "users",
      "target_id": "3",
      "target_desc": "User05",
      "action": "update",
      "payload": {
        "username": "User05",
        "email": "user05@gmail.com",
        "fullname": "User 05 Test",
        "superuser": false,
        "roles": []
      }
    },
    {
      "datetime": "2019-05-09T11:50:00-02:00",
      "source_ip": "192.168.47.130",
      "consumer_id": "user:3",
      "module": "firewall",
      "target_type": "rules",
      "target_id": "9",
      "target_desc": "Firewall Rule 09",
      "action": "delete",
      "payload": {}
      }
    }
  ],
}
[
  ActionLogs(
    datetime="2019-01-09T11:50:00-02:00",
    source_ip="214.188.12.152",
    consumer_id="user:1",
    module="auth",
    target_type="users",
    target_id="3",
    target_desc="User03",
    action="create",
    payload={
      "username"="User03",
      "email"="user03@gmail.com",
      "fullname"="User 03 Test",
      "superuser"=False,
      "roles"=[]
    }
  ),
  ActionLogs(
    datetime="2020-01-09T11:50:00-02:00",
    source_ip="200.100.12.152",
    consumer_id="user:5",
    module="auth",
    target_type="users",
    target_id="3",
    target_desc="User05",
    action="update",
    payload={
      "username"="User05",
      "email"="user05@gmail.com",
      "fullname"="User 05 Test",
      "superuser"=True,
      "roles"=[]
    }
  ),
  ActionLogs(
    datetime="2019-05-09T11:50:00-02:00",
    source_ip="192.168.47.130",
    consumer_id="user:3",
    module="firewall",
    target_type="rules",
    target_id="9",
    target_desc="Firewall Rule 09",
    action="delete",
    payload={}
  )
]
[
  {
    datetime: "2019-01-09T11:50:00-02:00",
    sourceIp: "214.188.12.152",
    consumerId: "user:1",
    module: "auth",
    targetType: "users",
    targetId: "3",
    targetDesc: "User03",
    action: "create",
    payload: {
      username: "User03",
      email: "user03@gmail.com",
      fullname: "User 03 Test",
      superuser: false,
      roles: []
    }
  },
  {
    datetime: "2020-01-09T11:50:00-02:00",
    sourceIp: "200.100.12.152",
    consumerId: "user:5",
    module: "auth",
    targetType: "users",
    targetId: "3",
    targetDesc: "User05",
    action: "update",
    payload: {
      username: "User05",
      email: "user05@gmail.com",
      fullname: "User 05 Test",
      superuser: true,
      roles: []
    }
  },
  {
    datetime: "2019-05-09T11:50:00-02:00",
    sourceIp: "192.168.47.130",
    consumerId: "user:3",
    module: "firewall",
    targetType: "rules",
    targetId: "9",
    targetDesc: "Firewall Rule 09",
    action: "delete",
    payload: {}
  }
];

Buscar ações/operações de um item

API para buscar as ações/operações realizadas em um item

GET /api/audit/logs/targets/module/target_type/target_id

Serão listadas todas as operações que foram realizadas (por qualquer usuário) no item selecionado

Exemplo de requisição

GET /api/audit/logs/targets/auth/users/3 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.audit.types import GetTargetActionLogsRequest

request = GetTargetActionLogsRequest(module="auth", target_type="users", target_id="3")
response = sdk.audit.get_target_action_logs(request)
print(response.payload)

const response = sdk.audit.GetTargetActionLogs({ module="auth", targetType="users", targetId: "3" });
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "action_logs": [
    {
      "datetime": "2019-01-09T11:50:00-02:00",
      "source_ip": "214.188.12.152",
      "consumer_id": "user:1",
      "module": "auth",
      "target_type": "users",
      "target_id": "3",
      "target_desc": "User03",
      "action": "create",
      "payload": {
        "username": "User03",
        "email": "user03@gmail.com",
        "fullname": "User 03 Test",
        "superuser": true,
        "roles": []
      }
    },
    {
      "datetime": "2020-01-09T11:50:00-02:00",
      "source_ip": "200.100.12.152",
      "consumer_id": "user:5",
      "module": "auth",
      "target_type": "users",
      "target_id": "3",
      "target_desc": "User05",
      "action": "update",
      "payload": {
        "username": "User05",
        "email": "user05@gmail.com",
        "fullname": "User 05 Test",
        "superuser": false,
        "roles": []
      }
    }
  ]
}
[
  ActionLogs(
    datetime="2019-01-09T11:50:00-02:00",
    source_ip="214.188.12.152",
    consumer_id="user:1",
    module="auth",
    target_type="users",
    target_id="3",
    target_desc="User03",
    action="create",
    payload={
      "username"="User03",
      "email"="user03@gmail.com",
      "fullname"="User 03 Test",
      "superuser"=False,
      "roles"=[]
    }
  ),
  ActionLogs(
    datetime="2020-01-09T11:50:00-02:00",
    source_ip="200.100.12.152",
    consumer_id="user:5",
    module="auth",
    target_type="users",
    target_id="3",
    target_desc="User05",
    action="update",
    payload={
      "username"="User05",
      "email"="user05@gmail.com",
      "fullname"="User 05 Test",
      "superuser"=True,
      "roles"=[]
    }
  )
]
[
  {
    datetime: "2019-01-09T11:50:00-02:00",
    sourceIp: "214.188.12.152",
    consumerId: "user:1",
    module: "auth",
    targetType: "users",
    targetId: "3",
    targetDesc: "User03",
    action: "create",
    payload: {
      username: "User03",
      email: "user03@gmail.com",
      fullname: "User 03 Test",
      superuser: false,
      roles: []
    }
  },
  {
    datetime: "2020-01-09T11:50:00-02:00",
    sourceIp: "200.100.12.152",
    consumerId: "user:5",
    module: "auth",
    targetType: "users",
    targetId: "3",
    targetDesc: "User05",
    action: "update",
    payload: {
      username: "User05",
      email: "user05@gmail.com",
      fullname: "User 05 Test",
      superuser: true,
      roles: []
    }
  }
];

Buscar operações para os filtros

API para buscar as opções de filtros para module, `target_typeeconsumer

GET /api/audit/params

Serão listadas as opções de filtros

Exemplo de requisição

GET /api/audit/params HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.audit.get_params()
print(response.payload)

const response = sdk.audit.GetParams();
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "modules": [
    "name": "ipsec",
    "target_types": [
      "connection"
    ],
    "actions": [
      "create",
      "update",
      "delete",
    ]
  ],
  "consumers": [{"id": "user:1", "name: "user1"}],
  "source_ips": ["192.168.0.20"]
}
ActionLogParams(
    modules=Module(
        name="ipsec",
        target_types=["connection"],
        actions=["create", "update", "delete"],
    ),
    consumers=[
        Consumer(
          id="user:1",
          name="user1",
      )
    ],
    source_ips=["192.168.0.20"]
)
{
  modules: [
    {
      name: "ipsec",
      targetTypes: ["connection",],
      actions: ["create", "update", "delete"],
    }
  ],
  consumers: [
    {
      id: "user:1", name: "user1",
    }
  ],
  sourceIps=["192.168.0.20"],
};

Parâmetros de consulta

É possível passar alguns filtros para a API, permitindo visualizar as ações realizadas de forma mais específica de acordo com o objetivo. Todos os filtros possíveis de serem utilizados, podem ser visualizados abaixo:

  • datetime
  • source_ip
  • consumer
  • module
  • target_type
  • action

Podem ser utilizamos todos os filtros em conjunto, como também é possível utilizar apenas alguns deles.

GET /api/audit/logs?source_ip=“214.188.12.152”&consumer=“user:1”&module=“auth”&target_type=“users”&action=“create”

Exemplo de requisição

GET /api/audit/logs?source_ip="214.188.12.152"&consumer="user:1"&module="auth"&target_type="users"&action="create" HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.audit.types import GetActionLogsPagesRequest

request = GetActionLogsPagesRequest(
  source_ip="214.188.12.152",
  consumer="user:1",
  module="auth",
  target_type="users",
  action="create"
)
pages = sdk.audit.get_action_logs_pages(request)
print(response.payload)
const response = sdk.audit.getActionLogs({
  sourceIp: "214.188.12.152",
  consumer: "user:1",
  module: "auth",
  targetType: "users",
  action: "create"
});
const response = pages.next();
console.log(response.payload);

Formato dos dados

Parâmetros da url

Campo Descrição
module string

Produto/módulo ao qual pertence o item que foi alvo da ação/operação realizada

target_type string

Tipo do item que foi alvo da ação/operação realizada

target_id string

Idendificador do item que foi alvo da ação/operação realizada

Resposta

Campo Descrição
datetime string

Data e hora da ação/operação

source_ip string

IP de origem da ação/operação

consumer_id string

Identificador do usuário que realizou a ação/operação

module string

Produto/módulo no qual a ação/operação foi realizada

target_type string

Tipo do item que sofreu a ação/operação

target_id int

Identificador do elemento no qual foi realizada a ação/operação

target_desc string

Descrição/informação do elemento no qual foi realizada a ação/operação

action string

Ação realizada

payload string

Dados/informações do item que sofreu a ação/operação