Skip to main content

Squillify development is paused indefinitely. Read why, and discover what this experiment achieved. Read the story

MicroSkills Reference

Parse Connection String

database.parse_connection_string

ProductionBounded custom (Class B)Deterministicstrictinstantv1.0.0
No network

Overview

You pass a JDBC URL or database URI and we return a safe structural summary: driver, host, port, database name, and non-secret options. Passwords are stripped structurally — they never appear in the response, even when present in the input. We do not open a connection or resolve hostnames. Do not use this when you need a live connectivity or authentication check.

Agents and tools often echo connection strings into logs — and passwords go with them. We give you structure without that risk.

Reliability

Same URL in, same summary out. Passwords are dropped as we parse, so they cannot reach the response. Three errors can come back, none of them worth a retry with the same input: CONNSTRING_MALFORMED — trigger: you sent an empty string, something longer than 4,096 characters, or text we could not read as a JDBC URL or a scheme://host URI; retryable: no; next: fix the string and call again. CONNSTRING_DRIVER_UNSUPPORTED — trigger: the scheme names a driver outside the nine we handle (postgresql, mysql, mariadb, sqlserver, oracle, sqlite, h2, mongodb, redis); retryable: no; next: parse that URL yourself or pick a supported driver. CONNSTRING_OPTION_LIMIT_EXCEEDED — trigger: the URL carries more than 100 settings; retryable: no; next: trim the query string before sending it. An expectedDriver mismatch never fails the call — it lands in findings as CONNSTRING_DRIVER_MISMATCH, alongside notes like CONNSTRING_TLS_NO_VERIFICATION, so check findings even on a successful response.

Context footprint

One call replaces brittle regex URL parsing and keeps secrets out of your pipeline. A successful call costs 1 execution credit.

When to use it

When you need to understand or inventory a URL without exposing credentials.

When you need to know whether the database is reachable or the password is correct.

Scope

Note
Turns a connection string into a password-free structural summary you can log or inventory safely.

Non-goals

  • Does not connect to the database
  • Does not resolve or ping hostnames
  • Does not return passwords or usernames
  • Does not validate that credentials work

Properties

IdempotentRetry safeStreaming supportedFile input supportedRequires external service

Capabilities

parsingvalidation

Cost & billing

Flat rate per invocation

MetercallsBillable onsuccessCost per call1 credit

File handling

Accepts file_refProduces file_refMax input8 KB

How we handle your data

Sensitive processing
What this means

This skill is designed to detect, mask, redact, validate, or otherwise process sensitive data.

Squillify guarantees
  • Runs inside Squillify
  • This skill runs inside Squillify.
  • Payloads are not sent to an external service by this skill.
  • Squillify does not permanently store submitted payloads.
  • Telemetry records metadata only, not submitted content.
  • Submitted payloads are not used for training.
  • Submitted payloads are not reviewed by humans.
  • Targets sensitive data
  • The response does not contain submitted content.
Your responsibility

Squillify does not determine whether submitted content is sensitive. Your application is responsible for deciding what data it is allowed to submit. Your application is responsible for securing the response.

Read the Microskill Data Handling Policy

Input schema

FieldTypeRequiredDescription
connectionStringstringYesConnection string parsed locally; credentials are never returned.
expectedDriverstringNoOptional expected driver name; omit it to accept any supported driver.

Output schema

FieldTypeRequiredDescription
schemestringYesParsed connection-string scheme.
driverstringYesResolved database driver.
hoststringNoParsed host when present.
portintegerNoParsed TCP port when present.
databasestringNoParsed database name when present.
hasUsernamebooleanYesWhether a username was present.
hasPasswordbooleanYesWhether a password was present.
optionsobjectYesPurpose-bound redacted connection option map. It contains from 0 through 1,000 purpose-bound properties — unconstrained RFC 8259 JSON items.
safeUristringYesRedacted URI safe for display.
tlsobjectYesClosed TLS-option receipt. Its documented receipt properties are bounded to 128 entries — unconstrained RFC 8259 JSON items.
findingsarrayYesBounded array of safe structured database findings. The item shape is defined by the nested schema and the array contains from 0 through 20000 items.
_metaobjectYesClosed parser metadata receipt. Its documented receipt properties are bounded to 128 entries — unconstrained RFC 8259 JSON items.

API contract

