NE

netalertx-settings-management

Tools for managing NetAlertX configuration files and settings programmatically.

Install

mkdir -p .claude/skills/netalertx-settings-management && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4554" && unzip -o skill.zip -d .claude/skills/netalertx-settings-management && rm skill.zip

Installs to .claude/skills/netalertx-settings-management

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Manage NetAlertX configuration settings. Use this when asked to add setting, read config, get_setting_value, ccd, or configure options.
135 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Retrieve runtime configuration values
  • Register core setting keys
  • Define plugin configuration manifests
  • Apply runtime environment overrides

How it works

Provides wrapper functions to interact with a centralized dictionary-based configuration manager and persistent file storage.

Inputs & outputs

You give it
Setting key name
You get back
Stored setting value

When to use netalertx-settings-management

  • Read setting values for application logic
  • Register new core configuration keys
  • Define settings within plugin manifests
  • Apply runtime environment overrides

About this skill

Settings Management

Quick Reference

Read a setting (backend):

from helper import get_setting_value
value = get_setting_value('SETTING_NAME')

Never hardcode ports, secrets, or configuration values. Always use get_setting_value().

Read a setting (frontend):

getSetting("SETTING_NAME")

Add a core setting — use ccd() in server/initialise.py:

ccd('SETTING_NAME', 'default_value', 'description')

Add a plugin setting — define in the plugin's config.json under the settings key.

FilePurpose
/data/config/app.confRuntime config (source of truth, modified by app)
back/app.confDefault config (template)

Use APP_CONF_OVERRIDE for settings that must be set before startup.


Development Guide

The goal is for every setting to be:

  • Declarative and self-documenting
  • Automatically rendered by the Settings UI
  • Fully localized
  • Backwards compatible
  • Easy to maintain

1. Follow existing patterns

Before creating a new setting, search for similar ones. Reuse existing naming conventions, types, and validation patterns. Follow the style already used by similar plugins. Avoid introducing new setting types unless absolutely necessary.


2. Setting naming

Setting keys use uppercase snake case: UI_DEV_SECTIONS, SCAN_INTERVAL, MQTT_HOST. Names should clearly describe the purpose.


3. Categories

Place settings into the most appropriate category. Keep related settings together. Avoid creating new categories unless there is a clear need.


4. Choose the correct type

Use the simplest type that correctly models the value: string, integer, float, boolean, password, select, array, textarea. Avoid encoding structured JSON inside string settings.


5. Validation

Always define validation whenever appropriate (min/max values, regex, allowed options). Reject invalid configuration rather than silently accepting it.


6. Defaults

Provide sensible defaults that work for a fresh installation. The default_value in config.json is the single source of truth — do not duplicate it in Python or JavaScript.


7. Names and descriptions

Names should be concise. Descriptions should explain what the setting does, when to use it, and any important side effects — not implementation details.


8. Boolean settings

Prefer verbs: Enable, Disable, Require, Allow, Ignore, Show, Hide. Examples: Enable MQTT, Require NICs Online, Hide Offline Devices.


9. Select settings

Use when users must choose from predefined values. Each option must have a meaningful label — never require users to remember internal values.


10. Array settings

Use only when multiple independent values are expected (e.g., ignored MACs, subnet lists, plugin lists).


11. Localization

Every setting must have localized language strings. If not defined directly in config.json, they must exist in en_us.json.

Example for UI_DEV_SECTIONS:

"UI_DEV_SECTIONS_name": "Hide device sections",
"UI_DEV_SECTIONS_description": "Select which UI elements to hide on the Devices page."

When using external language files, config.json must reference:

"name": [{ "string": "_GLOBAL_LANG_FILES_" }]

12. Source of truth

app.conf is the source of truth. User-defined values always come from app.conf; defaults from config.json apply only when a setting is absent. Never read app.conf directly — always go through get_setting_value().


13. Plugin-first settings

Whenever possible, define new settings inside a plugin's config.json. Avoid adding hardcoded application settings unless there is a compelling architectural reason.


14. Runtime lifecycle

config.json (defaults)
    → app.conf (source of truth)
    → Settings database table
    → table_settings.json API
    → Frontend getSetting() / Backend get_setting_value()

The database and API are runtime representations only, regenerated from app.conf at init.


15. Backwards compatibility

Avoid renaming settings, changing data types, or changing semantics. If unavoidable, provide migration logic and preserve compatibility where possible.


16. Pull request checklist

  • Follows existing naming conventions (uppercase snake case)
  • Correct category used
  • Appropriate type selected, validation defined
  • Sensible default — defined only once (in config.json)
  • Name concise, description clear (no implementation details)
  • Localization strings added; _GLOBAL_LANG_FILES_ used where appropriate
  • Plugin-first approach followed where applicable
  • Frontend renders automatically without custom JavaScript
  • Backend uses get_setting_value() — no direct app.conf reads
  • Backwards compatibility maintained
  • Documentation updated if required

References

When not to use it

  • Passing sensitive credentials directly in source code
  • Managing configuration for non-NetAlertX applications

Prerequisites

NetAlertX source codebase

Limitations

  • Limited to NetAlertX configuration schema
  • Requires access to server/initialise.py for new keys

How it compares

Centralizes configuration access to prevent hardcoded settings throughout the application.

Compared to similar skills

netalertx-settings-management side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
netalertx-settings-management (this skill)16moNo flagsBeginner
senior-security317moReviewAdvanced
telnetshell12moCautionAdvanced
prowler-sdk-check12moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

senior-security

davila7

Comprehensive security engineering skill for application security, penetration testing, security architecture, and compliance auditing. Includes security assessment tools, threat modeling, crypto implementation, and security automation. Use when designing security architecture, conducting penetration tests, implementing cryptography, or performing security audits.

3191

telnetshell

BrownFineSecurity

Use telnet to interact with IoT device shells for pentesting operations including device enumeration, vulnerability discovery, credential testing, and post-exploitation. Use when the user needs to interact with network-accessible shells, IoT devices, or telnet services.

13

prowler-sdk-check

prowler-cloud

Creates Prowler security checks following SDK architecture patterns. Trigger: When creating or updating a Prowler SDK security check (implementation + metadata) for any provider (AWS, Azure, GCP, K8s, GitHub, etc.).

10

building-automated-malware-submission-pipeline

26zl

Builds an automated malware submission and analysis pipeline that collects

00

video-downloader

ComposioHQ

Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.

101255

pdf

anthropics

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

64178

Search skills

Search the agent skills registry