Back to list
chaddm

ip-whitelist

by chaddm

0🍴 0📅 Jan 16, 2026

SKILL.md


name: ip-whitelist description: Manage IP whitelist for Provider Nexus API clients using TypeScript scripts that make curl calls to the admin API endpoints. license: MIT compatibility: opencode metadata:

IP Whitelist Skill

What I Do

This skill manages the IP whitelist for Provider Nexus API clients using curl calls.

Configuration

Environment

All script files require the --env=<environment> parameter to specify the target environment. The list of environments is found in skill/ip_whitelist/environments.csv. If you are requested to use this skill and the environment is not specified, read the file and provide the following response:

To use the IP Whitelist Skill, please specify the environment:
    1. Local       | `http://localhost:5001`             |
    2. Staging     | `https://staging.providernexus.com` |
    <remaining list>

Which environment would you like to use?

If the response is an name or number, map it to the corresponding environment.

Clients

Some scripts require the --client-id=<client_id> parameter. Clients are listed in skill/ip_whitelist/clients.csv. If a client is required for the action and is not provided, ask the user to provide it. If the user provides a client name, map it to the corresponding client ID or ask for clarification and provide options if there are multiple matches.

Note: Special Client IDs Client Strenuus (12) is used for administrative accounts in all environments. Client HealthStart (292) is used for developers in Staging and Sandbox. Always use Localhost for testing.

IP Addresses

Some scripts require the --ip-address=<ip_or_cidr> parameter.

Available Actions

All scripts return the HTTP status code on the first line followed by the response body. Example:

HTTP Status: 200
[
  {
    "clientId": "client123",
    "ips": [
      { "ip": "192.168.1.10", "userId": "userA", "netmask": "255.255.255.0" },
      { "ip": "10.0.0.5" }
    ]
  }
]

1. List All Whitelisted Client IPs

Returns all whitelisted IPs for all clients.

skill/ip_whitelist/list-for-all-clients --env=<environment>

Response Example:

HTTP Status: 200
[
  {
    "clientId": "client123",
    "ips": [
      { "ip": "192.168.1.10", "userId": "userA", "netmask": "255.255.255.0" },
      { "ip": "10.0.0.5" }
    ]
  }
]

2. Show Whitelisted IPs for a Specific Client

Returns all whitelisted IPs for the specified client.

skill/ip_whitelist/show-for-client.ts --env=<environment> --client-id=<client_id>

Response Example:

HTTP Status: 200
{
  "clientId": "client123",
  "ips": [
    { "ip": "192.168.1.10", "userId": "userA", "netmask": "255.255.255.0" },
    { "ip": "10.0.0.5" }
  ]
}

3. Add Whitelisted IP (Simple)

Adds the specified IP to the client's whitelist.

skill/ip_whitelist/add-ip.ts --env=<environment> --client-id=<client_id> --ip=<ip_address>

Response Example:

HTTP Status: 200
{
  "success": true,
  "message": "IP added to whitelist",
  "clientId": "client123",
  "ip": "10.0.0.5"
}

4. Add Whitelisted IP for a Specific User

Adds the specified IP to the client's whitelist, associated with a user.

skill/ip_whitelist/add-ip.ts --env=<environment> --client-id=<client_id> --ip=<ip_address> --user-id=<user_id>

Response Example:

HTTP Status: 200
{
  "success": true,
  "message": "IP added for user",
  "clientId": "client123",
  "ip": "10.0.0.5",
  "userId": "userA"
}

5. Add Whitelisted IP with Netmask and User

Adds the specified IP and netmask to the client's whitelist, associated with a user.

skill/ip_whitelist/add-ip.ts --env=<environment> --client-id=<client_id> --ip=<ip_address> --user-id=<user_id> --netmask=<netmask>

Note: For CIDR notation, use the CIDR suffix (e.g., 24) as the netmask parameter.

Response Example:

HTTP Status: 200
{
  "success": true,
  "message": "IP and netmask added for user",
  "clientId": "client123",
  "ip": "192.168.1.10",
  "netmask": "255.255.255.0",
  "userId": "userA"
}

6. Remove Whitelisted IP

Removes the specified IP from the client's whitelist.

skill/ip_whitelist/remove-ip.ts --env=<environment> --client-id=<client_id> --ip=<ip_address>

Response Example:

HTTP Status: 200
{
  "success": true,
  "message": "IP removed from whitelist",
  "clientId": "client123",
  "ip": "10.0.0.5"
}

7. Find Clients by Name Pattern

Searches for clients matching a regular expression pattern (case-insensitive).

skill/ip_whitelist/find-clients.ts --regexp="<pattern>"

Parameters:

  • --regexp - Regular expression pattern to match against client names (case-insensitive)

Response Example (matches found):

"id","name"
31,"UnitedHealthcare (UHC)"
53,"Health Net"
103,"HealthPartners of MN"
Matching rows: 3

Response Example (no matches):

"id","name"
Matching rows: 0

Usage Examples:

Find clients with "health" in their name:

skill/ip_whitelist/find-clients.ts --regexp="health"

Find clients starting with "Blue":

skill/ip_whitelist/find-clients.ts --regexp="^Blue"

Find clients with "BCBS" or "BlueCross":

skill/ip_whitelist/find-clients.ts --regexp="BCBS|BlueCross"

Common Errors

Incapsula 503 Error (Staging Environment)

If you receive an HTTP 503 error with an Incapsula incident ID when accessing the staging environment, this indicates that staging is currently offline and not being routed. The Incapsula WAF blocks requests when the backend service is unavailable.

Error Response Example:

HTTP Status: 503
<html>...Incapsula incident ID: 202000480358381066-859142232585407505...</html>

Resolution: Try a different environment or wait for staging to come back online.

When to Use Me

Use this skill when you need work with whitelist addresses.

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon