commit, am too tired to add docs here
This commit is contained in:
175
config/schemas/wordlists-schema.yml
Normal file
175
config/schemas/wordlists-schema.yml
Normal file
@@ -0,0 +1,175 @@
|
||||
# Wordlists Configuration Schema
|
||||
# Defines structure for banned words and domain whitelists
|
||||
|
||||
banned_words:
|
||||
type: object
|
||||
description: "Banned words and patterns configuration"
|
||||
properties:
|
||||
global_patterns:
|
||||
type: array
|
||||
description: "Patterns applied to all guilds (unless overridden)"
|
||||
items:
|
||||
type: object
|
||||
required: [pattern, action]
|
||||
properties:
|
||||
pattern:
|
||||
type: string
|
||||
description: "Word or regex pattern to match"
|
||||
minLength: 1
|
||||
maxLength: 200
|
||||
action:
|
||||
type: string
|
||||
enum: [delete, warn, strike, timeout]
|
||||
description: "Action to take when pattern matches"
|
||||
is_regex:
|
||||
type: boolean
|
||||
description: "Whether pattern is a regular expression"
|
||||
default: false
|
||||
reason:
|
||||
type: string
|
||||
description: "Reason for this rule"
|
||||
maxLength: 500
|
||||
category:
|
||||
type: string
|
||||
description: "Category of banned content"
|
||||
enum: [profanity, hate_speech, spam, scam, harassment, sexual, violence]
|
||||
severity:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 10
|
||||
description: "Severity level (1-10)"
|
||||
default: 5
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether this rule is active"
|
||||
default: true
|
||||
|
||||
guild_patterns:
|
||||
type: object
|
||||
description: "Guild-specific pattern overrides"
|
||||
patternProperties:
|
||||
"^[0-9]+$": # Guild ID
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required: [pattern, action]
|
||||
properties:
|
||||
pattern:
|
||||
type: string
|
||||
minLength: 1
|
||||
maxLength: 200
|
||||
action:
|
||||
type: string
|
||||
enum: [delete, warn, strike, timeout]
|
||||
is_regex:
|
||||
type: boolean
|
||||
default: false
|
||||
reason:
|
||||
type: string
|
||||
maxLength: 500
|
||||
category:
|
||||
type: string
|
||||
enum: [profanity, hate_speech, spam, scam, harassment, sexual, violence]
|
||||
severity:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 10
|
||||
default: 5
|
||||
enabled:
|
||||
type: boolean
|
||||
default: true
|
||||
override_global:
|
||||
type: boolean
|
||||
description: "Whether this rule overrides global patterns"
|
||||
default: false
|
||||
|
||||
external_sources:
|
||||
type: object
|
||||
description: "External wordlist sources configuration"
|
||||
properties:
|
||||
sources:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required: [name, url, category, action]
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "Unique identifier for this source"
|
||||
pattern: "^[a-zA-Z0-9_-]+$"
|
||||
url:
|
||||
type: string
|
||||
description: "URL to fetch wordlist from"
|
||||
format: uri
|
||||
category:
|
||||
type: string
|
||||
enum: [profanity, hate_speech, spam, scam, harassment, sexual, violence]
|
||||
action:
|
||||
type: string
|
||||
enum: [delete, warn, strike, timeout]
|
||||
reason:
|
||||
type: string
|
||||
description: "Default reason for words from this source"
|
||||
enabled:
|
||||
type: boolean
|
||||
default: true
|
||||
update_interval_hours:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 8760 # 1 year
|
||||
description: "How often to update from source"
|
||||
default: 168 # 1 week
|
||||
applies_to_guilds:
|
||||
type: array
|
||||
description: "Guild IDs to apply this source to (empty = all guilds)"
|
||||
items:
|
||||
type: integer
|
||||
minimum: 1
|
||||
default: []
|
||||
|
||||
domain_allowlists:
|
||||
type: object
|
||||
description: "Domain whitelist configuration"
|
||||
properties:
|
||||
global_allowlist:
|
||||
type: array
|
||||
description: "Domains allowed for all guilds"
|
||||
items:
|
||||
type: object
|
||||
required: [domain]
|
||||
properties:
|
||||
domain:
|
||||
type: string
|
||||
description: "Domain name to allow"
|
||||
pattern: "^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
|
||||
reason:
|
||||
type: string
|
||||
description: "Why this domain is allowed"
|
||||
added_by:
|
||||
type: string
|
||||
description: "Who added this domain"
|
||||
added_date:
|
||||
type: string
|
||||
format: date-time
|
||||
description: "When this domain was added"
|
||||
|
||||
guild_allowlists:
|
||||
type: object
|
||||
description: "Guild-specific domain allowlists"
|
||||
patternProperties:
|
||||
"^[0-9]+$": # Guild ID
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required: [domain]
|
||||
properties:
|
||||
domain:
|
||||
type: string
|
||||
pattern: "^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
|
||||
reason:
|
||||
type: string
|
||||
added_by:
|
||||
type: string
|
||||
added_date:
|
||||
type: string
|
||||
format: date-time
|
||||
Reference in New Issue
Block a user