Commands
Every inkdex and inkdex-vuln command, with its options, as the binaries print them.
Generated from the binaries' --help. Every command also takes the global options:
-C DIR, --index PATH, --json, --jsonl, -q/--quiet, --at REF (see
Exit codes and environment).
inkdex-vuln
inkdex-vuln scan
Scan a repository (its .inkdex/, or --update to index it first)
Usage: inkdex-vuln scan [OPTIONS] [DIR]
Arguments:
[DIR] The repository (default: the current directory) [default: .]
Options:
--update Index (or bring up to date) the repository first
--local-sources Also report flows from the environment, arguments, stdin and local files
--library The repository is a library (package, crate, module): the arguments of its exported functions are input. Implies --update (the index is redone in library mode)
--no-deps Do not check the dependencies against vuln.mlab.sh (nothing leaves the machine)
--vuln-url <VULN_URL> The advisory API (token: $VULN_MLAB_TOKEN) [default: https://vuln.mlab.sh]
--only <ONLY> Only this step's findings: flows (injections), facts (secrets, crypto, settings, dangerous APIs), deps (vulnerable dependencies) [possible values: flows, facts, deps]
--verdict <VERDICT> Only findings with this verdict [possible values: proven, verify]
--severity <SEVERITY> Only findings at least this severe [possible values: critical, high, medium, low]
--rule <RULE> Only these rules (repeatable, globs: `VULN-SQLI`, `VULN-WEAK-*`)
--path <GLOB> Only under these paths (repeatable, globs or directories: `src/**`, `api`)
--exclude <GLOB> Never under these paths (repeatable; added to the config's `exclude`)
--baseline <FILE> Only findings absent from this previous report (`scan --json` or `--format sarif`)
--since <REF> Only findings absent at this git revision (an indexed commit; with --update it is indexed when it is not)
--with-ignored Also report what `.inkdex-vuln.toml` and `nosec` comments ignore
--format <FORMAT> Output format (`--json` is `--format json`) [default: text] [possible values: text, json, sarif, markdown]
--explain Under each finding, why it is there: its source, route, auth, confidence and the flow's steps (text output; JSON and SARIF always carry them)
--fail-on <FAIL_ON> Exit 1 when a finding is at least this severe (for CI; default: the config's `fail_on`) [possible values: critical, high, medium, low]
-o, --output <OUTPUT> Write the report there instead of stdoutinkdex-vuln finding
One finding in detail: why it is there, the flow's steps with their code, whether it is ignored
Usage: inkdex-vuln finding [OPTIONS] <TARGET> [DIR]
Arguments:
<TARGET> A fingerprint (or its first characters), or `file:line`
[DIR] The repository (default: the current directory) [default: .]
Options:
--local-sources Also flows from the environment, arguments, stdin and local files (as `scan`)
--deps Also check the dependencies against vuln.mlab.sh (a `VULN-DEP` finding)inkdex-vuln ignore
Ignore a finding by its fingerprint: an [[ignore]] in .inkdex-vuln.toml (commit it)
Usage: inkdex-vuln ignore [OPTIONS] <FINGERPRINT> [DIR]
Arguments:
<FINGERPRINT> The finding's fingerprint (or its first characters, from `scan --json` or `finding`)
[DIR] The repository (default: the current directory) [default: .]
Options:
-r, --reason <REASON> Why (kept in the file)inkdex-vuln unignore
Stop ignoring a finding (its [[ignore]] removed from .inkdex-vuln.toml)
Usage: inkdex-vuln unignore [OPTIONS] <FINGERPRINT> [DIR]
Arguments:
<FINGERPRINT> The fingerprint (or its first characters)
[DIR] The repository (default: the current directory) [default: .]inkdex-vuln ignored
The findings .inkdex-vuln.toml ignores, with their reasons
Usage: inkdex-vuln ignored [OPTIONS] [DIR]
Arguments:
[DIR] The repository (default: the current directory) [default: .]inkdex-vuln rules
The rules: what each reports, its CWE, when a finding is proven
Usage: inkdex-vuln rules [OPTIONS] [RULE]
Arguments:
[RULE] One rule (`VULN-SQLI`)inkdex
inkdex init
Create .inkdex/ and its config, and add it to .gitignore
Usage: inkdex init [OPTIONS]
Options:
--langs <LANGS> Languages to extract (py,ts,js,rs,go,ex,java)
--no-gitignore Do not touch .gitignoreinkdex index
Index the working tree (incremental) or a git revision
Usage: inkdex index [OPTIONS] [PATH]
Arguments:
[PATH] Repository root (default: the indexed repository)
Options:
--commit <REV> Index this git revision instead of the working tree
--range <A..B> Index every commit of A..B, oldest first, then the working tree
--first-parent With --range: follow only the first parent of merges
--step <N> With --range: one commit in N (the last one always) [default: 1]
--full Re-extract every file
--dry-run Print the plan, write nothing
--jobs <N> Extraction threads
--max-file-size <SIZE> Skip files larger than this (e.g. 5M, 512k)
--no-resolve Extraction only, skip the resolution pass (and the security pass)
--no-sec Skip the security passinkdex resolve
Run the resolution pass (modules, fully qualified names, …) on the current snapshot
Usage: inkdex resolve [OPTIONS]
Options:
--full Recompute everything
--stats Print resolution rates per language, kind and reason
Call results are typed by their declared return types (`-> Foo`, `(): Foo`), never by
inferred ones; set `declared_return_types = false` under `[resolve]` in .inkdex/config.tomlinkdex unresolved
Unresolved calls grouped by reason and callee: the resolver's to-do list
Usage: inkdex unresolved [OPTIONS]
Options:
--reason <REASON> Only these reasons (no_binding,no_type,ambiguous,dynamic,unsupported,external)
--lang <LANG> Languages (py,ts,js,rs,go,ex,java)
--top <TOP> Number of groups [default: 50] [alias: --limit]inkdex modules
Modules of the current snapshot
Usage: inkdex modules [OPTIONS] [PATTERN]
Arguments:
[PATTERN] Only module paths matching this glob
Options:
--lang <LANG> Languages (py,ts,js,rs,go,ex,java)
--tree Indent modules under their parentsinkdex status
Files, symbols, size, snapshot, dirty files, orphans, resolution
Usage: inkdex status [OPTIONS]inkdex callers
Call sites resolved to a function (--depth N: callers of callers, as a graph)
Usage: inkdex callers [OPTIONS] <TARGET>
Arguments:
<TARGET> fq_name, qualified name or file:line
Options:
--depth <DEPTH> [default: 1]
--format <FORMAT> Graph format when --depth > 1 (edges, dot, mermaid, json) [default: edges]inkdex callees
Calls made by a function with their resolution (--depth N: as a graph)
Usage: inkdex callees [OPTIONS] <TARGET>
Arguments:
<TARGET> fq_name, qualified name or file:line
Options:
--depth <DEPTH> [default: 1]
--format <FORMAT> Graph format when --depth > 1 (edges, dot, mermaid, json) [default: edges]inkdex path
Shortest call paths from one function to another
Usage: inkdex path [OPTIONS] <FROM> <TO>
Arguments:
<FROM>
<TO>
Options:
--max-depth <MAX_DEPTH> [default: 8]inkdex graph
Call, import or type graph
Usage: inkdex graph [OPTIONS] <KIND>
Arguments:
<KIND> calls, imports or types
Options:
--format <FORMAT> edges, dot, mermaid, json [default: dot]
--in <PATH> Only nodes under this directory
--cycles Only print the cycles (strongly connected components)inkdex imports
Files a file imports (resolved imports)
Usage: inkdex imports [OPTIONS] <FILE>
Arguments:
<FILE>inkdex imported-by
Files importing a file
Usage: inkdex imported-by [OPTIONS] <FILE>
Arguments:
<FILE>inkdex search
Search symbols by glob (default), regex or full text
Usage: inkdex search [OPTIONS] <PATTERN>
Arguments:
<PATTERN> Glob (`*pass*`), regex with --regex, text with --fts
Options:
--kind <KIND> Symbol kinds (fn,method,class,…); `fn` is functions only, methods need `method`
--lang <LANG> Languages (py,ts,js,rs,go,ex,java)
--in <PATH> Only under this path
--regex
--fts
--limit <LIMIT>
--has-sink <CATEGORY> Contains a sink of this category pattern (`sql.*`)
--has-source <CATEGORY> Contains a source of this category pattern (`http.*`, `env`)
--entrypoint Handlers of entry points only
--unauthenticated Handlers of entry points where no auth marker was found
--param-reaches-sink A param reaches an unsanitized sink inside the functioninkdex grep
Full-text search over literals
Usage: inkdex grep [OPTIONS] <QUERY>
Arguments:
<QUERY>
Options:
--literals Search literals (the default and only target in 0.1)
--class <CLASS> Only these classifications (url,sql,shell,path,ip,email,jwt,base64,high_entropy,format)
--limit <LIMIT>inkdex fn
Details of a function or method
Usage: inkdex fn [OPTIONS] <NAME>
Arguments:
<NAME> Name or qualified name
Options:
--params
--metrics
--body
--callsinkdex show
Details of any symbol, by qualified name or file:line
Usage: inkdex show [OPTIONS] <TARGET>
Arguments:
<TARGET>inkdex ls
Symbols of a file or directory
Usage: inkdex ls [OPTIONS] [PATH]
Arguments:
[PATH]
Options:
--kind <KIND>
--tree Indent members under their parentinkdex locate
Innermost symbol at file:line:col
Usage: inkdex locate [OPTIONS] <LOCATION>
Arguments:
<LOCATION>inkdex markers
TODO / FIXME / HACK / … comment markers
Usage: inkdex markers [OPTIONS]
Options:
--kind <KIND>
--in <PATH>inkdex sql
Read-only SQL (SELECT / WITH / EXPLAIN)
Usage: inkdex sql [OPTIONS] <QUERY>
Arguments:
<QUERY>inkdex explain
Tree-sitter tree of a file annotated with extracted facts
Usage: inkdex explain [OPTIONS] <FILE>
Arguments:
<FILE>
Options:
--line <LINE>inkdex langs
Supported languages and extractor versions
Usage: inkdex langs [OPTIONS]inkdex import
Import facts produced by another tool
Usage: inkdex import [OPTIONS] <COMMAND>inkdex import scip
Import a SCIP index (scip-python, scip-typescript, rust-analyzer scip)
Usage: inkdex import scip [OPTIONS] <FILE>
Arguments:
<FILE> Path to index.scip
Options:
--as <MODE> `oracle`: record SCIP's answers to measure inkdex's resolver; `apply`: also use them for the calls inkdex leaves unresolved [default: oracle] [possible values: oracle, apply]inkdex deps
External dependencies: manifests, lockfiles, and the imports using them
Usage: inkdex deps [OPTIONS] <COMMAND>inkdex deps list
Declared dependencies with their locked version and use count
Usage: inkdex deps list [OPTIONS]
Options:
--all Also the lockfile's transitive packages
--unused Only runtime dependencies no import uses (a hint)
--undeclared Imports of packages no manifest declaresinkdex deps who
Where a dependency is used
Usage: inkdex deps who [OPTIONS] <NAME>
Arguments:
<NAME>inkdex snapshot
Snapshots of the index: the working tree and indexed commits
Usage: inkdex snapshot [OPTIONS] <COMMAND>inkdex snapshot list
Every snapshot, oldest first
Usage: inkdex snapshot list [OPTIONS]inkdex snapshot show
One snapshot
Usage: inkdex snapshot show [OPTIONS] <REF>
Arguments:
<REF>inkdex snapshot rm
Delete a snapshot and its derived rows (not a pinned one)
Usage: inkdex snapshot rm [OPTIONS] <REF>
Arguments:
<REF>inkdex snapshot pin
Keep a snapshot through gc, refuse rm
Usage: inkdex snapshot pin [OPTIONS] <REF>
Arguments:
<REF>inkdex snapshot unpin
Undo pin
Usage: inkdex snapshot unpin [OPTIONS] <REF>
Arguments:
<REF>inkdex diff
What changed between two snapshots (default parts: --symbols --sec)
Usage: inkdex diff [OPTIONS] <BASE> [HEAD]
Arguments:
<BASE> Base (ref, sha or `worktree`)
[HEAD] Head (default: the working tree) [default: worktree]
Options:
--symbols Files and symbols: added, removed, renamed, signatures, bodies, metrics
--signatures Same as --symbols (signature changes are part of it)
--calls Resolved call edges
--entrypoints Entry points (routes, auth markers)
--sec Security facts and flows
--deps Dependencies
--markers Comment markers
--all Everything
--full-flows Compare flows over the whole snapshots, not only the functions the diff touches
--markdown Markdown for a pull request
--sarif SARIF 2.1.0 of what the head introduces (new flows, flows no longer sanitized, new facts, entry points without auth markers)
--hide-dismissed Leave out flows whose sink sits in a symbol dismissed by `annotate dismiss`
--gate Exit 1 when the head brings a new unsanitized flow (or loses a sanitizer on one)inkdex changed
Symbols changed since a ref, with their transitive callers: the input of CI tools
Usage: inkdex changed [OPTIONS] [FILTER]
Arguments:
[FILTER] Keep only what this query selects (`fn entry:http.*`)
Options:
--since <SINCE> Base ref (default: HEAD) [default: HEAD]
--kind <KIND> Only these kinds (fn,method,class,…)
--with-callers <N> Add the callers of what changed, this many calls up [default: 0]
--format <FORMAT> `paths`: one changed file per line (for xargs)inkdex annotate
Annotations: findings of other tools (SARIF) attached to symbols, followed over time
Usage: inkdex annotate [OPTIONS] <COMMAND>inkdex annotate import
Import a SARIF file: each result attached to the symbol around it (idempotent)
Usage: inkdex annotate import [OPTIONS] <FILE>
Arguments:
<FILE>
Options:
--tool <TOOL> Tool name (default: the SARIF driver's)
--into <REF> Into this snapshot (default: the current one)inkdex annotate ls
List annotations
Usage: inkdex annotate ls [OPTIONS]
Options:
--tool <TOOL>
--status <STATUS> open, fixed, dismissed
--rule <RULE>inkdex annotate diff
Annotations of two snapshots: new, fixed, persisting, moved with their symbol
Usage: inkdex annotate diff [OPTIONS] <BASE> <HEAD>
Arguments:
<BASE>
<HEAD>inkdex annotate dismiss
Dismiss an annotation (a dismissed tag on its symbol)
Usage: inkdex annotate dismiss [OPTIONS] <FINGERPRINT>
Arguments:
<FINGERPRINT>
Options:
--reason <REASON> [default: dismissed]inkdex q
Query: kind? term* (fn, class, symbol, file, literal, route, dep, marker, fact, secret, tag; key:value, -key:value, flags; glob, /regex/, a..b, >n, a,b)
Usage: inkdex q [OPTIONS] <QUERY>
Arguments:
<QUERY>
Options:
--count Print the number of results only
--format <FORMAT> `paths`: the files of the results, one per lineinkdex repl
Interactive queries (the q language), with completion of keys
Usage: inkdex repl [OPTIONS]inkdex doctor
Consistency checks: snapshots and their rows, blobs, contexts, lineage, foreign keys
Usage: inkdex doctor [OPTIONS]inkdex hotspots
Functions (or files) where churn, complexity, sinks, callers and unresolved calls meet
Usage: inkdex hotspots [OPTIONS] [SELECT]
Arguments:
[SELECT] Only what this query selects (`fn in:src/api/**`, `file in:src/**`)
Options:
--window <WINDOW> Churn window (`90d`, `12w`, `1y`) [default: 90d]
--weights <WEIGHTS> `churn=2,complexity=1,sinks=3,callers=1,unresolved=0.5`
--top <TOP> [default: 20]
--files Rank filesinkdex gc
Delete old snapshots and the contents only they used (tags, annotations, lineage kept)
Usage: inkdex gc [OPTIONS]
Options:
--keep <KEEP> Commit snapshots to keep, most recent first [default: 10]
--keep-refs <KEEP_REFS> Also keep the commits of git refs matching these globs (`main,v*`)
--vacuum Compact the database afterwards
--dry-run Say what would go, write nothinginkdex watch
Keep the working-tree snapshot up to date as files change; events printed as they come
Usage: inkdex watch [OPTIONS]
Options:
--no-events Print only the update summaries, not every event
--flows Also compare flows on each update (costly)
--debounce <DEBOUNCE> Debounce, in milliseconds [default: 300]inkdex hooks
Git hooks: post-commit indexes the commit, pre-push shows what is pushed
Usage: inkdex hooks [OPTIONS] <COMMAND>inkdex hooks install
Install (both hooks when none is named)
Usage: inkdex hooks install [OPTIONS]
Options:
--post-commit
--pre-push
--gate pre-push refuses a push bringing a new unsanitized flowinkdex hooks uninstall
Remove the inkdex blocks from the hooks
Usage: inkdex hooks uninstall [OPTIONS]inkdex tag
Tags: labels on symbols (they follow renames), files or ranges, with their tool
Usage: inkdex tag [OPTIONS] <COMMAND>inkdex tag add
Tag a selection: a symbol name, file:line, a file path, or a directory path/
Usage: inkdex tag add [OPTIONS] <SELECTOR> <LABEL>
Arguments:
<SELECTOR>
<LABEL> `label` or `label=value`
Options:
--tool <TOOL> Who writes it [default: cli]
--rule <RULE>
--confidence <CONFIDENCE>inkdex tag rm
Remove a selection's tags label
Usage: inkdex tag rm [OPTIONS] <SELECTOR> <LABEL>
Arguments:
<SELECTOR>
<LABEL>
Options:
--tool <TOOL> Only those of this tool
--all Every tag of --tool, whatever the selection and label (`tag rm - - --tool x --all`)inkdex tag ls
List tags
Usage: inkdex tag ls [OPTIONS]
Options:
--label <LABEL>
--value <VALUE> Value glob
--tool <TOOL>
--orphaned Only tags whose target is not in the current snapshotinkdex tag query
Tags label or label=value-glob
Usage: inkdex tag query [OPTIONS] <QUERY>
Arguments:
<QUERY>inkdex history
What happened to a symbol across indexed commits (renames and moves followed)
Usage: inkdex history [OPTIONS] <SYMBOL>
Arguments:
<SYMBOL>inkdex blame
Who last touched a symbol's declaration line (git blame)
Usage: inkdex blame [OPTIONS] <SYMBOL>
Arguments:
<SYMBOL>inkdex lineage
Lineage of snapshots (renames, moves, deletions between indexed commits)
Usage: inkdex lineage [OPTIONS] <COMMAND>inkdex lineage rebuild
Recompute the lineage of every snapshot (or from commit REF on)
Usage: inkdex lineage rebuild [OPTIONS]
Options:
--from <REF>inkdex sec
Security facts: sources, sinks, sanitizers, entry points, secrets, crypto, flows
Usage: inkdex sec [OPTIONS] <COMMAND>inkdex sec run
Run the security pass (matching, def-use, summaries)
Usage: inkdex sec run [OPTIONS]
Options:
--full
--stats Print facts per kind and category afterwardsinkdex sec sources
Sources: where data controlled from outside enters
Usage: inkdex sec sources [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--category <CATEGORY>
Category pattern: `exec.*`, `sql.query,exec.*`, `http`
--in <PATH>
Only facts under this path
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--json
Print one JSON document
--lang <LANG>
Languages (py,ts,js,rs,go,ex,java)
--jsonl
Print one JSON object per line
--min-confidence <MIN_CONFIDENCE>
Minimum confidence
--include-neutralized
Keep facts a rule condition neutralized
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--include-tests
Keep facts in test code (a test file, `mod tests`, `#[test]`)
--sarif
SARIF 2.1.0 (no level: yours to set)
-h, --help
Print helpinkdex sec sinks
Sinks: calls with an effect when their input is controlled
Usage: inkdex sec sinks [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--category <CATEGORY>
Category pattern: `exec.*`, `sql.query,exec.*`, `http`
--in <PATH>
Only facts under this path
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--json
Print one JSON document
--lang <LANG>
Languages (py,ts,js,rs,go,ex,java)
--jsonl
Print one JSON object per line
--min-confidence <MIN_CONFIDENCE>
Minimum confidence
--include-neutralized
Keep facts a rule condition neutralized
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--include-tests
Keep facts in test code (a test file, `mod tests`, `#[test]`)
--sarif
SARIF 2.1.0 (no level: yours to set)
-h, --help
Print helpinkdex sec sanitizers
Sanitizers
Usage: inkdex sec sanitizers [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--category <CATEGORY>
Category pattern: `exec.*`, `sql.query,exec.*`, `http`
--in <PATH>
Only facts under this path
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--json
Print one JSON document
--lang <LANG>
Languages (py,ts,js,rs,go,ex,java)
--jsonl
Print one JSON object per line
--min-confidence <MIN_CONFIDENCE>
Minimum confidence
--include-neutralized
Keep facts a rule condition neutralized
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--include-tests
Keep facts in test code (a test file, `mod tests`, `#[test]`)
--sarif
SARIF 2.1.0 (no level: yours to set)
-h, --help
Print helpinkdex sec validators
Validators
Usage: inkdex sec validators [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--category <CATEGORY>
Category pattern: `exec.*`, `sql.query,exec.*`, `http`
--in <PATH>
Only facts under this path
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--json
Print one JSON document
--lang <LANG>
Languages (py,ts,js,rs,go,ex,java)
--jsonl
Print one JSON object per line
--min-confidence <MIN_CONFIDENCE>
Minimum confidence
--include-neutralized
Keep facts a rule condition neutralized
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--include-tests
Keep facts in test code (a test file, `mod tests`, `#[test]`)
--sarif
SARIF 2.1.0 (no level: yours to set)
-h, --help
Print helpinkdex sec dangerous
Dangerous APIs, whatever their input
Usage: inkdex sec dangerous [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--category <CATEGORY>
Category pattern: `exec.*`, `sql.query,exec.*`, `http`
--in <PATH>
Only facts under this path
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--json
Print one JSON document
--lang <LANG>
Languages (py,ts,js,rs,go,ex,java)
--jsonl
Print one JSON object per line
--min-confidence <MIN_CONFIDENCE>
Minimum confidence
--include-neutralized
Keep facts a rule condition neutralized
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--include-tests
Keep facts in test code (a test file, `mod tests`, `#[test]`)
--sarif
SARIF 2.1.0 (no level: yours to set)
-h, --help
Print helpinkdex sec secrets
Secrets in string literals
Usage: inkdex sec secrets [OPTIONS]
Options:
--min-entropy <MIN_ENTROPY>
--include-tests Also secrets of test files
--include-neutralized Also placeholders, test keys and example files
--provider <PROVIDER>inkdex sec crypto
Crypto primitives and their parameters
Usage: inkdex sec crypto [OPTIONS]
Options:
--weak Only documented weak attributes: md5, sha1, ECB, DES/RC4, small keys, non-crypto RNG, static IV, non constant-time comparisons (a metadata filter, not a verdict)inkdex sec entrypoints
Entry points (inkdex routes)
Usage: inkdex sec entrypoints [OPTIONS]
Options:
--kind <KIND> Kind: http.route, cli, main…
--unauthenticated Only those where no auth marker was found
--include-tests Keep entry points in test code
--method <METHOD> HTTP method
--framework <FRAMEWORK> Framework
--route <ROUTE> Glob on the routeinkdex sec stats
Facts per kind and category, entry points, summaries
Usage: inkdex sec stats [OPTIONS]inkdex sec flows
Flows from sources to sinks, composed across calls (best per source and sink)
Usage: inkdex sec flows [OPTIONS]
Options:
-C <DIR>
Run as if started in <DIR>
--from <FROM>
Source category pattern (`http.*`) [default: *]
--index <PATH>
Use the .inkdex/ index at <PATH> instead of searching from the current directory
--to <TO>
Sink category pattern (`sql.*,exec.*`) [default: *]
--json
Print one JSON document
--max-depth <MAX_DEPTH>
Calls deep [default: 6]
--jsonl
Print one JSON object per line
--unsanitized
Only flows crossing no sanitizer that protects the sink's category
--min-confidence <MIN_CONFIDENCE>
-q, --quiet
Print nothing; rely on the exit code
--at <REF>
Read this snapshot instead of the current one (`worktree`, a sha, `HEAD~2`, a tag…)
--trace
Print every step of each flow
--limit <LIMIT>
--include-tests
Keep sources and sinks in test code
--sarif
SARIF 2.1.0 (no level: yours to set)
--hide-dismissed
Leave out flows whose sink sits in a symbol dismissed by `annotate dismiss`
-h, --help
Print helpinkdex sec flow
The flow from one source to one sink (fact id or rule@path:line), with its trace
Usage: inkdex sec flow [OPTIONS] <SOURCE> <SINK>
Arguments:
<SOURCE>
<SINK>inkdex sec summary
The taint summary of a function, in words
Usage: inkdex sec summary [OPTIONS] <TARGET>
Arguments:
<TARGET> fq_name, qualified name or file:lineinkdex sec taxonomy
Taxonomies: list, show, validate, test, add, rm
Usage: inkdex sec taxonomy [OPTIONS] <COMMAND>inkdex routes
Entry points (alias of sec entrypoints)
Usage: inkdex routes [OPTIONS]
Options:
--kind <KIND> Kind: http.route, cli, main…
--unauthenticated Only those where no auth marker was found
--include-tests Keep entry points in test code
--method <METHOD> HTTP method
--framework <FRAMEWORK> Framework
--route <ROUTE> Glob on the routeinkdex completions
Shell completion script
Usage: inkdex completions [OPTIONS] <SHELL>
Arguments:
<SHELL> [possible values: bash, elvish, fish, powershell, zsh]inkdex license
Your mlab.sh license: what it allows, activate a key, log out
Usage: inkdex license [OPTIONS] <COMMAND>inkdex license status
What your license allows and does not, its limits and state
Usage: inkdex license status [OPTIONS]inkdex license activate
Keep a license key on this machine and get a license with it (CI: set INKDEX_TOKEN)
Usage: inkdex license activate [OPTIONS] <KEY>
Arguments:
<KEY> The organization's key (mlab.sh, RedKit > Code > Inkdex)inkdex license logout
Forget the key and the license kept on this machine
Usage: inkdex license logout [OPTIONS]inkdex telemetry
What this binary reports to mlab.sh (never source code)
Usage: inkdex telemetry [OPTIONS] <COMMAND>inkdex telemetry show
The stats the last run sent to mlab.sh (or kept for the next sync)
Usage: inkdex telemetry show [OPTIONS]