SafeLine ACL Rules API
Access control list rules for blocking and allowing traffic
Documentation
Documentation
https://docs.waf.chaitin.com/
GettingStarted
https://docs.waf.chaitin.com/en/getting-started
Access control list rules for blocking and allowing traffic
openapi: 3.1.0
info:
title: SafeLine Management ACL Rules API
description: SafeLine Management API provides programmatic control of the SafeLine WAF (Web Application Firewall) including application/website management, security policy configuration, ACL rules, SSL certificate management, user account management, attack event analysis, and system configuration. SafeLine is an open-source self-hosted WAF built by Chaitin Technology protecting over 1 million websites with over 30 billion daily HTTP requests.
version: 2.0.0
contact:
name: Chaitin Technology
url: https://waf.chaitin.com/
license:
name: GPL-3.0
url: https://github.com/chaitin/SafeLine/blob/main/LICENSE
servers:
- url: https://{host}:9443
description: SafeLine Management API (default port 9443)
variables:
host:
default: localhost
description: SafeLine management server hostname or IP
security:
- APITokenAuth: []
tags:
- name: ACL Rules
description: Access control list rules for blocking and allowing traffic
paths:
/api/ACLRuleAPI:
get:
operationId: listAclRules
summary: List ACL Rules
description: Retrieves configured access control list rules for blocking or allowing traffic.
tags:
- ACL Rules
parameters:
- name: page
in: query
schema:
type: integer
default: 1
- name: page_size
in: query
schema:
type: integer
default: 10
responses:
'200':
description: ACL rule list
content:
application/json:
schema:
$ref: '#/components/schemas/AclRuleListResponse'
post:
operationId: createAclRule
summary: Create ACL Rule
description: Creates a new access control rule for blocking or allowing specific traffic patterns.
tags:
- ACL Rules
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAclRuleRequest'
responses:
'200':
description: ACL rule created
content:
application/json:
schema:
$ref: '#/components/schemas/AclRuleResponse'
put:
operationId: updateAclRule
summary: Update ACL Rule
description: Updates an existing access control rule.
tags:
- ACL Rules
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAclRuleRequest'
responses:
'200':
description: ACL rule updated
content:
application/json:
schema:
$ref: '#/components/schemas/AclRuleResponse'
delete:
operationId: deleteAclRule
summary: Delete ACL Rule
description: Deletes an access control rule.
tags:
- ACL Rules
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: integer
responses:
'200':
description: Rule deleted
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
/api/ACLWhiteListAPI:
get:
operationId: listAclWhitelist
summary: List ACL Whitelist
description: Retrieves IP addresses and patterns in the ACL whitelist.
tags:
- ACL Rules
responses:
'200':
description: Whitelist entries
content:
application/json:
schema:
$ref: '#/components/schemas/WhitelistResponse'
post:
operationId: addToAclWhitelist
summary: Add to ACL Whitelist
description: Adds an IP address or CIDR block to the ACL whitelist.
tags:
- ACL Rules
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WhitelistRequest'
responses:
'200':
description: Entry added to whitelist
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
/api/ACLRuleExecutionLogAPI:
get:
operationId: getAclExecutionLogs
summary: Get ACL Rule Execution Logs
description: Retrieves logs of ACL rule executions showing triggered rules and actions taken.
tags:
- ACL Rules
parameters:
- name: page
in: query
schema:
type: integer
default: 1
- name: page_size
in: query
schema:
type: integer
default: 10
- name: start_time
in: query
schema:
type: integer
description: Unix timestamp for log query start
- name: end_time
in: query
schema:
type: integer
description: Unix timestamp for log query end
responses:
'200':
description: ACL execution logs
content:
application/json:
schema:
$ref: '#/components/schemas/LogListResponse'
components:
schemas:
AclRuleResponse:
type: object
properties:
err:
type: string
nullable: true
data:
$ref: '#/components/schemas/AclRule'
msg:
type: string
nullable: true
AclCondition:
type: object
properties:
field:
type: string
enum:
- ip
- url
- method
- header
- body
- user_agent
- referer
operator:
type: string
enum:
- equals
- contains
- startswith
- endswith
- matches
- in_cidr
value:
type: string
LogListResponse:
type: object
properties:
err:
type: string
nullable: true
data:
type: array
items:
type: object
properties:
id:
type: integer
rule_id:
type: integer
rule_name:
type: string
action:
type: string
src_ip:
type: string
dst_host:
type: string
request_method:
type: string
request_url:
type: string
trigger_time:
type: string
msg:
type: string
nullable: true
SuccessResponse:
type: object
properties:
err:
type: string
nullable: true
data:
type: object
nullable: true
msg:
type: string
nullable: true
AclRuleListResponse:
type: object
properties:
err:
type: string
nullable: true
data:
type: array
items:
$ref: '#/components/schemas/AclRule'
msg:
type: string
nullable: true
UpdateAclRuleRequest:
type: object
required:
- id
properties:
id:
type: integer
name:
type: string
action:
type: string
enum:
- block
- allow
- log
conditions:
type: array
items:
$ref: '#/components/schemas/AclCondition'
WhitelistResponse:
type: object
properties:
err:
type: string
nullable: true
data:
type: array
items:
type: object
properties:
id:
type: integer
ip:
type: string
comment:
type: string
msg:
type: string
nullable: true
CreateAclRuleRequest:
type: object
required:
- name
- action
- conditions
properties:
name:
type: string
action:
type: string
enum:
- block
- allow
- log
conditions:
type: array
items:
$ref: '#/components/schemas/AclCondition'
comment:
type: string
WhitelistRequest:
type: object
required:
- ip
properties:
ip:
type: string
description: IP address or CIDR block to whitelist
example: 192.168.1.0/24
comment:
type: string
AclRule:
type: object
properties:
id:
type: integer
name:
type: string
action:
type: string
conditions:
type: array
items:
$ref: '#/components/schemas/AclCondition'
enabled:
type: boolean
create_time:
type: string
securitySchemes:
APITokenAuth:
type: apiKey
in: header
name: X-SLCE-API-Token
description: API token obtained from the SafeLine management interface