Skip to content

v1.0

Compare
Choose a tag to compare
@JakeUrban JakeUrban released this 10 Sep 21:59
· 332 commits to master since this release

Polaris 1.0 Overview

Polaris' development has been incremental, so 1.0 does not introduce any major features or changes to the data model. Rather it serves as a benchmark of the software's maturity and completeness.

In general, Polaris offers support for full implementations of:

  • SEP-1 TOML files
  • SEP-6 Noninteractive Deposit and Withdrawal
  • SEP-10 Authentication
  • SEP-12 Customer KYC Information
  • SEP-24 Interactive Deposit & Withdrawal
  • SEP-31 Direct Fiat-to-Fiat Payments

Polaris implements the API's defined in each SEP, the processes needed for periodic tasks, and the core data model used to facilitate the protocols listed above. Polaris also provides an integration interface, or set of classes and functions, that allow anchors to implement logic specific to their organization and business needs.

Integrations

  • DepositIntegration and WithdrawalIntegration
    • Used for SEP-6 and SEP-24 form and transaction processing
  • SEP31ReceiverIntegration
    • Used for processing SEP-31 payments
  • CustomerIntegration
    • Used for SEP-12 KYC/Customer information management
  • RailsIntegration
    • Used for connecting to the anchor's off-chain banking or payment rails
  • JavaScript integration
    • Used to add client-side JS code to HTML pages displayed to SEP-24 users
  • TOML integration
    • Used to add attributes defined in SEP-1 to the stellar.toml file
  • Fee integration
    • Used for calculating custom fee amounts for SEP-24 transactions

1.0 Changelog

Features

  • A testnet command was added to make issuing assets and testnet resets easier
  • Polaris now fully supports logging via the logging standard python package
  • PolarisSameSiteMiddleware is no longer required for SEP-24 anchors
  • All environment variables can be listed in settings.py by prepending the variable name with 'POLARIS_'
    • This strategy comes with security concerns. Ensure your secrets are never checked into source control
  • SEP-12 PUT /customer requests can use the id parameter as recently added to the SEP

Breaking Changes

  • All polaris-specific variables defined in settings.py must now be prepended with 'POLARIS_'
    • This applies to ACTIVE_SEPS and ENV_PATH
    • As well as any environment variables specified within the settings.py file
  • The scripts integration function must now return a list of TemplateScript objects
    • TemplateScript objects contain a JS source file path and other meta data
  • The SEP-12 .delete() integration function now must raise the Django exception ObjectDoesNotExist for 404 HTTP responses
    • This exception replaces ValueError
  • SEP-31 GET /customer was updated to include a 404 response
    • Polaris' .get() integration function should raise ObjectDoesNotExist for 404, ValueError for 400

Database Changes

There are no schema changes from 0.13.2 to 1.0. However, 1.0 squashes all migrations files generated prior to this release. Make sure to update your database's django_migrations table by deleting all migrations after 0001_initial where app='polaris'. This will ensure the eventual second migration will be applied properly.