Releases: FreePyApi/FreeApi
Releases · FreePyApi/FreeApi
v1.0.1
Changelog
All notable changes to this project are documented in this file.
[v1.0.1] - 2026-04-21
Added
- New Random endpoints:
GET /random/colorGET /random/gradientGET /random/quoteGET /random/jokeGET /random/dad_joke
- New Network endpoints:
GET /network/dnsGET /network/dns/reverseGET /network/subnet_mask_to_cidrGET /network/cidr_to_subnet_maskGET /network/ip_rangeGET /network/ip_range/recommended
- API key management endpoints under auth:
POST /auth/api-keysGET /auth/api-keysDELETE /auth/api-keys/{key_uuid}
- Structured app layers for config, routes, models, and services (
src/config,src/routes,src/models,src/services) to support cleaner module boundaries and easier maintenance. - New test coverage for archive layout rules and module-level behavior (
dev,network,random).
Changed
- Reworked archive version layout: archive versions now contain only
assets/,modules/, androutes/. - Updated archive mounting logic to load archived APIs from route modules instead of requiring archive-local app bootstrap files.
- Added support for both
archive/andarchives/as archive roots at runtime. - Wired the main API app through dedicated route modules and expanded router registration for new feature groups.
- Updated deployment/version routing defaults to
v1.0.1in Vercel redirects, including aliases from/v1and/v1.0. - Expanded runtime dependencies for new capabilities (
argon2-cffi,psycopg[binary],redis,numpy,dnspython).
Fixed
- Improved HTTP status behavior for module responses that include explicit
{"error": ..., "code": ...}payloads, so returned status codes now align with module error codes. - Improved repository test organization by splitting module tests by domain and removing the old aggregated module test file.
Security
- Added API key hashing via Argon2 with optional pepper support (
API_KEY_PEPPER). - Added Postgres-backed API key persistence with per-user active-key limits and key lifecycle metadata.
- Kept stable unversioned OAuth callback/login/logout endpoints on the gateway to avoid redirect issues with external OAuth providers.
Notes
- The latest API version is now
v1.0.1. - Canonical endpoints remain versioned under
/v1.0.1/*, while unversioned endpoints continue to redirect to the latest version.
What's Changed
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Changelog
All notable changes to this project are documented in this file.
[v1.0.0] - 2026-04-18
Added
- Initial public release of FreeAPI with versioned routing under
/v1.0.0/*. - Version gateway that redirects unversioned routes (for example
/docs,/status,/openapi.json) to the latest version with HTTP 307. - Automatic mounting support for archived API versions from
archive/vX.Y.Z/main.py. - Root and utility endpoints:
GET /GET /statusGET /githubGET /favicon.icoGET /favicon.svg
- Text module endpoints:
- Counting: words, characters, sentences, paragraphs, and combined counters
- Password tools: strength evaluation, generator, and disclaimer endpoint
- Formatting tools: slugify, camelCase, PascalCase
- Lorem Ipsum generator
- DateTime module endpoints:
- UNIX timestamp (with NTP fallback strategy)
- Time formatting and timezone conversion
- Timezone listing
- Time difference, leap year check, weekday lookup, daylight-saving check
- Geo module endpoints:
- Geocoding by address
- Reverse geocoding to address
- Sea check by coordinates
- Timezone lookup by coordinates
- UUID and hashing module endpoints:
- UUID generation and validation
- UUID decoding details
- String hashing (
md5,sha1,sha256) - Base64 encode/decode
- Math module endpoints:
- Unit conversion with support for formula-based, metric, and data-size conversions
- Conversion type and unit name discovery
- Prime check, odd/even check, factorial, random number, Fibonacci
- Static asset serving under
/assets. - Containerized deployment support (
docker/Dockerfile,docker/docker-compose.yml) and local Python run instructions in README.
Security
- Optional OAuth2 login flow (GitHub defaults, environment-variable configurable provider endpoints).
- Auth-protected routes when OAuth is enabled, with public path allowlist.
- Signed auth cookies using
itsdangerous. - Production-only rate limiting middleware (
ENV=prod|production).
Changed
- Added a shared settings layer for startup-time configuration validation and environment-driven behavior.
- Added structured JSON logging, request lifecycle logging, and explicit error handlers for validation and unexpected failures.
- Added
/liveand/readyhealth endpoints alongside the existing versioned/statusroute. - Hardened the text, datetime, and geo helper modules with safer defaults, secure password generation, and timeout-aware external calls.
- Added regression tests covering version redirects, scalar text counting, runtime timestamp formatting, and geocoding failure handling.
Notes
- This is the first stable release and baseline for future
v1.xupdates. - Current API version prefix is controlled by
FREEAPI_CURRENT_VERSION(default:1.0.0).