POST /v1/execute
curl
curl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"database.parse_connection_string","input":{"connectionString":"jdbc:postgresql://localhost:5432/app"}}'
Integrations
TypeScript SDK
import { Squillify } from "@squillify/sdk";

const sq = new Squillify({ apiKey: process.env.SQUILLIFY_API_KEY });

const { output } = await sq.execute("database.parse_connection_string", {"connectionString":"jdbc:postgresql://user:[email protected]:5432/appdb?sslmode=require"});

Errors

CodeHTTPRetryableDescription
VALIDATION_ERROR400NoThe request payload failed schema validation.
UNAUTHORIZED401NoMissing or invalid API key.
SKILL_NOT_ACCESSIBLE403NoThe API key is not granted access to this skill.
SKILL_NOT_AVAILABLE_FOR_PLAN403NoThis skill is not included in your current plan.
PLAN_ELIGIBILITY_UNAVAILABLE503YesPlan eligibility could not be decided. Retry after backoff.
SKILL_NOT_FOUND404NoThe requested skill or version does not exist.
TENANT_RATE_LIMITED429YesRequest rate limit exceeded. Retry after backoff.
QUOTA_EXCEEDED429YesPlan quota exhausted. Retryable once the quota period resets.
EXECUTION_TIMEOUT504YesExecution exceeded the allowed time budget.
CONNSTRING_MALFORMED400NoThe request payload failed this skill's input validation.
CONNSTRING_DRIVER_UNSUPPORTED400NoThe skill does not support the requested variant.
CONNSTRING_OPTION_LIMIT_EXCEEDED429NoA size, quota, rate, or time limit was exceeded.

Other limits

LimitValue
Recommended inline bytes32 KiB

Limitations

  • Does not connect to the database
  • Does not resolve or ping hostnames
  • Does not return passwords or usernames
  • Does not validate that credentials work
  • Live connectivity or authentication checks
  • Secret rotation or credential validation

How to call

POST /v1/execute (requires authentication)

Request bodyjson
{
  "skillKey": "database.parse_connection_string",
  "input": {
    "connectionString": "jdbc:postgresql://user:[email protected]:5432/appdb?sslmode=require"
  }
}

Examples

PostgreSQL URL with password stripped and TLS note

Inputjson
{
  "connectionString": "jdbc:postgresql://user:[email protected]:5432/appdb?sslmode=require"
}
Expected outputjson
{
  "scheme": "jdbc:postgresql",
  "hasUsername": true,
  "findings": [
    {
      "details": {},
      "path": "/options/sslmode",
      "code": "CONNSTRING_TLS_NO_VERIFICATION",
      "message": "sslmode=require encrypts but does not verify the server certificate.",
      "severity": "warning"
    }
  ],
  "database": "appdb",
  "_meta": {
    "optionCount": 1,
    "redactedOptionCount": 0
  },
  "safeUri": "jdbc:postgresql://db.internal:5432/appdb?sslmode=require",
  "driver": "postgresql",
  "tls": {
    "requested": true,
    "verifiesCertificate": false,
    "mode": "require"
  },
  "hasPassword": true,
  "options": {
    "sslmode": "require"
  },
  "host": "db.internal",
  "port": 5432
}

MySQL URL without credentials

Inputjson
{
  "connectionString": "jdbc:mysql://localhost:3306/billing"
}
Expected outputjson
{
  "scheme": "jdbc:mysql",
  "hasUsername": false,
  "findings": [],
  "database": "billing",
  "_meta": {
    "optionCount": 0,
    "redactedOptionCount": 0
  },
  "safeUri": "jdbc:mysql://localhost:3306/billing",
  "driver": "mysql",
  "tls": {
    "requested": false,
    "verifiesCertificate": false,
    "mode": "none"
  },
  "hasPassword": false,
  "options": {},
  "host": "localhost",
  "port": 3306
}
  • Review a connection string before storing it in config
  • Build a safe inventory of database endpoints
  • Check TLS settings without leaking secrets into logs

Avoid for

  • Live connectivity or authentication checks
  • Secret rotation or credential validation

Composable with

Safety & privacy

  • Runs without calling any external service.
  • Your payloads are never stored permanently.
  • Telemetry captures metadata only — never your payload contents.
  • We never train models on your payloads.
  • No human reviews your payloads.

Tags

databaseconnection-stringparsingvalidationjdbc