Skip to content

Releases: FreePyApi/FreeApi

v1.0.1

21 Apr 17:33

Choose a tag to compare

Changelog

All notable changes to this project are documented in this file.

[v1.0.1] - 2026-04-21

Added

  • New Random endpoints:
    • GET /random/color
    • GET /random/gradient
    • GET /random/quote
    • GET /random/joke
    • GET /random/dad_joke
  • New Network endpoints:
    • GET /network/dns
    • GET /network/dns/reverse
    • GET /network/subnet_mask_to_cidr
    • GET /network/cidr_to_subnet_mask
    • GET /network/ip_range
    • GET /network/ip_range/recommended
  • API key management endpoints under auth:
    • POST /auth/api-keys
    • GET /auth/api-keys
    • DELETE /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/, and routes/.
  • Updated archive mounting logic to load archived APIs from route modules instead of requiring archive-local app bootstrap files.
  • Added support for both archive/ and archives/ 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.1 in Vercel redirects, including aliases from /v1 and /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

18 Apr 16:53

Choose a tag to compare

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 /status
    • GET /github
    • GET /favicon.ico
    • GET /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 /live and /ready health endpoints alongside the existing versioned /status route.
  • 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.x updates.
  • Current API version prefix is controlled by FREEAPI_CURRENT_VERSION (default: 1.0.0).