inkdex docs

Languages and frameworks

The languages inkdex reads, and the frameworks whose routes, inputs and authentication it knows.

inkdex reads Python, TypeScript, JavaScript, Rust, Go, Elixir and Java. Other files are listed (for secrets and settings) but not parsed. Secrets and crypto rules apply to every language.

Entry points by framework

An entry point is where outside data comes in: an HTTP route, a CLI command, a job, a message listener. inkdex knows these frameworks; their handlers' parameters become sources and their authentication becomes a fact (inkdex routes --unauthenticated).

LanguageFrameworks
PythonFlask, FastAPI, Django, Django REST Framework, Graphene, Click, Celery, Dramatiq, RQ, http.server
TypeScript / JavaScriptExpress, Fastify, NestJS, Next.js (App Router, API routes), Remix, Node http, node-cron, BullMQ
Rustaxum, actix-web, Rocket, Salvo, Poem
Gonet/http, gorilla/mux, chi, gin, echo, fiber, httprouter
ElixirPhoenix (router, controllers, LiveView, channels), Absinthe, Plug
JavaSpring MVC, JAX-RS, servlets, @Scheduled, Kafka / RabbitMQ / JMS listeners, main

Authentication

LanguageWhat counts as authentication
Pythondecorators, FastAPI Depends, router dependencies, DRF permissions
TypeScript / JavaScriptroute and router middlewares, NestJS guards
Rustauthentication extractors in handler parameters
Gorouter middlewares, handler wrappers
Elixirpipe_through pipelines, on_mount hooks, plugs that require a user
Java@PreAuthorize, @Secured, @RolesAllowed

Data access

inkdex knows the database APIs of each language (Django ORM, SQLAlchemy, Prisma, TypeORM, diesel, sqlx, database/sql, gorm, Ecto, JDBC, JPA / Hibernate…). That covers raw queries for injection, and writes and deletes for authorization facts.

Dependencies

Manifests read: requirements*.txt, pyproject.toml, package.json, Cargo.toml, go.mod, mix.exs, pom.xml, build.gradle, build.gradle.kts. Lockfiles read: poetry.lock, uv.lock, pdm.lock, package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, Cargo.lock, mix.lock, gradle.lockfile. For each dependency, inkdex records whether your code imports it.

On this page