Skip to content

Latest commit

 

History

History
251 lines (136 loc) · 15.3 KB

File metadata and controls

251 lines (136 loc) · 15.3 KB

1.20.0 (2026-07-01)

  • feat: record install attribution method and matched signals (#32) (b82dce4), closes #32

1.19.0 (2026-07-01)

  • feat: classify and exclude bot traffic at click ingestion (#31) (d9ddefa), closes #31

1.18.0 (2026-06-19)

  • feat(redirect): optional click-id passthrough on web destinations (#30) (728d9cd), closes #30
  • chore(sdk): genericize appToken comment (no private-product references) (#29) (af69880), closes #29

1.17.0 (2026-06-08)

  • feat(sdk): capture SDK name + version on install and events (#28) (c38f10f), closes #28

1.16.0 (2026-06-08)

  • feat(sdk): persist last-click attribution on in-app events (SIT-237) (#27) (24dff3e), closes #27

1.15.2 (2026-06-04)

  • fix(attribution): ignore shared/NAT IPs in fingerprint matching + support CDN client-IP header (#26) (58684e1), closes #26

1.15.1 (2026-05-04)

  • docs(sdk-spec): document optional appToken for Cloud install scoping (#25) (9bf399c), closes #25 #24

1.15.0 (2026-05-04)

1.14.7 (2026-04-27)

  • ci: drop unneeded npm@latest update step (4ccffbe)
  • fix(redirect): browser-aware mobile fallback so regular browsers go to App Store (#23) (0c84eee), closes #23
  • FIX: Adding engines to prevent installation unsupported nodejs versions (#14) (e6efcf6), closes #14

1.14.6 (2026-04-01)

  • fix: remove competitor pricing (1c2351b)

1.14.5 (2026-04-01)

  • fix: prioritize web fallback over app store URL in redirect handler (6345b99)

1.14.4 (2026-03-30)

  • Merge pull request #13 from fantaJinMode/qrcode_types_to_dev_dependencies (c6e803f), closes #13
  • FIX: Adding @types/qqrcode to dev dependencies (8c15a05)

1.14.3 (2026-03-27)

  • Merge pull request #11 from fantaJinMode/jsdoc_comments_for_exported_func (c75ac54), closes #11
  • FIX: JSDoc comments for exported function (ab76241)

1.14.2 (2026-03-26)

  • fix(ci): remove dist asset uploads from GitHub releases (99b669b)

1.14.1 (2026-03-26)

  • Clean up features from README (02141a0)
  • Merge pull request #20 from RaoUsama7/fix/link-cache-invalidation (74febe4), closes #20
  • Merge pull request #21 from RaoUsama7/fix/client-ip-followup (cdea12c), closes #21
  • Update README.md (#19) (9b7dd91), closes #19
  • fix(cache): invalidate link resolution cache on update and delete (151af71)
  • fix(cache): invalidate link resolution cache on update and delete (7c2510a)

1.14.0 (2026-03-23)

  • feat: extend interstitial page to all mobile requests and preserve URL fragments (9b20190)

1.13.7 (2026-03-16)

  • fix: implement URL fallback chain in redirect handler to prevent 500 errors (#17) (3e3ee12), closes #17

1.13.6 (2026-03-16)

  • fix: correct repository URL casing for npm provenance verification (4e0487a)

1.13.5 (2026-03-16)

  • fix: update release workflow for npm trusted publishing with OIDC (b26ad63)
  • fix: upgrade @semantic-release/npm to v13 for OIDC trusted publishing support (386048a)
  • fix: upgrade semantic-release to v25 for OIDC trusted publishing (1050651)

1.13.4 (2026-03-16)

Bug Fixes

  • server: trust proxy and trusted client IP for redirect and attribution (#10) (de12521)

1.13.3 (2026-03-13)

Documentation

  • add User Identity section and update SDK spec for setExternalUserId (735bf72), closes #8

1.13.2 (2026-03-10)

Bug Fixes

  • restore .js extension in fingerprint.ts database import for ESM resolution (486cd65)

1.13.1 (2026-03-10)

Bug Fixes

  • use vitest Mock type for db.query mock to fix CI type errors (86237e1)

1.13.0 (2026-03-10)

Features

  • add sdk_event webhook event type (3a2809f)

1.12.2 (2026-03-04)

Documentation

  • add revenue event convention to SDK event endpoint comment (5880109)

1.6.6 (2026-03-03)

Documentation

  • require template ID for SDK link creation (#4) (bff8420)

1.6.5 (2026-03-02)

Bug Fixes

  • rename ios_url/android_url to ios_app_store_url/android_app_store_url in SQL queries (#3) (49f52c0)

1.6.4 (2026-02-28)

Documentation

  • add Docker Hub overview with competitor positioning (48353b9)
  • remove shields.io badge from Docker Hub overview (33c5f20)

1.6.3 (2026-02-27)

Documentation

  • optimize README for LLM discoverability and fix SDK listings (2804f7e)

1.6.2 (2026-02-27)

Documentation

  • add llms.txt for LLM-optimized integration reference (52c95dd)

1.6.1 (2026-02-25)

Documentation

  • add SDK feature specification for contributors (9272bb7)

Changelog

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Automated releases are managed by semantic-release.

1.6.0 (2026-02-20)

Features

  • Add link templates — New link_templates table and full CRUD API (GET/POST/PUT/DELETE /api/templates, PUT /api/templates/:id/set-default). Templates provide reusable default settings (platform URLs, UTM parameters, targeting rules, attribution windows) that are applied when creating links. Auto-generates unique 8-character alphanumeric slugs for template-based short URLs (/:templateSlug/:shortCode).
  • Add templateId to link creation — Links can now be assigned to a template via the optional templateId field. Template slug is included in link query responses as template_slug.
  • Add LinkTemplate, LinkTemplateSettings, CreateTemplateRequest, UpdateTemplateRequest types — New TypeScript interfaces for template management, exported from @linkforty/core/types.

1.5.1 (2026-02-20)

Documentation

  • Rewrite README for v1.5.0 framework changes — Updated description to reflect framework-first philosophy, removed users table from schema docs, made userId optional in all API examples, added missing endpoints (webhooks, QR codes, SDK, debug, well-known, OG preview), added missing database tables (device_fingerprints, install_events, in_app_events, webhooks), fixed field names (iosAppStoreUrl/androidAppStoreUrl), fixed SDK package name to @linkforty/mobile-sdk-react-native

1.5.0 (2026-02-20)

BREAKING CHANGES - Making Core less opinionated

  • Remove users table from Core — Core no longer creates or manages a users table. Authentication and user management are now the consumer's responsibility, aligning Core with a framework-first philosophy (bring your own auth). Consumers that relied on Core's users table must create it themselves before any tables that reference users(id).
  • Make user_id nullable on links and webhooks tables — The user_id column on both links and webhooks is now nullable with no foreign key constraint. This enables single-tenant usage without a user model.
  • Remove User, Organization, AppConfig, and OrganizationSettings types — These Cloud-only types have been removed from @linkforty/core/types. Consumers that imported them must define their own.

Features

  • Optional userId across all API endpoints — All link, analytics, webhook, and debug endpoints now accept userId as an optional parameter. When provided, queries are scoped to that user (multi-tenant mode). When omitted, all records are accessible (single-tenant mode).
  • Single-tenant mode — Core can now be used without any user/auth model. Create and manage links, view analytics, and configure webhooks without providing a userId.
  • WebSocket live debug stream no longer requires userId — When userId is omitted, the /api/debug/live WebSocket streams all click events.

Removed

  • users table DDL and idx_users_email index from initializeDatabase()
  • JWT_SECRET and email configuration sections from .env.example
  • User, Organization, AppConfig, OrganizationSettings interfaces from types

1.4.4 (2026-02-11)

Features

  • Add SDK resolve endpoint for App Links and Universal Links deep linking (GET /api/sdk/v1/resolve/:shortCode and GET /api/sdk/v1/resolve/:templateSlug/:shortCode) — returns deep link data as JSON when the mobile OS intercepts a LinkForty URL before the server can process the redirect
  • Include deep_link_parameters in deferred deep linking responses from /api/sdk/v1/install and /api/sdk/v1/attribution/:fingerprint

Bug Fixes

  • Fix deferred deep links not returning custom parameters — the install attribution query now selects deep_link_parameters from the links table and includes them in the SDK response

1.0.0 (2025-12-11)

Features

  • Add debugging and testing routes for link validation (c51d68c)
  • Add deferred deep linking with probabilistic fingerprint matching (03c1d3e)
  • Add event emitter for real-time click event streaming (5641adf)
  • Add OG tags and attribution windows to link API (0b3cd3c)
  • Add Open Graph preview route for social media scrapers (1402d65)
  • Add Open Graph tags, attribution windows, and description to links schema (ed6575f)
  • Add QR code generation for short links (3601b2c)
  • Emit real-time click events and fix device detection (331900c)
  • Export new routes and modules (6e874bb)
  • Update Link types with OG tags and attribution windows (5fa2686)

Bug Fixes

  • Remove Cloud-only webhook-logger and add missing types (e9668c4)
  • Use compatible Fastify WebSocket version and fix module output (970cd8c)
  • Use SHORTLINK_DOMAIN env var for QR code URLs (72d9f69)

Documentation

  • add CI and code coverage badges to README (2903a34)
  • add comprehensive CI/CD and contribution documentation (dcb4c5b)