Changelog for Caliper SDK

Current Version: [2.284.0]

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Released Versions:

v2.284.0 - 2025-08-18

Added

  • Adds a new HqSessionCache DbObject

  • Adds the q2 db get_hq_session_cache CLI command

  • Adds the q2 db update_system_property_data CLI command

Fixed

  • Fixes a bug with non-nested vendor configs in the AccountHistory Adapter extension type

v2.283.1 - 2025-08-14

Fixed

  • Fixes stored proc sdk_UnlinkAccount to prevent foreign key errors

  • Updates sdk_UpdateWedgeAddress to have the same timeout value as the install

Changed

  • Adds DB_PLAN to ExternalAuth template when creating a new extension

v2.283.0 - 2025-08-13

Changed

  • Temporarily add Python3.9 back in base file

  • Updated the Sandbox DB Update task due to DB Host change

Fixed

  • Fixes issue with Adapter extensions setting VAULT_SCOPED_READ = True and MULTITENANT = False where the HQ_CREDENTIALS does not get set

  • Fixes an issue with the @cache decorator that caused the decorated function to be called every time instead of just when the cache had expired

Added

  • Add Gitlab mirroring to the shared pipeline for partner repos

  • Add a minimum version of Tecton to q2 check

  • Allow external callers (CDM) to pass in is_unauthenticated and is_mfa to online_installer.install method

  • Add Optional type hint to many places where it was missing (a work in progress)

  • Add new DB Object for dbo.Q2_DataType . Only get is supported ATM

v2.282.0 - 2025-08-01

Added

  • Adds search_by_internal_number to HostAccount DbObject

  • PropertyLongName is now configurable on Form install

  • Ardent extensions can now be installed with a new name if the extension is already installed

Fixed

  • Fix q2 sandbox instant_payments enable for optional reply_parent_request_types and external_transaction_type_id fields

  • Fixes bad join in ZoneSystemProperty related tables

  • Fixes bug where CIFs in ExternalAuth’s Check Password route should be Optional

Changed

  • Cleans up sdk_AddAdapterInterface SQL

v2.281.0 - 2025-07-29

Added

  • Add a q2 sandbox treasury command to enable/disable treasury functionality in the sandbox

  • Ensure company name shows up in more cases in the advanced field on Form/SSO install

Changed

  • Rework q2 tecton inheritance structure

  • Changes SendAccountDetails in DBPlan from a boolean to an enum with 3 options. Defaults to SEND_FROM_CACHE, which was the intended value all along

  • Improve performance on sdk_OAuth* tables

Fixed

  • Fix an issue with LinkedAccount.delete that could fail with a foreign key error

  • Fix a stored proc variable name mismatch in sdk_GetExternalTransfersByProcessDate

v2.280.0 - 2025-07-22

Added

  • Upgrades to Python 3.13 base

  • Shared dev box users can upgrade using the upgrade_python_version 3.13 command

  • caliper_admin script updated to reflect python3.13 additions

v2.279.0 - 2025-07-22

Added

  • Adds IsoCodeA2 to Address.get() response

  • GeneratedTransactions DbObject adds a get_by_process_date_range() method

Changed

  • Increases default node version to 22 (from 20)

v2.278.1 - 2025-07-17

Fixed

  • Convert booleans into strings in UiConfigPropertyData InstallStep

  • Properly handles JSON data field in EDV requests

v2.278.0 - 2025-07-14

Added

  • q2 create_online_user now prompts for copying accounts from another user

  • OTEL span decorator now works with kw_only functions/methods and adding functools.wraps to preserve the decorated signatures

  • VendorId is accessible on NavNodeRow

  • UserPropertyDataElement, ApiStoredProc and CentralNavNode now have RepresentationRows

  • TableRow now properly supports setattr and setitem

  • Improves error handling in Q2ConfigRequestHandler based extensions

  • Improved Type hinting on all objects that take Q2Logger (now hinted as Q2LoggerType)

  • Allows passing a primary_cif on EnrolledEntity.create_user

Changed

  • Performance improvements on Form.get

Fixed

  • Correct AccountAddress AddressType type hint in RepresentationRow

  • self.core no longer blows up when called from CaliperAPI handlers

v2.277.1 - 2025-07-07

Changed

  • q2 insight command now operates on new AWS based instance by default

Added

  • Adds is_dev, is_staging, and environment properties to Q2 Insight DbRows

  • Whitelists new SDK Corporate AWS environment for q2_request calls

v2.277.0 - 2025-07-03

Added

  • Adds get_by_user_id method to UserPropertyData DbObject

  • Adds get_by_customer_id method to UserPropertyData DbObject

  • Adds delete method to Address DbObject

  • Adds get_by_address_id method to AccountAddress DbObject

  • Adds q2 db get_account_address_by_address_id CLI entrypoint

  • Moves ExternalAuth stored procs out of dev_only

  • Adds fields to AdminUserLogon.get response

  • Adds audit details to Tecton MFA audit records

Fixed

  • Fixes an issue with newer tornado versions not passing along form fields from Tecton unauthenticated extensions

  • Improves flexibility in @cache key naming

  • Fixes a bug with message_bus.encrypt and message_bus.decrypt if calling message_bus.CIPHER.calc_hmac directly

Changed

  • Internal organization of q2 tecton entrypoint

v2.276.0 - 2025-06-26

Added

  • (Internal) Enables creation of q2config_override_local.py

Fixed

  • Fixed calling the @cache decorator with positional parameters

  • Fixes schema check on all sql files

  • Q2Config extensions now have a better solution for determining if the developer is internal / external.

v2.275.0 - 2025-06-23

Added

  • Adds HostAccountClickType DbObject.

  • Adds create, update and delete methods on HostAccountClickType DbObject.

  • Adds add_or_update_third_party_data cli entrypoint to ThirdPartyData DbObject.

  • Adds add_or_update method to ThirdPartyData DbObject.

  • (Internal)Checks for feature flag during installation of Q2config extensions

Fixed

  • Fix Audit Action Handler’s parsing of the Details field from the incoming HQ request.

v2.274.0 - 2025-06-20

Added

  • Adds the --level flag to q2 vault cli

  • Adds accounts related extension outlets to tecton CLI.

  • mock_q2_request decorator now provides enable_soap_wrapper, enable_api_wrapper, and version_number helper params

  • UiConfigPropertyData InstallStep now has context of is_central to know backoffice capabilities

Changed

  • Moves native mobile docs to their own site (https://mobile.q2developer.com/docs/)

Fixed

  • DevOnly ThirdPartyData InstallStep will warn but no longer break the rest of the uninstall

  • Fixes bug with merging of outlets across deploys

  • AddressRow rename hinted ISsoCodeA3 -> IsoCodeA3

  • GroupRow rename hinted EDVProfileID -> EdvProfileID

v2.273.0 - 2025-06-11

Added

  • Adds get method to GtFlavor DbObject.

  • Adds get_gtflavors cli parser to GtFlavor DbObject.

v2.272.0 - 2025-06-09

Added

  • Adds a q2 sandbox transaction_date for bringing postdates up to date

Fixed

  • Patches a potential race condition in multitenant message_bus encryption/decryption

  • Fixes newlines in the UUX Payload parsing during form uninstall

  • Fix unsupported unicode characters in sql scripts.

  • Fix bad import in entrypoints.db

Changed

  • Improve adapter uninstall CLI naming

v2.271.0 - 2025-06-04

Added

  • Message bus now adds auto_compress variable which when True now automatically zlib compresses the message if it’s size > MIN_ENCRYPT_SIZE bytes

  • Adds SystemPropertyDataWithReferences DbObject.

  • Adds HostAccountDataElementWithReferences DbObject.

  • Adds ZoneSystemPropertyDataWithReferences DbObject.

  • Adds extension_name variable to dbplan InstallStep.

Fixed

  • Multitenant extensions now invalidate HQ at startup only when running locally.

  • Improvements to Local-dev to get more targeted calls.

  • Fixes bug with wrong IP address in Instant Payments after installation.

  • OAuth token sql scripts require Expiry alias.

v2.270.0 - 2025-05-28

Added

  • Adds unset_primary_cif parameter to update method of User DbObject.

  • Officially moves EDV, Instant Payments, and External Auth out of beta

  • Adds a HostTranCodeGroup InstallStep into DbPlan

  • Add indexes to the sdk_OAuthToken table

  • SkipGetUnsignedToken will be enabled by default in new installs

Fixed

  • Message Bus local dev now ignores any HTTP_PROXY settings

  • Fixes a bug with q2 setup on blank repos asking you to run q2 setup

  • Better error message when q2 cache does not provide a subparser

v2.269.0 - 2025-05-20

Added

  • Adds new HQ API endpoint GetEdvMfaType.

  • Adds new parameter audit_action_name to mfa_validation_required decorator.

  • External MFA extensions now include a self.mfa_info object, providing detailed context about the current MFA workflow

  • Adds a unique call Id to q2_request logging data to facilitate easier tracking of request lifecycle in a chatty extension.

  • Adds a get_version_from_toml method to the settings file.

  • Future proofing some EDV Handler response shapes

Fixed

  • Caliper API Custom Endpoint extensions now implement stack_cache method.

  • q2 create_extension no longer allows spaces or punctuation in extension name.

  • Reverting back to lxml<5.4 and xmlsec==1.3.14 for stability across all target systems

  • Fixes RequestMock for Tornado>=6.5

  • Fixes a bug with q2 add_dependency if the target package exists in a requirements.txt comment already.

  • Fixes a bug when timeout is passed to the @cache decorator as a position rather than keyword argument.

v2.268.0 - 2025-05-12

Added

  • The MFA database operations are no longer dev_only

Fixed

  • get_load_balanced_ips method no longer returns empty list when invalidating hq cache.

  • q2 add_dependency —search now handles error.

  • q2 insight login now stores token.

v2.267.0 - 2025-05-07

Added

  • Adds link_vendor_to_product on Product DbObject which allow Account Details extension work as sso.

  • Adds support for setting service base URL from environment variables for Q2config type extensions

  • Adds authenticate method to Insight API login wrapper to get more details from the response

Fixed

  • Installing AuditAction extension type for ExecuteWedgeRequest is now not allowed

  • Fixes q2 test -—coverage when no python modules are found

  • Improves startup time on q2 run

  • Fixes implementation of get_tracer method in Q2TracerProvider

  • q2 add_to_nav entrypoint now allows adding nav nodes under menu items

v2.266.1 - 2025-04-29

Fixed

  • Fixed bugs related to adding a new ObjectGroup data.

  • Saml signing on MAC is now more robust.

  • Fixes cache scoping on CaliperApiCustom extension handler.

v2.266.0 - 2025-04-25

Added

  • Edv extension now has CUSTOM_AUDIT_ACTIONS field which allows adding list of custom audit actions.

  • Adds overpanel display options to q2 tecton cli entrypoint.

Fixed

  • Installing the SDK with sso extras enabled (pip install q2-sdk[sso]) will ensure compatible version of xmlsec (1.3.15)

  • The name ‘Nan’ is now not interpreted as a float NaN for name fields on OnlineUser model

  • Installing Instant Payments extension now shows appropriate error message if duplicate vendor exists.

Changed

  • @cache decorator now uses function arguments as part of its cache key

v2.265.1 - 2025-04-11

Changed

  • Updates OpenTelemetry version from 1.24 -> 1.32

Fixed

  • Ensures cached vault data is a dictionary

  • Only refresh the Q2Config discovery service during local development

  • Fixes bug with testing Holocron errors at local dev time (multitenant adapter extensions in particular)

  • Fixes a few cache key issues with multitenant services when looking up DbConfigs

Added

  • EDV now supports ChangeUserLoginName and ChangePassword actions

  • EDVRequest now also tracks is_prelogon_session, is_csr_assist_session, and audit_id if available from HQ

v2.265.0 - 2025-04-09

Added

  • Adds with_recipient_id boolean parameter to get_ach_details method of Transactions DbObject. Defaulted to False controls retrieving additional recipient details.

  • Allows adding PCC to salesforce when a new extension is installed.

Fixed

  • Q2 Config extensions now does not appear in menu options.

  • Removes unused overpanelReady property from tecton entrypoint

v2.264.0 - 2025-04-07

Added

  • Adds caching to self.vault

  • settings.DEPLOY_ENV is now an enum of the environments (DEV/STG/PROD)

  • Errors on customer creation from EnrolledEntity will be logged at the exception level along with returned in the response to the caller

  • Adds GTFlavorID field to GeneratedTransactionsRow DbObject

  • Adds get_by_id, add, and update to ObjectGroup DbObject

Fixed

  • Fixes lingering issues with cache scoping

  • Fixes issue with q2 update_installed around q2_config extensions

  • Updates Holocron URLs to default to AWS versions

  • Handles bug where unescaped data might show up in AuditDetails handler input

  • Fixes bug with q2 check and newer q2-tecton-sdk version strings

  • Cleanup and testing on the builtin jinja, html, and javascript templates generated by the SDK

v2.263.0 - 2025-03-28

Added

  • Adds ttlYears to ArdentFs endpoints for long term storage

  • Adds change_account_product method to HostAccount DbObject

Fixed

  • Fix syntax error with generated package.json introduced in 2.262.0

Security

  • Adds stack/service/session level scoping to self.cache (for parity with @cache decorator)

v2.262.1 - 2025-03-25

Fixed

  • Reverts cache scoping draft PR that was accidentally merged in in 2.262.0

v2.262.0 - 2025-03-24

Added

  • run_db_plan entrypoint now works with both list and top level dictionary inputs

  • Adds the AdminTextElement DbObject and corresponding CLI get command

  • GeneratedTransaction DbObject will now return more data fields

  • (Internal) Initial support for Q2Config extensions

Fixed

  • Audit Category install step will now run before Audit Action install steps

  • Fixes a bug getting lastLogin for AdminUserLogon’s where it would always default to now

  • Fixes a bug where ProductType.create could create duplicate product_types

v2.261.1 - 2025-03-13

Fixed

  • Fixes a bug introduced in 2.261.0 with the base tecton form inherited javascript

v2.261.0 - 2025-03-11

Added

  • Adds new Redirection based MFA flow for MFA handlers

Fixed

  • Handles a few edgecases in q2_tecton_form with undefined variables

v2.260.0 - 2025-03-06

Added

  • Adds require_token_if_not_suspect to add method of EDVDetail DbObject.

  • Adds **kwargs for call_hq method signature in DbObject

Fixed

  • Fixes default value of token_life_in_minutes to 0 while installing edv adapter.

  • Fixes errors with VENDOR_CONFIGS in adapter extensions when MULTITENANT=True

v2.259.0 - 2025-02-28

Added

  • Uninstalling an Online extension with MFA integration now removes all the attached MFA Group Profiles

  • Adds run_async method to base handler to easily run a non-async function in the background.

Deprecated

  • @cache decorator’s use_session_cache param

Security

  • @cache decorator now takes in a storage_level parameter, which defaults to locking down cache calls to the customer environment to better support multitenant deployments

Fixed

  • ruff version locked to <=0.9.7 temporarily for compatibility with existing codebase

v2.258.0 - 2025-02-25

Added

  • OnlineUser now supports ZoneId.

v2.257.0 - 2025-02-20

Added

  • Adds q2 check warnings for console.logs and minimum suggested Tecton version.

  • Adds new HQ endpoints:

    • UpdateVendorStatusOnOutgoingTransaction

    • SetProcessedTransactionToFailed

  • add method on LinkedAccount DbObject now adds support for user_role_id.

Fixed

  • Improves performance of getting funds transfer by host_account_id

  • Fixes a bug with calling setup_db through the websocket

  • CheckImage adapter now sets routing_number to ABA if routing_number is not present.

  • get_recipients on Recipient DbObject now handles if recipients are missing.

v2.256.0 - 2025-02-12

Added

  • Adds new metadata on Central install for use with generating accurate PCCs

  • Vault get_hq_creds will now include the env_stack if available

  • Adds a get_system_notifications method to MarketingPageName DbObject

  • Adds an update method to Datafeed DbObject

Changed

  • Instant Payments now handles allow_expiry, require_expiry, allow_requested_execution, allow_amount_modification, and require_amount_modification as properties of the handler, used at install time, rather than in the q2 sandbox subcommand

Fixed

  • Improves invalidation logic to include HQs behind an AWS load balancer

  • Adds missing templates to create_extension for EDV

  • Adds missing SupportedAuditActions import to newly generated EDV extension types

  • Newly generated SSR frontend directories prefer index.css to main.css again (since 2.255.0)

  • Changes to allow multiple addresses to be associated to an account using the account_address db object

v2.255.1 - 2025-02-04

Fixed

  • Bad import in startup

v2.255.0 - 2025-02-04

Added

  • Adds log replay functionality to Audit Action handlers

  • Documentation improvements on create_coreflow tutorial

  • Documentation string improvements on self.get_tecton_form

  • Adds delete_all_for_vendor method to ThirdPartyData DbObject

  • Adds a new setting INCLUDE_QUERY_PARAMS_IN_LOGS to toggle this behavior

  • Adds a new environment variable Q2SDK_INCLUDE_QUERY_PARAMS_IN_LOGS

  • Adds a main.css file to SSR frontend directories

  • Central handler Description field adds appropriate attributes on install

Fixed

  • Updates q2 sandbox external_mfa command and documentation to work better from a clean environment

  • Local Dev Api Websocket can now handle larger jwt sizes (for certified partners with many databases)

  • Fixes a bug in Console extensions where a call to Tecton’s setTitle function would cause prevent the form render

  • Fix bug with SSO uninstall if third party data was written to the database

  • Fixes bug with AdminUserLogon DbObject that was preventing disable in some cases

Changed

  • Switches CSR extensions from CPX/Parcel to Vite

v2.254.0 - 2025-01-24

Added

  • Adds a new adapter type! EDV(Event Driven Validation): Adapter type that allows validation on certain events defined through AuditActions. Tutorial docs updated appropriately

  • Adds new DbObjects:

    • EdvDetail

    • EdvProfile

  • Adds new cli entrypoints: under EdvProfile DbObject.

    • get_edv_profile_by_profile_id

    • get_edv_profiles

  • Adds new cli entrypoints: under EdvDetail DbObject

    • add_edv_detail

    • get_edv_detail

    • remove_edv_detail

  • Adds new method update_group to Group DbObject.

  • Adds new adapter data model EdvRequest.

  • Adds new sandbox cli subparser edv

  • Handles pre-auth tokens when setting External MFA tokens with HQ

  • local-dev-api now has /sendInternationalWire and /sendDomesticWire endpoints to be used during International Wire and Domestic Wire Adapter tutorials.

Fixed

  • Adapters now respect Vendor Configurations on extension.py during update operation.

  • Updates tecton server side extension template to fix page padding.

  • Allows overriding the span kind at span instrument time.

  • Handles when no preferred hq_list is present during q2 invalidate_hq_cache

v2.253.0 - 2025-01-17

Added

  • Adds initial support for Pinion (live online banking notification) accessible with the self.pinion property on the handler

  • Adds self.cache property to entrypoints

  • Adds a few new helpers to self.get_tecton_form

Fixed

  • Fixes bug with saml issue_instant and authn_instant timestamp generation since version 2.247.0

  • Fixes some instances of multiline strings not printing well in smaller window sizes in the CLI

Changed

  • Refactors React and Vue starter projects to use updated tecton framework wrappers

v2.252.0 - 2025-01-09

Added

  • Introduces a self.db.user.get_admin_users_by_customer_id

  • Introduces CLI command q2 db get_admin_users_by_customer_id

  • Upgrades to External MFA (Beta) to handle new database schema for MFAGroupProfile

Fixed

  • Metrics route will no longer fill up the summary logs

  • Fix province in Address and AccountAddress to serialize as a StringElement instead of an IntElement

Changed

  • Improve efficiency of network call to get the latest tecton version

v2.251.0 - 2025-01-02

Added

  • Adds new cli endpoint get_admin_group_property_data on AdminUserPropertyData DBObject.

  • Adds new method get_all_group_properties on AdminUserPropertyData DBObject.

Fixed

  • Fixes bug with blank text value on NavNode DbObject.

  • External MFA adapter now checks for “product_type_id” and installs properly.

  • local-dev-api now handles query params escaping.

  • Fixed package.json templates to execute commands sequentially.

v2.250.0 - 2024-12-18

Added

  • All adapter handles now support self.db_configs

Fixed

  • Fixes issue with multitenant Adapter handlers without DbConfigs throwing errors on load (since 2.248.0)

v2.249.0 - 2024-12-11

Added

  • New HQ Endpoints:

    • Q2Api

      • PurgeAdminSessionsByUserId

      • PurgeAdminSessionsByUserIdOneTimeToken

      • PurgeUserSessionsByUserLogonIdOneTimeToken

      • SetAuthTokenSerial

    • WedgeOnlineBanking

      • SetAuthTokenSerial

  • Creates Email object in DemographicInfo with is_sac_target boolean

  • DemographicInfo now accepts Email objects in addition to just strings

  • DevApp2.0 Android docs

  • Docs on third party dependencies for mobile SDK

  • Docs on Java version control for mobile SDK

Changed

  • Change casing in AcceptIncomingRealTimePaymentTransaction to match new HQ builds

Fixed

  • Better type hinting on FundsTransfer DbObject responses

  • Fixes bug where pre authenticated HqTokens were being ignored for ExternalMFA adapters

v2.248.0 - 2024-12-04

Added

  • Reworks GTFlavors to align with the new company direction (docs and stored procs updated as well)

  • address_id is now returned with UserDemographicData DbObject’s get method

  • Adds get_by_login to Address DbObject to search by login_name rather than id

  • EnrolledEntity can now specify whether email should be used as an access_code target or not

  • Adds better multitenant support for AdapterHandler based extensions (including Instant Payment)

  • If the Repo is configured as MULTITENANT=True in the settings file, self.hq_credentials will be filled per request

Fixed

  • Fixes bug where default UserPropertyData row would be deleted on install, making the form disappear from online banking

  • Better handling of pulling groups from either the FormToGroup table or the UserPropertyData table depending on the HQ version

v2.247.2 - 2024-11-25

Fixed

  • Fixes a bug where self.user_property_feature was not respected in db_plans on install

v2.247.1 - 2024-11-22

Added

  • New choices during q2 sandbox instant_payments

Fixed

  • Fixes errant space in outlet context for CreditCard accounts.

  • Caliper API Custom Endpoint extension handlers now logs inbound requests.

  • PAGE_PADDING variable is now available during Tecton Server Side Rendered extension creation and is defaulted to True.

  • q2 get_installed now shows InstantPayment handlers even if not in the current repo.

v2.247.0 - 2024-11-14

Added

  • Adds q2 sandbox external_mfa command (referenced in tutorial)

  • Adds --patch and --forward flags to q2 insight get_db_list command to show more environment keys

  • Adds SSOIdentifier filters in PolicyData DbObject

  • Adds flush layout support for Tecton Server Side Rendered extensions through the PAGE_PADDING boolean in the handler

  • UiConfigPropertyData.create adds an is_central parameter to pass the BackOffice UiSource type

Fixed

  • Fixes a bug GeneratedTransactions.get_transactions_by_date_range_with_gt_data when a customer_id is provided where the stored proc name was too long

  • Do not use authtoken from HQ if it is listed as IsAuthenticated=False

Changed

  • Internal references switched from deprecated datetime.utcnow() to supported datetime.now(timezone.utc)

v2.246.0 - 2024-11-07

Added

  • Adds new insight entrypoints

    • GetDatabasePatches

    • PatchDatabase

  • New q2 insight cli entrypoints:

    • get_db_patches

    • patch_db

Fixed

  • Fixes bug while retrieving cache keys.

  • Fixes memory leak for requests with large amounts of data.

v2.245.0 - 2024-11-01

Added

  • Adds the StringSecretsFilter for easily and flexibly masking passwords and other secrets in various text shapes

  • Adds documentation on Push Notifications

Fixed

  • Custom Caliper Api Endpoint installer will no longer error out if a list is provided as a dbconfig

  • Fixes a q2 run failure when a multitenant service is not configured as MULTITENANT=True in the settings file

  • Product.update accurately respects AllowOpen and AllowClose as booleans

v2.244.0 - 2024-10-29

Added

  • Adds new DbObjects:

    • Notification

    • NotificationStatus

  • Adds new cli entrypoint get_notification on Notification DbObject.

  • Adds get_notification_status cli entrypoint on NotificationStatus DbObject.

Changed

  • well_known_url is now deprecated on Oauth2Config external auth hq model.jwks_url is used instead.

Fixed

  • audience claim is now exposed on ExternalAuth adapter.

  • Adds support for zoned wedge address configurations.

  • Tecton Handler now properly extracts MFA information.

  • Update operation onProduct DbObject now checks when VendorID is None.

  • DebtorAgent and CreditorAgent are now optional on Instant Payments.

v2.243.0 - 2024-10-18

Added

  • Adds optional customer_id filter to GeneratedTransaction.get_transactions_by_date_range_with_gt_data for further performance gains

  • Adds get_category_by_shortname to UserPropertyCategory DbObject

  • OpenTelemetry will now receive a ServerStart from the SDK on boot

Fixed

  • Less summary log spam for /inspect and /status endpoints

  • Improves performance of GeneratedTransaction DbObject database calls

v2.242.0 - 2024-10-15

Added

  • Adds update method to Product DbObject

  • Adds q2 db update_product CLI command

  • New HQ Endpoints:

    • Q2Api

      • AddRecurringFundsTransferByCountByUserIdWithGtFlavor

      • AddRecurringFundsTransferByCountWithGtFlavor

      • AddRecurringFundsTransferByEndDateByUserIdWithGtFlavor

      • AddRecurringFundsTransferByEndDateWithGtFlavor

      • AddRecurringFundsTransferNoEndByUserIdWithGtFlavor

      • AddRecurringFundsTransferNoEndWithGtFlavor

      • FlushBrowserRegistrations

      • FlushBrowserRegistrationsByLogonName

      • GetAccountHistoryByOnlineUserLogonNameWithRunningBalance

      • PurgeUserSessionsByUserId

      • PurgeUserSessionsByUserLogonId

    • WedgeOnlineBanking

      • AddRecurringFundsTransferByCountAndGtFlavor

      • AddRecurringFundsTransferByCountWithIsSameDayAndGtFlavor

      • AddRecurringFundsTransferByEndDateAndGtFlavor

      • AddRecurringFundsTransferByEndDateWithIsSameDayAndGtFlavor

      • AddRecurringFundsTransferNoEndAndGtFlavor

      • AddRecurringFundsTransferNoEndWithIsSameDayAndGtFlavor

      • HandleHQCommands

Fixed

  • Normalizes a missing isLogon node to False in create_login and create_user external auth routes

  • FxRates mock endpoint on local-dev-api now works if the amount passed in is 0

  • Fixes a bug in the ardent tutorial with the newer version of pyjwt

Security

  • Removes python3.8 references from caliper_admin as it is no longer in LTS

v2.241.1 - 2024-10-03

Changed

  • The Instant Payments database object operations are no longer marked dev_only

v2.241.0 - 2024-10-01

Added

  • Adds new DbObject LogonEvent.

  • Adds a new @lazy_loaded decorator in q2_sdk.hq.db.db_object_factory which allows lazy loading dbobjects through self.db

  • Adds new cli endpoint update_customer_data on CustomerData DbObject.

Fixed

  • Fixes an issue with the online_installer where is_mfa can possibly be unbound

  • Fixes duplicate results when using get_ach_details method of Transactions DbObject.

v2.240.1 - 2024-09-27

Fixed

  • Fixes missing External Authentication from menu options

v2.240.0 - 2024-09-26

Added

  • Adds new adapter type! Remote Deposit: Adapter type used to deposit checks through online banking. Tutorial docs are added.

  • Adds new sandbox cli subparser rdc.

  • Adds new DBObjects: AdminLogons and CsrNote

  • Adds new cli entrypoints: get_csr_note create_csr_note delete_csr_note under CsrNote DBObject.

  • Adds new cli entrypoint get_admin_logons under AdminLogons DBObject.

v2.239.0 - 2024-09-23

Added

  • New adapter Type! External Multifactor Auth (MFA) (beta): This adapter is an official hook for MFA apps, fired in two locations:

    • After logging in with username/password

    • As step up authentication in an existing session for sensitive operations where additional MFA is requested

    • Tutorials and Guides updated appropriately

  • Adds new fields to CreditTransfer and RequestForPayment incoming calls.

  • Adds OTEL traceId to summary line on all request handler types.

Fixed

  • Q2Span.instrument now warns if the attribute length is longer than the one assigned to OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT env variable.

v2.238.0 - 2024-09-17

Added

  • Adds new entrypoint q2 holocron

  • New CLI endpoints:

    • q2 holocron get_configs

    • q2 holocron get_facets

    • q2 holocron get_envstacks

    • q2 holocron add_envstack

    • q2 holocron add_config

    • q2 holocron add_facet

  • q2 add_dependency now has a --search flag

  • Adds q2msg>=1.26 as a dependency of the SDK itself

Fixed

  • q2 check now checks for pickle library import.

  • q2 lint now rewrites pyproject.toml more efficiently

  • get_recipients method no longer errors out when we retrieved using customer_id.

  • Fixes bug when installing deposit_item_image extension type.

v2.237.0 - 2024-09-06

Added

  • Adds more fields and flexibility to CheckImage and StatementImage adapters

  • Added USD Equivalent routes for FXRates adapters

  • Adds status_code into summary log lines

  • New Adapters!

    • DepositItem: Displays deposited check images

      • Tutorial docs updated appropriately

    • (beta) External Auth: A whole series of ways to extend Q2 Online Banking, including but not limited to

      • Inbound SSO, using Okta, Cognito, or another provider as a source of truth for credentials

      • Calling out to the third party from Online Banking’s existing locations of reset password, user unlock, change username, and more!

      • Tutorials and Guides updated appropriately

  • Adds new ExternalAuth DbObject

  • Adds new q2 sandbox external_auth subcommand

  • Adds pyjwt to SDK dependencies

Fixed

  • Fix pipeline to handle q2-sdk[sso]==x.x.x syntax in requirements files

  • Only check datafeed on q2 run for unauthenticated extension

Changed

  • Updates existing q2 sandbox auth_token to pass --use-symantec for Symantec type auth tokens

v2.236.0 - 2024-09-03

Added

  • Adds IsOpenBanking column to User DbObject get requests

  • Adds ability to override audit_action_short_name in AuditRecord.create (defaults to “SDK”)

  • Adds db_plan to Instant Payment adapter handler extension creation boilerplate

Fixed

  • Fix syntax error in sdk_GetCustomersByCreateDatePaginated stored procedure

  • Fix q2 upgrade command’s -p flag to properly suggest marketplace and sentinel as options

  • More correct requirements.txt parsing in q2 check. Handles more obscure edge cases such as comments and hashes.

  • Fixes typing on CountryName and Status columns of AccountAddress DbObject get requests

  • Fixes a bug with ardent.file_upload.upload_from_file that wasn’t respecting the name override passed in on subsequent downloads

Changed

  • Non successful Instant Payment adapter responses will return status_code 400 rather than 200 to HQ

v2.235.0 - 2024-08-27

Added

  • Adding pagination to search customer method.

  • New HQ Endpoints:

    • Q2Api

      • GetGtIdsToBeProcessedAllOutstandingTransactions

      • GetGtIdsToBeProcessedAllOutstandingTransactionsByTransactionTypeString

      • GetGtIdsToBeProcessedAllOutstandingTransactionsByTransactionTypeStringWithMax

      • GetGtIdsToBeProcessedAllOutstandingTransactionsByTransactionTypeStringWithMaxWithCutoff

      • GetGtIdsToBeProcessedAllOutstandingTransactionsWithMax

      • GetGtIdsToBeProcessedZoneOutstandingTransactionsByTransactionTypeStringWithMax

      • GetGtIdsToBeProcessedZoneOutstandingTransactionsByTransactionTypeStringWithMaxWithCutoff

Changed

  • Upgrades pymssql 2.2.8 -> 2.3.1

Fixed

  • Fixes bug with duplicate transactions with different recipient IDs when retrieving ach details.

  • Fixes the rate limiter to count the last token properly.

  • Fixes get_ui_selection_by_name cli entrypoint argument name.

v2.234.0 - 2024-08-20

Added

  • Adds get_by_request_type_name method on AdapterInterface DBObject.

  • Instant Payments adapter now has update functionality

Changed

  • NOTE Realtime Payments Adapter extension to Instant Payments Adapter extension

  • All cli entrypoints containing realtime_payment have been renamed to instant_payments cli entrypoint

  • Removed yapf styling in preference for ruff

Fixed

  • Fixes boiler plate code of InstantPayments adapter extension after creating the extension.

  • q2 sandbox insatnt_payments disable now removes AdapterAddress related to InstantPayments.

v2.233.1 - 2024-08-13

Fixed

  • HostAccountData overlay logic will now handle the case where data only exists in the _RT table

  • Console CSR extensions will now generate a working frontend when using React templating

  • HQ invalidation will now work properly on AWS hosted HQs

Added

  • Periodic Entrypoints now generate tests on q2 create_entrypoint

Security

  • Adds a new review step to the automated build pipeline through code.q2developer.com

v2.233.0 - 2024-08-07

Added

  • Stabilizes UiText.delete for use in production

  • Adds IsOpenBanking attribute to the UserRole get return

Changed

  • Docs: Updates SQL procedure template to CREATE or ALTER syntax

  • Docs: Clearer error message on OUTBOUND_WHITELIST failure

Fixed

  • Handled error case where Q2Insight’s get_db_list endpoint returns a database row without a customer key

v2.232.1 - 2024-08-05

Fixed

  • Improves exception messaging in RateLimiter classes

  • Improves execution time in RateLimiter classes

v2.232.0 - 2024-08-01

Added

  • Adds a new q2 format entrypoint to facilitate quick code formatting across the entire codebase

  • (Internal Q2 Devs) Adds support for Holocron - an internal Q2 configuration database

  • Adds IS_UNAUTHENTICATED to the running server’s inspect endpoint

Fixed

  • Fixes a bug with Customer DbObject’s move_many_to_group where customerId was cast as the wrong type

  • Passing in User-Agent to q2_requests headers will override the default (python-q2-requests/<sdk_version>)

v2.231.0 - 2024-07-26

Added

  • (Beta) Adds RequestForPaymentResponse request type which stores response for RequestForPayment request.

  • q2 setup now has functionality to set multitenant flag to True.

  • Adds new method get_pending_transactions to GeneratedTransactions DBObject.

  • Adds AuditCategory InstallStep.

  • Adds GtFlavor InstallStep.

  • Adds new subparser gt_flavor to sandbox cli entrypoint.

  • Adds AuditCategory DBObject.

  • Adds GtFlavor DBObject.

Fixed

  • get_ach_details method of Transactions DbObject now returns RecipientID in the result.

  • NavNode DBObject now allows adding and editing available_for_landing value.

  • `get_pending_by_customermethod ofCustomerDBObject now properly converts customer ids toint``.

Changed

  • NOTE (Beta) RealtimePaymentRequest has been renamed to RequestForPaymentRequest.

v2.230.0 - 2024-07-22

Added

  • HostAccountData DbObject’s .get method now has a overlay_rt_table parameter which defaults to True. If enabled, will overlay data from the Q2_HostAccountDataRT table

v2.229.0 - 2024-07-19

Added

  • Adds new adapter type! AccountDetails: Adapter type to fetch account details. Tutorial docs updated appropriately

  • Adds summary logs for AuditActionHandler.

Fixed

  • q2 update_installed no longer causes error when adding groups to a Form if the value of UserPropertyData is False for that group.

  • Adding Q2Span.instrument on route no longer causes error.

  • Moving many customers will no longer error out if deleted date is null

  • User DBObject get function now properly handles missing parameters

v2.228.0 - 2024-07-12

Added

  • Adds .store_in_hq and .from_external methods to RealtimePayment Request Types for use with inbound RTP requests

Fixed

  • Fixes missing vue extension template in create_extension flow for console client side rendered apps

v2.227.0 - 2024-07-10

Added

  • q2 setup_db now has a --no-websocket flag for running directly against a DB even with the websocket configured

  • Better human readable error message on Q2Cache connection failure

  • OpenTelemetry (OTEL) traceId will now show up in SUMMARY log line when appropriate

  • Adds self.db support to entrypoints for easy access to instantiated DbObjects

  • Adds .get_accounts_by_product method to HostAccount DbObject

Fixed

  • Eliminates charset normalizer warning message showing up in the logs on every HQ call

  • Fixes q2 upgrade compatibility with pip versions >=24. NOTE: Q2 Upgrade will not function in older versions of the SDK unless you downgrade pip to version 23

v2.226.1 - 2024-06-28

Fixed

  • Fix ruff linting deprecation which was breaking q2 check

v2.226.0 - 2024-06-26

Added

  • Adds UpdateCustomerWithAccountEdit endpoint to BackOffice endpoints.

Fixed

  • SSOSession object now has a session_id attribute so that now self.session_cache can be used on Q2SSORequestHandler types.

  • Opentelemetry tracing is now enabled on entrypoints when Q2SDK_ENABLE_OPEN_TELEMETRY environment variable is set to True.

v2.225.0 - 2024-06-14

Added

  • New HQ Endpoints:

    • Q2Api

      • AdapterPassThruByAdapterRequestTypeString

      • AdapterPassThruByAdapterRequestTypeStringZoned

      • GenerateDateDrivenAlertsByZone

      • GenerateHadeCurrencyAlertsByZone

      • GeneratePostedTransactionAlertsByZone

      • HealthCheck

      • PurgeCachedExternalRequestsForQ2ApiUser

      • SendNotification3WithHtmlAndZone

      • SendNotification3WithZone

      • SendNotificationsForNewMessageToAdminGroup

    • WedgeOnlineBanking

      • GetAccountHistoryByIdWindowed

Fixed

  • Subprocess failures in q2 run_db_plan with exit code -9 will log OOM exceptions appropriately

  • Testing clean_environment helper now also clean Redis variables for edge cases when testing message_bus extensions

v2.224.1 - 2024-06-12

Fixed

  • Missed dependency with python3.12 base

v2.224.0 - 2024-06-11

Added

  • Upgrades to Python 3.12 base

  • Shared dev box users can upgrade using the upgrade_python_version 3.12 command

  • caliper_admin script updated to reflect python3.12 additions

Changed

  • Removed dependency on saml package. It is now embedded in the SDK itself.

v2.223.0 - 2024-06-11

Added

  • Adds filter_out_deleted and group_id filters to Customer.search_by_create_date method

Changed

  • Increase default Vault connect timeout from 1 to 3 seconds

Fixed

  • Adds TECTON_BETA into the Q2TectonBaseRequestHandler

v2.222.0 - 2024-06-06

Added

  • RealtimePayment Adapter now sends q2msg in response if application/q2msg is present in request headers.

  • Adds new subparser push_notification to sandbox cli entrypoint.

  • Server type online extensions now has TECTON_BETA feature.

v2.221.0 - 2024-05-29

Added

  • Adds use_session_cache parameter to @cache decorator

  • q2_requests timeout errors will now be logged in Opentelemetry

  • Handlers now have a PROPERTY_LONG_NAME attribute to customize the property name in Central

  • q2 lint will now update older pyproject.toml files to keep them in line with the latest standard

  • Docs: Tracing in the SDK

Fixed

  • Missing MiddleName will no longer prevent adding a new customer in api_helpers

  • Better initial hq_credentials customer_key state for debug mode dev

  • Updates ruff subcommand called with q2 lint to suppress a warning message

  • Fixes a bug where RTPVendors could be installed multiple times, preventing uninstall later on

v2.220.0 - 2024-05-22

Added

  • Adds a new Branch DbObject

  • Adds q2 db get_branch

  • caliper_admin now encourages cloning using ssh over https

  • Better file_name support when uploading a file through ArdentFS from the front end. File Uploads documentation page updated accordingly.

Fixed

  • local-dev-api now properly closes http2 connections

  • Tecton client extensions will now bootstrap commented WEDGE_ADDRESS_CONFIGS block

v2.219.0 - 2024-05-13

Added

  • Added changes to DbPlan serialization for easier consumption through /inspect endpoint

  • local-dev-api now has /currencyRates and /currencyCovert endpoints to be used during the online banking tutorial.

Fixed

  • Fixes bug when updating Online and SSO type extension using q2 update_installed.

  • UUX Payload InstallStep is no longer marked as editable.

  • Handles demographic_info.user_info type if it is not a string.

v2.218.0 - 2024-05-06

Added

  • q2 check will validate only a single lockfile exists per extension

  • HostAccountRow now has a .ProductName and .ProductNickName

  • SSOAcount now has a .aba

  • HostAccountDataElement DbObject adds a create method

  • Adds a host_account_data_elements InstallStep that can be used in DbPlans to create them on install

Fixed

  • Customer get_pending_by_customer method now property decodes the utf8 string in the response

  • Fixes a bug with DbPlan CustomInstallSteps when calling from_json

Changed

  • Backwards Incompatible: Form.get and Vendor.get will no longer search all groups through all associated property_ids by default. This was a bad default that has been in place since 2.183.0 and led to large data payloads returned in cases where previously much smaller ones existed.

v2.217.0 - 2024-04-30

Added

  • NavNode DbObject can now specify NavigationType (StandardMenu, MobileThumbBar, and NavLandingPage)

  • Adds Application Outlet support to q2 tecton

  • InstallSteps in DbPlans can now be marked as required, meaning leaving it blank raise an error at install time.

  • UserPropertyData DbObject adds a .get_by_group_with_id method to get UserPropertyData Rows related by group

Fixed

  • Fixes a bug with q2 setup_db through local dev api websocket that wouldn’t install dev only stored procs

  • UserPropertyDataElement installstep will no longer stop an extension uninstall if there’s a foreign key constraint error in the DB due to a manual uninstall earlier

Changed

  • Clean up q2 tecton command prompts.

v2.216.1 - 2024-04-25

Fixed

  • Backoffice type handlers (Central, Console) will now set base_hq_credentials url correctly when downgrading from a backoffice HQCredentials object

  • installing the SDK with sso extras enabled (pip install q2-sdk[sso]) will ensure compatible version of xmlsec (1.3.14)

  • Failed custom entrypoints (and periodic jobs) will now print the full stack trace on failure

Added

  • Docs: iOS Rich Push Notification Testing

v2.216.0 - 2024-04-17

Added

  • Adds a new adapter type! Realtime Payments (beta). Tutorial docs updated appropriately

  • New CLI endpoints:

    • q2 db get_realtime_payment_vendors

    • q2 db get_realtime_payment_data_types

    • q2 db get_realtime_payment_request_types

    • q2 db add_realtime_payment_vendor

    • q2 db add_realtime_payment_data_type

    • q2 db remove_realtime_payment_vendor

    • q2 db remove_realtime_payment_data_type

    • q2 db remove_realtime_payment_request_type

  • Realtime payments options show up in q2 install, q2 uninstall, q2 get_installed

  • q2 sandbox command now has a realtime_payment menu

  • q2 sandbox command now has a q2msg menu for integration with Q2’s internal security signing package

  • Adds a dev_only update method to SystemPropertyData DbObject

  • New Backoffice HqApi endpoints:

    • GetAllGeneratedTransactionsForProcessing

    • GetDataSet

    • GetDataSetFiltered

    • GetGeneratedTransactionsForProcessingById

    • GetGeneratedTransactionsForProcessingByProcType

    • GetGeneratedTransactionsForProcessingByTranType

    • GetGeneratedTransactionsForProcessingByTranTypeWithMax

    • ProcessGeneratedTransactions

Fixed

  • Fixes for add_policy_data_to_entity method for Data node case

  • Fixes for PolicyData.set method to better include the Data node

v2.215.1 - 2024-04-10

Changed

  • Native FluentD log shipping now compresses large messages

v2.215.0 - 2024-04-02

Added

  • q2 invalidate_hq_cache adds SystemProperties and ProductDefaults to possible options

  • Adds support for shipping logs directly to FluentD, bypassing the ltlbrd log sidecar layer (Disabled by default initially)

  • Adds an omitted section on the GroupMoverResponse returned from the move_many_to_group method

  • Adds an omit_pending boolean to the move_many_to_group parameters to facilitate moving as many customers as possible while still retaining a list for later debugging

  • Adds a get_pending_by_customer method to Customer DbObject to answer the question “Which customer have pending transactions?”

  • Docs: Adds a new Authentication Token Adapter tutorial

  • Docs: Disparate SSO documentation has been relocated to live inside of one location

Fixed

  • In situations where allow_local is False but the VAULT_LOCAL_DIR is defined, Q2Vault will no longer try to use local

  • Disclaimer DbObject’s .create will properly detect if a disclaimer already exists after being installed with newer Form PropertyID method

Changed

  • caliper_admin script will no longer allow creation of repos directly in the home directory without a parent directory

  • q2 create_extension now has an Enhanced SSO option as an official extension type. This isn’t new functionality, but is more clearly named now.

v2.214.0 - 2024-03-28

Added

  • DBPlan adds controls for setting the AllowUserEdit, AllowUserView, and AllowCustomerView booleans on install. Defaults to True as before.

  • Docs: Improved UUXPayload documentation. Tecton capability now available in UuxPayloads!

  • Docs: Q2’s IpRange is in the support section of the documentation

Fixed

  • DbPlan force runs will correctly set the UiLanguage on update

  • Fixes a bug where not all InstallParams were handled by all Installer types when called from an external API

v2.213.0 - 2024-03-22

Added

  • Creates the new q2 sandbox CLI entrypoint. Will be used for rapidly getting the sandbox stacks into a known state, enabling features, etc.

  • Better type hinting on HqParams objects for logger inputs

  • SSOUser object (self.online_user in SSOHandler types) now has a self.user_guid property

  • Docs: Improvements to the parameters and samples for the most common HQ endpoints section

  • Docs: Improvements to the Customer.move_group and Customer.move_many_to_group docstrings for clarity

Changed

  • q2 db enable_symantec_tokens_for_user is now q2 sandbox enable_auth_token

  • q2 db disable_symantec_tokens_for_user is now q2 sandbox disable_auth_token

Fixed

  • Fixes a bug in the local-dev-api where non-utf8 characters would be chopped off

  • Fixes a bug with linux saml signing since 2.210.0

v2.212.0 - 2024-03-14

Added

  • Adds a get_by_id method to the UserPropertyDataElement DbObject

  • Adds a new adapter type! StatementImage. Tutorial docs updated appropriately

  • Docs: Updated requirements and caveats for custom SQL scripts

Fixed

  • q2 db get_session_http_headers now correctly expects a session_id positional param

  • q2 login now works from zerostate again (no username yet configured)

Changed

  • WedgeAddress.delete method is no longer dev_only

v2.211.0 - 2024-03-11

Added

  • Adds a new @cache decorator in q2_sdk.core.cache to handle caching a function level

  • Adds aws datacenter URLs to the invalidate_hq_cache method

  • Adds AdminUserPropertyDataElement InstallStep (for BackOffice based DbPlans)

  • Adds FeatureGroupUser and FeatureGroup to UserPropertyFeature Enum

  • DB update to oauth scripts to alias Expiry column to an appropriate name

  • Docs: Added Secure Code Review section to Review and Deployment docs

Fixed

  • Fixed a bug with q2 uninstall and q2 removed_from_nav that could find a missing UserProperyData row due to order of operations

  • Estatement DbObject now correctly serializes ProcessedDate as a StringElement (rather than IntElement)

  • Fixes a bug in calculate_url method run when deciding what URL to install in the database to call back to the server. Better handles the case of multiple developers each having their own unique server name.

  • Fixes bug with Tecton based form responses not handling NotFound errors appropriately

v2.210.0 - 2024-02-29

Added

  • Updates to lxml 5.1 on Mac and Windows, working around some new failures on the OSX M1 chip side with saml signing

  • HQ Docs page now has the most commononly used endpoints called out at the top

  • HostProductTypeCode is now returned in the call to self.db.product.get

  • Recipient DbObject adds a get_recipients method

  • Adds q2 db get_by_recipient_id CLI entrypoint

  • Adds q2 db get_recipients_by_customer CLI entrypoint

  • Clearer error messaging when an extension already exists in the database, clearing up the ambiguity of why

Fixed

  • Fixes a bug with q2 setup_db installing 10-remove_user_property_data_element.sql

  • Enums are now able to be passed to HqApi calls when appropriate

  • CurrencyExchangeRate DbObject can now be serialized as a RepresentationRow Table object

  • q2 login now works if you type in a capital letter in your email address

v2.209.1 - 2024-02-22

Fixed

  • \xa0 byte (non breaking space) is now replaced with a space in Tecton forms

  • q2 developer services_status is now callable from the CLI without a stack trace

v2.209.0 - 2024-02-15

Added

  • Adds delete method on HostAccountData DbObject.

  • Adds delete_all_property_data method on UserPropertyData DbObject.

Fixed

  • Fixes bug with sqlalchemy when installing SDK.

  • Fixes bug with retrieving all the currency codes with IsValidForIntWires value True.

  • self.flush is now supported through local-dev-api.

  • caliper_admin now prompts (y/n) before installing frontend dependencies.

v2.208.1 - 2024-02-07

Fixed

  • Outgoing q2_requests calls now has accurate version of q2-sdkattached in the User-Agent header.

  • Fixes timestamps on saml_response to UTC.

  • Allows updating HADEs with empty string.

  • Fixes a bug with q2 check introduced with new linting dependency update.

v2.208.0 - 2024-01-31

Added

  • Adds multitenant support for adapter handlers.

  • Adds DbConfig support on Adapter handlers.

  • q2 run_db_plan now has an option to force update the uitext value.

  • Adds InitializeData lifecycle hook which can be used to run any operation before an entrypoint starts.

Changed

  • Summary log lines are now displayed at new log level:Summary.

Fixed

  • Avoids loading Hq credentials for q2 install_completioncommand.

  • Fixes invalidating AWS based HQ cache.

  • Updating an entrypoint now prompts appropriately.

v2.207.0 - 2024-01-23

Added

  • q2 changelog will now generate a version.txt file compatible with the gitlab phoenix pipeline

  • UserData DbObject’s get_by_short_name_paginated now accepts a list of short names to query many at once

  • UserData DbObject now has a get_by_short_name_count method

Fixed

  • q2 insight CLI command now serializes columns with correct spacing like other DbObjects

  • self.db.host_account_data.get no longer returns an empty dataset if data is indeed available

v2.206.0 - 2024-01-10

Added

  • Adds get_customer_host_accounts method on HostAccount DbObject.

Fixed

  • Fixes bug on EnrolledEntity when checking for existing values.

  • Fixes bug on inspect and status endpoints to respect Accept header.

v2.205.0 - 2024-01-02

Added

  • caliper_admin now prompts for adding alias to activate virtual environment.

Fixed

  • Local dev now handles redirects.

v2.204.0 - 2023-12-20

Added

  • Adds zones to check duplicates on EnrolledEntity DbObject.

Fixed

  • Fixes timeout on message bus by adding longer local dev timeout.

  • DOB can now be retrieved from SSO handlers.

v2.203.0 - 2023-12-13

Added

  • GeneratedTransactionRights policy_data objects now grab RuleData from HQ

  • Introduces q2 developer subcommand with initial support for logging in and getting services

  • Improves logging on Customer DbObject’s move_many_to_group method

Fixed

  • Fixes a stack trace on HostAccountData DbObject’s get method if no data is returned

  • Fixes an uninstall bug in OnlineInstaller when called from an outside service (such as Caliper Deployment Manager)

  • Form now properly types UserPropertyData’s PropertyValue as a string during get_form_groups

v2.202.1 - 2023-12-06

Fixed

  • Failures when calling sdk_AddThirdPartyData and sdk_UpdateThirdPartyData will now be logged with more detail

  • ShortName length in sdk_SetAuditActionAfterWedgeID stored procedure now matches the database

  • q2 db enable_symantec_tokens_for_user now ensures EnableAuthToken column is set to 1 as well

  • Handles a recent bug on OSX that would segfault on saml signing in some cases

v2.202.0 - 2023-11-28

Added

  • Adds a new adapter type! CheckImage. Tutorial docs updated appropriately

  • self.online_user now has a .user_guid property for guaranteed uniqueness, useful in multitenant setups

  • q2 db get_audit_actions now shows BeforeActionWedgeAddressID and AfterActionWedgeAddressID columns

  • New HQ Endpoints:

    • Q2Api

      • AcceptIncomingRealTimePaymentTransaction

      • AddFundsTransferWithGtFlavor

      • CreatePostProcessingRecurringTransAndGtAlerts

      • CreateSubsidiary

      • CreateUserRole

      • DeleteSubsidiary

      • DeleteUserRole

      • EditSubsidiary

      • ExecuteCentralReport

      • FundsTransferFromUnassociatedAccountByUiWithPandIandAdditionalDataAndGtFlavor

      • FundsTransferFromUnassociatedAccountByUiWithPandIandAdditionalDataSkipTokenAndGtFlavor

      • FundsTransferFromUnassociatedExternalAccountByUiWithPandIandAdditionalDataAndGtFlavor

      • FundsTransferToUnassociatedAccountByUiWithPandIandAdditionalDataWithProcessDateAndGtFlavor

      • FundsTransferToUnassociatedExternalAccountByUiWithPandIandAdditionalDataAndGtFlavor

      • GetCentralReportParameters

      • GetCentralReportReportList

      • GetCentralReportStatus

      • GetProductDefaultsValue

      • GetProductDefaultsValues

      • GetSubsidiaries

      • SendNotificationsForNewSecureMessage

      • UpdateProcessingDates

    • WedgeOnlineBanking

      • AddFundsTransferWithGtFlavor

      • FundsTransferFromUnassociatedExternalAccountWithGtFlavor

      • FundsTransferToUnassociatedAccountWithGtFlavor

      • FundsTransferToUnassociatedExternalAccountWithGtFlavor

Fixed

  • Fixes an issue with q2 check command in version 2.201.1. in the check_no_dangerous_code check

v2.201.1 - 2023-11-21

Fixed

  • caliper_admin will now create a new git repo even when starting a branch new project

  • Fixes bug with AuditDetails’s populate_from_hq method where customer_id, user_id, and user_logon_id may not be populated

  • Q2Vault will now properly replace sandbox stacks’ CHANGEME customer_key with a valid stack id

  • Cleaner error message when q2 run requires q2 login as a prerequisite

  • q2 run will now properly monitor for changes to .nvmrc to trigger rebuilds

  • q2 run will now properly generate a .build_hash file on frontend build again

  • Estatement DbObject now properly serializes OptIn property as a Boolean

v2.201.0 - 2023-11-13

Added

  • Adds a USER_PROPERTY_DATA_ELEMENT variable on form and sso extensions to set custom user_property_data_element name.

Fixed

  • Fixes circular import error when Product dbobject is imported.

  • The groups associated to a Form are now correctly retrieved if PropertyValue is True on that related UserPropertyData table.

  • Fixed a thread safety bug where self.cache.get_async would fail if multiple operations called it simultaneously.

v2.200.1 - 2023-11-08

Fixed

  • q2 install: Base URL now is set to websocket url when DEV_SOCKET_URL is set.

  • q2 run: nvm install command nows runs only if desired node version is not present

v2.200.0 - 2023-11-03

Added

  • Update documentation to reflect database connectivity locally!

  • local-dev-api now uses database creds from q2developer.com when running q2 setup_db through the websocket

  • Adds pyproject.toml file as another indicator of project root directory (for q2 run)

  • caliper_admin now allows you to use system level pythons installed through other means (apt/brew)

  • PhoneNumber DbObject now accepts extension parameter in add_phone_number

Fixed

  • GetHostAccountByExternalNumber now handles empty strings as external number

  • q2 get_installed no longer returns multiple lines for AuditActionHandlers if installed for more than one action type

v2.199.0 - 2023-10-27

Added

  • Local-Dev-API devsocket introduces extra security setting by passing --hard-block to q2 run command. If enabled, only your originating IP address will be allowed to call back to your server.

  • Introduces the q2 create_lifecycle_scripts entrypoint for convenient hooks on server startup/shutdown

  • Form and Vendor DbObjects add a with_groups boolean to the .get method

  • vault.get_certificate now works in a multitenant context

  • Adds support for Q2_ZoneSystemPropertyData table by adding a ZoneContext parameter to SystemPropertyData.get()

  • Adds the new Zone DbObject for querying the Q2_Zone table

  • Adds the q2 db get_zones CLI command

  • Adds the --zone, --zone-by-group, and --include-zones flags to the q2 db get_system_property_data CLI command

  • UserLogon.get_login_by_name() now has an include_deleted boolean flag which defaults to False

Fixed

  • Substantially speeds up q2 install, q2 uninstall, q2 get_installed, and q2 update_installed commands by only querying for group associations when asked

  • q2 remove_from_nav now appropriately invalidates the HQ cache afterward, truly removing it from the frontend

  • Fixes a bug which wouldn’t allow updating WedgeAddressUrl in an installed extension if it wasn’t also present in the current codebase

  • UserLogon.get_login_by_name() now finds Deleted users even if they don’t have /# at the end of the username

v2.198.0 - 2023-10-17

Security

  • innerHTML javascript is no longer generated on default Tecton boilerplate

Added

  • self.online_user now prefers .as_demographic_info to .demographic_info for clarity of intent

  • AuthToken Handlers now have a self.incoming_request with information about the logged in user

  • PhoneNumber DbObject now has an .update_customer_phones method

  • EnrolledEntity DbObject’s .grab_customer_data now supports international addresses

Fixed

  • UserLogon’s get_login_by_name now properly handles deleted users

  • Empty DbPlans no longer result in account lists not being sent from HQ

  • Fixes a bug with Customer DbObject’s .update_customer_address that was not setting the City

Deprecated

  • self.online_user.demographic_info is now deprecated and will warn if used

v2.197.1 - 2023-10-10

Fixed

  • Handles setting hq credentials during multitenant datacenter setup.

v2.197.0 - 2023-10-05

Added

  • Estatement DbObject adds get_by_date_range method

  • Estatement DbObject adds add_or_update method

  • The /inspect endpoint now reports Docker Image Tag

  • Form DbObject is now more efficient at looking up UserPropertyData, improving speed

v2.196.0 - 2023-09-27

Added

  • Significant updates to the Mobile SDK docs pages

  • Customer DbObject adds the update_customer_address method

Fixed

  • UserDemographicData DbObject’s validate_addresses takes in a country and province field if passed in (which previously just defaulted to “USA” for the country and an empty string for the province).

  • q2 check will catch another form of HQ_CREDENTIALS hardcoding in the settings file

v2.195.0 - 2023-09-22

Added

  • q2 invalidate_hq_cache now also invalidates UiTextBundles

  • q2 install now also invalidates UiTextBundles from hq cache

  • UserLogon DbObject’s validate_password method now accepts a ZoneData object, adding Zone support

Fixed

  • HQ_CREDENTIALS will now always be present in the settings file when running tests (more pipeline failures)

v2.194.1 - 2023-09-20

Fixed

  • self.hq_credentials no longer retuns None on q2 db entrypoint.

v2.194.0 - 2023-09-19

Added

  • q2 add_dependency now has --dev flag to add dependency to requirements_dev.txt instead of requirements.txt

  • q2 test now has --no-frontend and --no-backend flags to limit testing.

  • q2 create_extension now generates conftest.py in tests directory.

  • Adds plumbing to the SSO handler to handle query parameters for an upcoming UUX release

Fixed

  • SSO extensions now show stacktrace in logs when there is a failure.

  • Fixes bug with traceback not showing in logs.

  • q2 test now correctly works with new HQ_CREDENTIALS location.

v2.193.2 - 2023-09-13

Fixed

  • Fixed circular import when looking up data through vault on startup

Changed

  • While the HQ_CREDENTIALS variable still exists in the settings file, it is now calculated in entrypoint_runner.py

v2.193.1 - 2023-09-11

Fixed

  • When running in debug level logging q2_requests would not upload files through ArdentFS (since 2.190.1)

  • Better type hinting on ArdentFS file upload function

  • caliper_admin script improvements for Q2 VPN network

  • Q2Cache’s flush_all function only attaches to memcache in DEBUG mode

  • Q2Span decorator now preserves decoration functions’ type hinting in editors

  • Update url logic to migrate to local dev now works with SSO extensions as well

  • Local dev can now accept POST requests without a body through the websocket (allow_nonstandard_methods)

v2.193.0 - 2023-09-07

Security

  • NOTE Q2Vault.read will now behave differently in multitenant mode. A bug previously made Stack level requests still search at the institution level in multitenant extensions. Now stack level requests will search at the stack. Moreover, if not enough context is passed in to know the stack, it will raise an exception. This will very clearly explain the issue in the logs if your vault data was stored in the wrong location, but may require updates to the vault data location in rare cases. Specifically multitenant extensions looking up vault data at the stack level.

Fixed

  • BackOfficeParamsObj will now use the reported_hq_url from the incoming request unless specifically overridden

  • BackOfficeHqCredentials now handle LoginPasswordStatusExpired, AdminTokenRequired, and AdminTwoTokensRequired errors explicitly

Added

  • Adds sdk.error_type OpenTelemetry tag to capture exceptions raised by the SDK code at runtime

Changed

  • Calling get_backoffice_credentials on an already existing BackOfficeHqCredentials object will now raise an exception to just use the object

v2.192.1 - 2023-08-31

Fixed

  • Fixes bug on session_cache when retrieving keys.

  • Fixes timeout issue on local dev.

v2.192.0 - 2023-08-25

Added

  • HostAccount DbObject now has a .update_account_rights method

Fixed

  • FxRate Adapter Handlers no longer generate with a unimported datetime module

  • caliper_admin switch_project option correctly finds the parent directory

  • Connecting to a local dev socket over ws instead of wss will no longer log https in the q2 run log

  • Address DbObject now correctly type hints the CountryName as a StringElement

  • SSO Install operation will correctly detect group membership regardless of PropertyID status

Changed

  • Vue template generated on Client Side Tecton Extensions now prefer the Composition API over the more limited Options API

  • Vue template no longer logs warnings on all Q2 tecton web components

v2.191.0 - 2023-08-17

Added

  • Periodic Entrypoints now respect log levels the same as extensions

  • Extremely long log lines will be split into multiple to avoid killing containers

  • Adds LOG_LINE_LIMIT property in settings to control the split threshold

  • Periodic Jobs now respect log filters

  • q2 add_to_nav now supports adding extensions with names overriden at install time (supporting multiple devs)

Fixed

  • Massive XML responses from the running server will no longer kill the request

  • q2 check will no longer break on embedded strings that contain the substring ‘print’

  • Calling get_tecton_form multiple times in the same request no longer generates multiple q2 tokens

v2.190.1 - 2023-08-14

Fixed

  • No longer get cpx dependency missing errors on newly generated CSR extensions

  • Fixes a bug where a single tenant service could have a circular import error on startup

  • Fixes form to group update on Central admin forms

  • q2_requests calls will now log all kwargs, including files

  • Form updates through dbplan now correctly set AccountRightsBitFlag

  • Form.update now passes along property_id

v2.190.0 - 2023-08-04

Added

  • New vault lookup tracking on builtin /admin route

  • Container version now will appear in Server side rendered tecton and SSO extension html in a comment

  • caliper_admin local dev helper script adds a mechanism to quickly pull example repos

  • caliper_admin local dev helper script adds a switch_project entry for quick flipping between environments

  • q2_sdk.core.vault.get_hq_creds now has an option for opting out of deploy_env prefixing

Changed

  • Default insightAPI base url now uses a new load balanced friendly Insight service

  • q2 insight create_api_user no longer requires a group_id parameter

  • Stored Procedure names will only be logged in q2 run rather than all entrypoints

v2.189.1 - 2023-07-31

Fixed

  • UuxUserProperty now automatically invalidates cache on install.

  • Ardent type extensions now support logging fi_num on multitenant extensions.

  • Fixes bug while updating Ardent type extensions.

v2.189.0 - 2023-07-14

Added

  • q2 create_extension client side rendered option will now prompt for Integrate with Vue

  • CSR generation with Integrate with Vue will now generate vite.config.js file.

  • Groups can now be added during sso extension type installation.

Fixed

  • Adds default value for FRIENDLY_NAME on handler.

  • Handles type casting of expiry argument on add_oauth_token cli endpoint.

  • Handles historic repos with q2_cores in the CORE variable in settings.py file

  • Tecton version is now available for all extension types.

v2.188.0 - 2023-07-10

Added

  • Adds get_by_user and get_by_id methods on OAuthLookup DbObject.

  • Adds UserPropertyCategory DbObject.

  • Adds create_user_property_category and get_user_property_category cli endpoints to UserPropertyCategory DbObject.

Fixed

  • Form installation now checks if UserPropertyData related to that Form already exists, if it exists does an update instead.

v2.187.0 - 2023-07-06

Added

  • SSO VendorConfigs now match type correctly when inserting into the database

Fixed

  • Fixes bug when downloading multiple files.

  • FRIENDLY_NAME now falls back to vendor name if it is not set on SSO extension.

v2.186.0 - 2023-06-27

Added

  • Adds get_user_email method on EnrolledEntity DbObject.

  • Adds get_list_of_associated_logons on UserLogon DbObject.

  • Adds search_users cli endpoint on User DbObject.

  • Adds ability to create new extension type Caliper API Custom Endpoint.

  • Adds CaliperApiCustomEndpoints DbObject.

  • Adds get_caliper_api_custom_endpoints and get_caliper_api_custom_endpoint cli endpoints on CaliperApiCustomEndpoints DbObject.

Changed

  • Multiple extension types are now bundled together in create_extension entrypoint

Fixed

  • Fixes logging endpoint to reset log level after 5 minutes

  • q2 check now fails on a missing core configuration file.

  • Empty GTValues are now excluded when retrieving user data using get_by_short_name_paginated on UserData Dbobject.

  • caliper_admin now prompts to provide a name for virtual environment.

  • Fixes bug on setting REPO_NAME environment variable when repo_name is passed as a cli argument during q2 run.

v2.185.0 - 2023-06-20

Added

  • q2 inspect now shows current HQ version

  • Adds new Ardent cookie values in preparation for AWS hosting support

Fixed

  • Fixes a bug where NoRootErrors would be thrown on q2 command after initial repo creation

  • Fixes a bug where a missing .antilles directory could block certain CI/CD operations

  • Handles an edgecase where nav node shortname is empty in the database

Security

  • Updates python versions in caliper_admin tool

v2.184.0 - 2023-06-13

Added

  • Adds changes to include fi_num inside summary_line message.

  • Adds EStatement DbObject.

  • Adds get_e_statement cli endpoint to EStatement DbObject.

Changed

  • Refactors q2 cache endpoint.

Fixed

  • Fixes return rows type on GeneratedTransaction DbObject.

v2.183.0 - 2023-06-05

Added

  • Adds get_by_property_id method UserPropertyData DbObject.

  • Adds get_host_account_data cli endpoint to HostAccountData DbObject.

  • Adds update method to HostAccountData DbObject.

Changed

  • q2 install will now use PropertyID column of Q2_Form table instead of Q2_FormToGroup when appropriate.

Fixed

  • Fixes bug to handle LookupError during fork mode.

  • Fixes bug with experimental windows support while building frontend assets

v2.182.0 - 2023-05-23

Added

  • Adds new Backoffice extension type with both ServerSide and ClientSide variants (Q2 Console integration)

  • Adds new Q2 Mobile SDK docs pages at top level of the documentation

  • Adds to_dict method to PolicyData object

  • q2 check can now be configured to run/skip individual checks. Docs on how to do so in the command itself

Fixed

  • TectonConfig DbObject handles the case where PropertyValue is null

  • Fixes bug with Logger not available on the /logging endpoint while Fork Mode is enabled

  • DbPlan 502 (OOM) errors will now log more details

v2.181.0 - 2023-05-18

Added

  • Adds get_account_related_users cli endpoint on User DbObject.

  • Adds get_account_related_users and get_many methods on User DbObject.

  • Adds method set on PolicyData DbObject.

v2.180.2 - 2023-05-12

Fixed

  • Fixes bug with wsl not returning results on which ifconfig.

Changed

  • REPLAY logs no longer shows up when Q2SDK_LOCAL_DEV is set to True.

v2.180.1 - 2023-05-05

Fixed

  • Home directory alias ~ will now be expanded in local vault operations

  • q2 setup_db now works again through the local dev websocket

Added

  • caliper_admin will now offer to update the repo’s SDK version on clone

  • caliper_admin will now detect and update your git configuration if missing

v2.180.0 - 2023-05-03

Added

  • Customer DbObject adds a search method

  • CurrencyExchangeRate DbObject adds a create method

  • UserData DbObject adds a get_by_create_date_range method

  • UserData DbObject adds a get_by_short_name_paginated method

  • New CLI entrypoint q2 db search_customers

Fixed

  • Very large files can now be transfered through the local dev api websocket connection

  • caliper_admin script will no longer say memcached started successfully if it didn’t

v2.179.0 - 2023-04-27

Added

  • GeneratedTransactions DbObject now has a get_transactions_by_date_range_with_gt_data method

  • Adds CurrencyExchangeRate DbObject for systems with the data populated for use with Wires

  • Group Move functionality will now check policies on the source and destination groups to ensure compatibility before moving

  • Customer DbObject hints more data on get returns

Fixed

  • State is now replaced with Province in Wires if address is international

  • Fixes bug with EnrolledEntity that was not respecting the “skip_customer_check” flag

  • UUX payload can no longer set both async and defer in the InstallStep

  • Tecton CLI command will now properly show newly created configs in the context menus later in the same command session

v2.178.0 - 2023-04-21

Added

  • Adds get_multi method to UserData DbObject

  • Adds q2 db get_user_data_all CLI command

  • Adds q2 db get_customer_data_all CLI command

  • Adds get_active_users_since method to UserLogon DbObject

  • Adds q2 db get_active_users_since CLI command

Changed

  • UserPropertyDataElement.uninstall will no longer blow up if not in dev, but will merely log the skip

Fixed

  • Fixes docker dev machine (Deprecation warning. Please prefer caliper_admin) for python3.11

v2.177.1 - 2023-04-19

Fixed

  • Tab completion no longer raises a stack trace on Python3.11

  • Fixed bug on UUXPayload InstallSteps that could lead to javascript errors on the front end

  • CacheMock class no longer breaks if kwargs is None.

v2.177.0 - 2023-04-17

Added

  • Upgrades to Python 3.11 base

  • Shared dev box users can upgrade using the upgrade_python_version 3.11 command

  • caliper_admin script updated to reflect python3.11 additions

Changed

  • Upgrades opentelemetry dependency miminum 1.11.1 -> 1.17.0

  • Upgrades ruff minimum 0.0.224 -> 0.0.261

  • Removes pylint dependency

v2.176.0 - 2023-04-17

Added

  • Q2Api HQ calls will now use the active request’s HqCredentials if they are not passed in explicitly before falling back to settings.py values

  • /logging endpoint now has an input to toggle response logging temporarily for debugging purposes

Fixed

  • Fixes a bug with q2 cache which could lead to local cache corruption

  • q2_sdk.core.cache.get_cache will automatically detect if running in test mode

Changed

  • q2 test calls to Q2Cache will fail if instantiated directly instead of through the get_cache wrapper

v2.175.1 - 2023-04-11

Fixed

  • Fixes circular import error in q2 test

v2.175.0 - 2023-04-07

Added

  • Log Replay now exists for 500 requests. Even at info level, detailed logging will be used for errors

  • Introduces q2_sdk.core.contexts.get_current_request() to get reference to the active request’s handler even in a function unrelated to it

Fixed

  • PolicyData models will no longer break if an unknown parameter comes from the database on instantiation

  • Q2Vault now uses the new ActiveRequest context to provide a logger even if one was not passed in

v2.174.0 - 2023-04-04

Added

  • Adds new Domestic Wire Handler to Adapter extension types

  • GeneratedTransactions DbObject adds get_loan_transactions_by_date_range method

v2.173.0 - 2023-03-26

Added

  • Adds add_phone_number method to PhoneNumber DbObject.

  • Adds add_phone_number cli endpoint.

  • Adds q2 cache cli entrypoint which has options to get, set, delete, --view and --clear cache.

Fixed

  • q2 uninstall now handles when db_plan is not present.

  • Fixes bug while retrieving PasswordPolicy data with group_id.

  • Fixes bug ‘emails’ being referenced before assignment on EnrolledEntity DbObject.

  • Fixes bug to allow serving assets when calling extension on mobile app.

v2.172.0 - 2023-03-22

Added

  • UserPropertyDataElement DbObject adds the .update method for changing descriptions

  • Adds q2 db update_user_property_data_element cli command

  • Customer DbObject adds get_many method to retrieve multiple at once

  • Customer DbObject adds move_many_to_group method to efficiently call GroupMover for multiple customers

  • Adds PasswordPolicy DbObject with get functionality

  • UserLogon DbObject adds a possible group_id to the generate_password method

  • GeneratedTransactions DbObject adds a get_by_create_date_range method

  • Local Dev Socket now uses Q2Developer.com for database associations, allowing even newly generated stacks to work with q2 setup_db

Fixed

  • Fixes a bug with Local Dev Socket handling of non compressed values as compressed ones

  • Local Dev Socket now still connects even if no database credentials are returned for a Q2Developer.com user

v2.171.0 - 2023-03-09

Added

  • Adds the q2 db enable_symantec_tokens_for_user entrypoint

  • Adds the q2 db disable_symantec_tokens_for_user entrypoint

Fixed

  • Adapter type extensions now work through the local dev socket

  • Fixes a deprecation warning in the generated react code with new npm versions

  • Fixes deploy time error regarding tecton configuration by exposing tecton settings on /inspect

  • Running directly on windows (experimental) will no longer break when building frontend assets

v2.170.0 - 2023-03-01

Added

  • Customer DbObject can now supports setting Charge Accounts through the use of the charge_account parameter on .update

  • Transactions DbObject now has .get_ach_details method for a list of transaction_ids

  • EnrolledEntity DbObject now allows skipping existing customer check on enrollment as a flag

  • UserLogon DbObject’s .get_logons_without_login_since method now takes an optional status_filter to further limit the return

v2.169.0 - 2023-02-24

Added

  • Adds better support for UUXPayload installs in CDM.

Fixed

  • q2 check now checks for print statements with additional spaces.

  • SSO extensions now respect FRIENDLY_NAME variable during installation.

v2.168.1 - 2023-02-22

Fixed

  • Fixes datatypes in SecAlertUserPref DbObject while adding data.

  • Limits size of data being added to that present in table while creating UserData.

  • Fixes install step on UUXPayload when Q2_SECURITY_SECURITY_THIRD_PARTY_HTML_BLOCK is null.

  • Fixes handling of language if not present in database on UiText.

  • Adds detection for Out of Memory (code 137) when running db_plan.

v2.168.0 - 2023-02-15

Fixed

  • Fixes bug on masking passwords that contain double quotes or apostrophes.

  • Adds support for non-USA countries when creating a user and customer.

Added

  • q2 check now checks for print statements.

  • Adds from_json method to DbPlan class.

v2.167.3 - 2023-02-08

Fixed

  • q2_requests now sends the 500 status when there is no response.

  • local_dev_api proxy now allows multiple simultaneous requests.

v2.167.2 - 2023-01-30

Fixed

  • q2 bounce_stack no longer enforces OUTBOUND_WHITELIST

  • Fixes a bug with empty dictionaries in wedge_address configs that would cause infinite nesting when updated through the cli

  • Bool, DateTime, and Decimal TableRow types now json serialize correctly in HqResponses

v2.167.1 - 2023-01-25

Deprecated

  • SDK versions below 1.66.2 are no longer available in shared devpi

Fixed

  • Overridden customer key is now preferred over HQ provided one while handling HQ requests.

  • q2 uninstall will now prioritize extensions present locally.

  • q2 update_installed now updates the DbConfigList to correct types.

v2.167.0 - 2023-01-24

Added

  • Greatly improves speed of q2 lint by switching to Ruff linter (https://pypi.org/project/ruff/)

  • q2 check will now verify there are no mutable default parameters in any functions

  • VSCode Q2SDK extension pack now contains Ruff extension

  • UserLogon DbObject now has a .change_user_logonname method

  • Adds q2 db change_user_logon_name CLI entrypoint

  • Insight DbList rows now have support for multiple customer keys in line with Insight API upgrades

Changed

  • pylint has been replaced everywhere with ruff

  • VSCode helper files have been updated to prefer Ruff

Deprecated

  • pylint is no longer referenced internally within the SDK, though will still be available as a dependency for backwards compatibility

Fixed

  • Local dev socket will no longer block traffic if running behind a proxy

v2.166.0 - 2023-01-18

Added

  • Adds get_logons_without_login_since cli endpoint to UserLogon DbObject.

  • Adds get_by_id method on Group DbObject.

  • Adds documentation on webhooks.

Fixed

  • Fixes bug with deleting phone numbers using delete_phone_number cli endpoint on PhoneNumber DbObject.

  • validate_is_treasury and validate_is_company now work with deleted groups in the system.

  • TableRow DbObject now treat booleans as booleans.

v2.165.0 - 2023-01-13

Added

  • Adds MarketingPageName DbObject.

  • Adds get_marketing_page_name and add_marketing_page_name cli endpoints.

  • caliper_admin now has sync_system_certs option for better certificate management using WSL.

  • caliper_admin now has verify_connectivity option to check for connectivity issues.

  • UserPropertyDataElement DbObject now has get_user_property_data_elements_by_category cli endpoint.

  • Adds get_by_category_name method to UserPropertyDataElement DbObject.

  • /inspect/<extension_name> endpoint now shows marketplace_features.

Fixed

  • Fixes bug with setting HqCredentials properties from a passed in InsightCustomerKey.

  • hq_credentials.get_build_number now uses WedgeOnlineBanking GetHqVersion if possible

  • Fixes type hinting of HostTranNumber on GetAccountHistoryById and GetAccountHistoryByIdWindowed responses

  • Fixes type hinting of Cif, CifExternal and CifInternal on GetAccounts response.

v2.164.0 - 2023-01-10

Added

  • SSO Handlers will now lookup hq_credentials from vault automatically in multitenant setups if possible

  • Newly generated Tecton CSR extensions will generate a parcel static file copy plugin

  • Adds new LOCAL_DEV setting variable, which should resolve to True unless deployed in the datacenter

Fixed

  • Fixed a bug with self.hq_credentials populating from vault in multitenant HqHandler extensions

  • Better typehinting on EnrolledEntity.GetPhoneParams

  • Full log stacktraces will be logged on exception instead of cutting off the last line

v2.163.1 - 2023-01-09

Security

  • Increase min protobuf version to 3.20.2 for https://nvd.nist.gov/vuln/detail/CVE-2022-1941

Fixed

  • UiText cache will now invalidate after deploy

v2.163.0 - 2023-01-04

Added

  • HqCredentials now have db_schema_name and env_stack properties

  • self.hq_credentials will automatically be populated with customer_key, database_name, db_schema_name, and env_stack in HqHandler type extensions

  • It is now possible to rate limit individual functions with the q2_sdk.core.rate_limiter.rate_limit decorator

  • RateLimiter can now choose to use proxied or original IP address for blocking traffic (default to proxied)

Fixed

  • Better type hinting on date types in HqApi classes

v2.162.0 - 2022-12-27

Added

  • New q2 delete_extension CLI command to efficiently remove an extension from your codebbase

  • q2 run_db_plan now takes a --custom_only parameter to only run custom install steps

Fixed

  • dist directory will be property created for server side rendered extensions on q2 create_extension

Changed

  • /dbplan endpoint will run custom install steps only by default (overrideable by passing in run_all_install_steps=true as a query parameter

v2.161.0 - 2022-12-19

Added

  • Adds EnrolledEntity DbObject.

  • Adds create_customer, create_user, create_user_logon, enroll_sso_identifier, check_disclaimers, build_user_demo_object,get_customer_phones, get_user_phones, link_accounts_via_cif, to_phone_type, to_address_type methods on EnrolledEntity DbObject

  • Adds logging to Q2AdapterRequestHandler to debug request body and response.

  • Adds documentation for mocking db_configs and mocking network calls in SDK.

  • Adds documentation guide and code snippets for testing extensions.

Fixed

  • Fixes bug on OPTIONAL_WEDGE_ADDRESS_CONFIGS not showing up in cli during q2 install and q2 update_installed.

  • Refactors code for setting span attributes for opentelemetry.

  • Fixes bug on add method of LinkedAccount Dbobject which now checks for datatype of parameters.

v2.160.0 - 2022-12-13

Added

  • AccessCode.create_targets will now validate the type is Voice, Sms, or Email

  • Adds PasswordHistory DbObject

  • Adds q2 db get_password_history CLI entrypoint

  • NavNode now returns CssClass column for Central Nav Nodes

  • Adds WireDomestic DbObject

  • Adds q2 db get_wire_domestic CLI entrypoint

  • Adds WireInternational DbObject

  • Adds q2 db get_wire_international CLI entrypoint

Removed

  • Removed cruft of wedge_payload_stored_proc in the dbPlan in favor of the newer payload_stored_proc

Fixed

  • UUXPayload will no longer only pop off the top script, but rather will loop through all available on DbPlan install

  • Handles the edgecase of a configuration file having a FEATURE key set to None

  • Older Tecton versions (<1.11.0) now correctly work with q2-radio elements

v2.159.0 - 2022-12-07

Added

  • DbPlan attributes now have type hints.

  • Adds support for checking unauthenticated CSR extensions.

  • SSO Tutorial now provides reference for using Third Party Data for storage

  • Adds documentation for Parameter Bit Flags under sso_feature guide.

  • q2_requests now has option for minimal_logging to prevent large requests from filling up the logs.

  • Q2BaseRequestHandler now has attribute sdk_session_identifier which can be accesses using self.

  • Adds documentation for Hydra Product Type.

  • Adds HydraProductCodes hq model.

Fixed

  • SDK version now gets logged when there is uncaught exception.

v2.158.1 - 2022-12-05

Fixed

  • Fix q2 check complaining on validate_configurations call

v2.158.0 - 2022-12-02

Added

  • Changing IS_UNAUTHENTICATED value in a Tecton based handler will now make all the necessary corresponding changes on next q2 run

  • New docs guide on Unauthenticated Extensions

  • Static Asset File handlers can now be overridden by setting ASSET_HANDLER equal to your own class in urls.py

  • q2 inspect now has a --my-ip toggle to print the machine’s address according to the SDK

  • Adds q2 db get_account_address_history cli entrypoint

  • Adds get_history to AccountAddress DbObject

Changed

  • q2 bounce_stack now polls for the stack to become healthy again

Fixed

  • Fixes bug with q2 update_installed and Client Side Rendered extensions that would expect HQ_AUTH_TOKEN_TYPE to be defined in the extension

  • Fixes bug with q2 db remove_date_feed

  • HostTransactionHistory now works with BigInt as transaction_id

  • Fixes bug with AccessCode DbObject methods that wasn’t passing hq_credentials along

  • Ardent File Upload capabilities now work for local dev (by increasing the default expiry time)

v2.157.0 - 2022-11-29

Added

  • Adds FundsTransfer DbObject.

  • Adds get_funds_transfer, get_funds_transfer_by_customer_id,get_funds_transfer_by_user_id,get_funds_transfer_by_account_id on FundsTransfer dbobject.

  • Adds documentation for GetAccountHistoryByIdWindowed and Transactions.

  • Adds Q2SDK_ARDENTFS_URL inside caliper_admin.

  • Unauthenticated extensions(IS_UNAUTHENTICATED = True) are now inserted into DataFeed table and HqAuthToken is ignored.

Changed

  • Q2 Caas is no longer supported and q2_caas module is removed.

Fixed

  • Fixes default values for HQ_AUTH_TOKEN_TYPE and AUTH_TOKEN_LIFE_IN_MINUTES.

  • Fixes type of Q2REQUESTS_DEFAULT_CONNECT_TIMEOUT and Q2REQUESTS_DEFAULT_TIMEOUT to float.

v2.156.1 - 2022-11-23

Fixed

  • Adds appropriate error message that could cause websocket connection error.

  • Fixes ‘sdk_GetHqAuthTokenTypes’ StoredProcedure name on backend.

  • Fixes bug on command to get count of files on git repo that is checked during q2 check

v2.156.0 - 2022-11-22

Added

  • Adds HqAuthTokenType DbObject

  • Adds q2 db get_hq_auth_token_type CLI command

  • HQ_AUTH_TOKEN_TYPE and AUTH_TOKEN_LIFE_IN_MINUTES are now configurable on the handler

  • Adds audit_http_headers property to self.db helper

  • Q2SamlResponse now has issuer and status_code properties

  • q2 check now ensures the repo has something checked into git

  • HqRequestHandlers and derivatives now gets online_user’s DateOfBirth, UserRole, IsCompany, IsTreasury, and IsCommercial from the database if not present in the incoming object

  • q2 tecton now has support for Dynamic Content (docs page updated)

Fixed

  • Pip versions will no longer show up as possibilities in q2 upgrade

  • Fixes a bug with caching country_list in the UserDemographicData DbObject when Memcached connection goes down

  • q2 uninstall against SSO types no longer fails if UiText delete is unsuccessful

Changed

  • Unhandled tracebacks are now sent through the default extension logger

v2.155.0 - 2022-11-16

Added

  • Adds support to Q2AuditActionRequestHandler (accessible through q2 create_extension -> Audit Action Extension)

  • Adds new hq model AuditDetails.

  • Adds new cli entrypoint update_audit_after_action on AuditAction DbObject.

  • Adds method update_after_action_wa on AuditAction DbObject.

  • Adds new cli entrypoint get_wedge_addresses_tied_to_audits on WedgeAddress DbObject.

  • Adds method get_wa_tied_to_audit_actions on WedgeAddress DbObject.

  • Adds advanced DBConfig types for dynamic default values.

Fixed

  • Fixes reset password bug on UserLogon DbObject by adding missing HQ credentials to ChangeEndUserPassword params.

  • Includes stack trace in error logs to track if HQ credentials are missing on Q2ApiParamsObj.

  • Fixes on caliper_admin to include spaces or special characters in certificate path on WSL(Add Cert option)

v2.154.0 - 2022-11-07

Added

  • Adds AuditHTTPHeaders Dbobject.

  • Adds get_session_http_headers cli endpoint on AuditHTTPHeaders Dbobject.

  • Adds dev requirements to gitlab pipeline install.

Fixed

  • Fixes bug while updating wedge address url and wedge address is empty.

  • Fixes mirror job in gitlab pipeline to use Git Clone with unlimited commit depth

Changed

  • Gitlab pipeline now dynamically builds python version

v2.153.1 - 2022-11-02

Fixed

  • AuditRecord get_by_id now send a BigInt to match the database schema

  • Fixes a bug where hardcoding FORK_REQUESTS in the settings file but not setting the environment variable would cause the server to not start

Changed

  • AuditRecord’s get_audit_session now returns a list rather than a single record

Added

  • svg files are now monitored by default and will cause the dev server to bounce

  • New video tutorial in local_dev_ide setup

  • New video tutorial in caliper_admin setup

  • q2 create_extension with React frontend now provides better IDE hinting helpers

v2.153.0 - 2022-10-28

Added

  • Adds AdminUser DbObject.

  • Adds update_info method to AdminUser DbObject.

  • Adds set_password_status_as_accepted method on UserLogon DbObject.

  • Adds get_users_created_on cli endpoint on User DbObject.

  • Adds search_by_create_date on User DbObject.

Fixed

  • Fixes bug on AdminUserLogon dbobject while retrieving invalid logins.

Changed

  • Refactored backend of UserLogon DbObject.

  • Most dependencies are now locked to major versions only to facilitate easier compatibility with other libraries.

v2.152.1 - 2022-10-26

Fixed

  • q2_requests will no longer blow up if request headers are explicitly set to None

  • HqCredentials will also clean off ‘PROD’ and ‘STAGE’ prefixes in customer_keys

v2.152.0 - 2022-10-24

Added

  • Messages pushed to the bus will now be compressed if larger than 4096 bytes

  • Adds UuxUserProperty DbObject with create and delete methods

  • Adds q2 db create_uux_user_property and q2 db delete_uux_user_property CLI commands

Fixed

  • Periodic Entrypoints will now use the appropriate log formatter

  • Bugfix for Customer.move_group which wasn’t properly passing along the input parameter (since 2.147.0)

v2.151.1 - 2022-10-21

Fixed

  • Fixes a bug with new OpenTelemetry support where a newer protobuf library would cause a warning message on startup

  • OpenTelemetry traceparents are now passed along even when q2_request calls do not specify headers

  • q2 check no longer tries to validate non-python files for blocking code

  • PasswordPolicy.populate_from_hq method will no longer blow up if no password_policies are set

Added

  • User DbObject now has a helper .delete method to call the appropriate Hq endpoint

  • Q2Vault.get_certificate method will now log if a certificate is in the cached period

v2.151.0 - 2022-10-19

Added

  • Adds initial support for opentelemetry tracing metrics. Enabled by default in the datacenter

Fixed

  • Fixes bug on premature exit of q2_on_finish function in fork mode.

v2.150.0 - 2022-10-18

Added

  • Adds delete_accesscode_target method on AccessCode dbobject

Fixed

  • Fixes bug on AdminUserLogon dbobject by cleaning the LastLogon and LastFailed timestamps.

  • contains_markup parameter is now case-insensitive while creating UiText object.

  • Updates sdk_AddAdapterAddress ,sdk_AddAuthToken, sdk_AddCentralForm, sdk_AddDisclaimer sql to confirm with new database structure

v2.149.0 - 2022-10-14

Added

  • Adds ExternalTransaction DbObject

  • Adds get, get_by_customer_id, get_by_user_id, get_by_host_account_id methods to the ExternalTransaction DbObject

  • Adds cli support for the ExternalTransaction methods

  • q2 ceate_online_user now automatically links accounts from default (retail0) user to the newly created user

  • UserDemographicData now has a validate_addresses method

  • Phone model now has a full_phone_number field

  • UserDemographicData now has a validate_phones method

Fixed

  • UserLogon.reset_password no longer immediately forces a reset the first time you log in

  • Fixes a bug with add_form.sql to be compatible with new SQL versions deployed in the datacenter

  • PolicyData DbObject’s .get will no longer blow up if there was an error with the HQ call but rahter return empty and log it

  • GetUiText has been changed to GetUIText to match the casing of the stored proc everywhere

  • UiText calls that define contains_markup will now pass it along appropriately to the stored procedure

  • message_bus.push in a live environment now returns the response rather than a coroutine to be awaited

  • q2_request calls that pass an oauth_client now appropriately retry if unauthenticated responses come back

v2.148.0 - 2022-10-06

Added

  • Adds AdminUserLogon and PasswordStatus dbobject

  • Adds disable_admin_user, enable_admin_user, get_admin_user_logon cli entrypoints to AdminUserLogon dbobject.

  • Adds get_password_status cli entrypoint on PasswordStatus dbobject

  • Adds check for powershell admin and an additional pip env var PIP_TRUSTED_HOST in caliper_admin script to improve the internal Q2 vpn setup experience

Fixed

  • UserPropertyData dbobject now accepts product_id and product_type_id inside get method.

  • Fixes type hint for Q2SamlResponse.sign

  • Fixes caliper_admin script to make powershell work on some wonky systems.

  • Fixes the return shape of response for message_bus.push during dev.

  • HqCredentials.customer_key now trims off unnecessary DEPLOY_ENV prefix

Changed

  • Updates vault.get_certificate to set different type hints

  • Updates apikey for the APILayer currency data api in the documentation

v2.147.0 - 2022-09-29

Added

  • message_bus.push now accepts a krayt_url param for overriding the default krayt_url configured with the service

Fixed

  • HqResponse objects can now be built by extremely large compressed HQ responses

  • q2 tecton command now correctly adds contextIdParams into embeddable tabs

  • Fixes a state where a tecton config is inserted into the DB empty and then was subsequently unupdateable

  • A few more fixes regarding devOnly marked stored procs in online and sso installers

  • Fixes a bug where if HQ credentials were repulled from Vault it would change the Cache prefix for the rest of the run

Changed

  • Refactored backend of GeneratedTransactions, Disclaimer, and Customer dbObjects for code clarity

v2.146.0 - 2022-09-20

Added

  • CurrencyCode dbobject now has cli implementation via get_currency_codes

  • Adds self.get_user_dob to OnlineUser

Fixed

  • q2_requests now handles non standard HTTP status codes in the response.

  • message_bus.push is no longer blocking in local dev.

  • The get method of UserDemographicData dbobject can now retrieve response with non-empty date_of_birth

  • The get method of UserDemographicData dbobject now return response with Phone that has non-empty LocalNumber.

  • The get method of UserDemographicData dbobject now return response with Address that has non-empty StreetAddress1.

v2.145.2 - 2022-09-16

Fixed

  • q2 db update_vendor now treats –purge-account-list as a toggle to enable the boolean

  • Clearer error mesage if trying to call a DevOnly stored proc from q2 remove_from_nav

  • Recursive nav node editing now works again (space will be made for a new extension in the nav menu)

  • If a url is overridden manually during q2 install, it will no longer have an extra / in the database

  • MULTITENANT=True in the settings file no longer prohibits deploying it in single tenant mode

Changed

  • Customer.delete now returns a DeleteCustomerResponse instead of the less detailed HqResponse

v2.145.1 - 2022-09-13

Fixed

  • Fixed datatype of created_after parameter within search_by_create_date method of Customer dbobject

  • Fixed tax_id argument length from 12 to 100 on get method of Customer dbobject

  • Fixed circular import bug which occurred while getting updated wedge address url.

v2.145.0 - 2022-09-07

Added

  • VendorConfig.get will now overlay zoned VendorConfig information if appropriate

  • q2 update_installed will now prompt for quickly updating the base url of all related forms if it has changed

v2.144.0 - 2022-09-01

Added

  • Every extension now has a summary log line printed out at the end of the request with appropriate information for that extension type

  • Summary Logging will show the customer_key in multitenant extensions

  • Summary Logging is overrideable by redefining the override_summary_log property in each extension

  • Customer DbObject now has a search_by_create_date method

  • Adds q2 db get_customers_created_after CLI entrypoint

  • New HQ Endpoints:

    • Q2Api

      • ChangeAdminGroup

      • ChangeUserRoleId

      • CheckProcessGeneratedTransactionsAsyncStatus

      • DeleteAdminUser

      • GetAccountDetailsTransformByIdUnauth

      • GetAccountHistoryTransformByIdUnauth

      • GetAccountListByInternalCifAndCustomerId

      • GetAccountListTransformUnauth

      • GetCustomerAllEntitlementList

      • GetCustomerUserEntitlement

      • GetCustomerUserRoleEntitlement

      • GetHostTransactionImageByUserLogon

      • GetRawAccountDetailsTransformDataByIdUnauth

      • GetRawAccountHistoryTransformDataByIdUnauth

      • GetRawAccountListTransformDataUnauth

      • GetStatementCycleListWithStartAndEndDates

      • GetStatementImageWithReturnAsAttachmentParameter

      • ProcessAllOutstandingTransactionsAsynchronous

      • ProcessAllOutstandingTransactionsByTransactionIdAsynchronous

      • ProcessAllOutstandingTransactionsByTransactionTypeStringAsynchronous

      • ProcessAllOutstandingTransactionsByTransactionTypeStringWithMaxAsynchronous

      • ProcessAllOutstandingTransactionsByTransactionTypeStringWithMaxWithCutoffAsynchronous

      • ProcessAllOutstandingTransactionsWithMaxAsynchronous

      • ProcessZoneAllOutstandingTransactionsByTransactionIdAsynchronous

      • ProcessZoneOutstandingTransactionsByTransactionTypeStringWithMaxAsynchronous

      • ProcessZoneOutstandingTransactionsByTransactionTypeStringWithMaxWithCutoffAsynchronous

    • WedgeOnlineBanking

      • AddFundsTransferWithFlavor

      • ChangeUserRoleId

      • DecideUserRoleIdChange

      • GetAccounts

      • GetStatementCycleListWithStartAndEndDates

      • GetStatementImageWithReturnAsAttachmentParameter

Security

  • Updates lxml version from 4.7.1 to 4.9.1

Fixed

  • Fixes a bug with UUXPayload DbPlan install_step where the integrity string would not have a ; in the generated json

v2.143.0 - 2022-08-29

Added

  • HqCredentials object now has a .database_name property

  • HqCredentials will automatically populate the database_name property if set in Vault

  • message_bus.push now allows extra headers to be passed through to KraytD

Fixed

  • Fixes a bug with UiText.create treating contains_markup as an integer instead of a boolean

v2.142.0 - 2022-08-24

Added

  • UiText DbObject get operations now return ContainsMarkup boolean

  • HqCredentials object now has a customer_key property

  • Adds PolicyData DbObject for interacting with policies surrounding an entity (User/Customer/Group/UserRole/Company)

Changed

  • Enabling of CanSubmitForms UserProperty now happens on form_to_group updates rather than install to catch more cases

Fixed

  • Generated DbPlan no longer has a typo in commented out gt_data_elements

  • Fixes bug with HostTransactionHistoryData.create to handle missing Sequence columns in the database

v2.141.2 - 2022-08-19

Fixed

  • If your local name of an extension does not match what’s in the database, q2 update_installed will prompt you to choose

  • Form DbObject’s RepresentationRow now correctly sets AccountRightsBitFlag as an integer

v2.141.1 - 2022-08-04

Fixed

  • Directly calling a tecton handler (outside of uux) will no longer strip existing post body fields

  • self.vault.read_raw no longer breaks if passing None for prefix

  • Fixes import bug with q2_sdk.models.adapters

v2.141.0 - 2022-08-03

Added

  • Adds q2_sdk.models.saml_response.Q2SamlResponse class for use with SSO integrations

Changed

  • SSO Tutorial updated to use new Q2SamlResponse class

Fixed

  • Fixes functional bugs with FxRate adapter to correctly work in real Q2 environments

  • caliper_admin setup_q2_vpn target now works even if Powershell does not have ExecutionPolicy set correctly

v2.140.0 - 2022-07-27

Added

  • q2 run now has a -n name flag to override the repo name when using the websocket local dev connection

  • Possible to override the websocket connection with Q2SDK_REPO_NAME as well

  • Adds the TransactionStatus DbObject to get data from the Q2_GeneratedTransactionStatus Db Table

  • caliper_admin script now supports internal Q2 dev stacks

  • caliper_admin script now sets up system keychain support for use with python on OSX

Fixed

  • ZSH autocompletion script will now enable autocompletion in your shell if it is not already

  • caliper_admin will no longer print out gross errors after successfully updating

  • Fixes bug with 10-get_user_property_data_by_group.sql file to support multiple installations

v2.139.0 - 2022-07-21

Added

  • HostTransactionHistoryData DbObject now has a .create, .update, and .delete method

  • caliper_admin script will now offer to remember and autoenable created virtualenvironment on shell start

Fixed

  • Fixes bug with q2 tecton command that could raise an exception on multiple prompts

  • Improvements to the group mover functionality to handle corporate moves

Changed

  • caliper_admin script’s ‘Clone Git Repo’ changed to the more generic ‘Start New Project’

v2.138.0 - 2022-07-18

Added

  • CustomerData DbObject

    • Adds .get_by_value method

    • Adds .get_by_short_name method

    • Adds q2 db get_customer_data_by_value CLI entrypoint

    • Adds q2 db get_customer_data_by_short_name CLI entrypoint

  • UserPropertyData DbObject

    • Adds get_by_group method

    • Adds q2 db get_user_property_data_by_group CLI entrypoint

Fixed

  • User DbObject’s TableRow was mistakenly matching CreationDate instead of CreateDate as the column name

v2.137.1 - 2022-07-14

Fixed

  • FORK_MODE will no longer hold a PID open if an https endpoint is called over http

  • q2 create_extension will no longer allow you to create an extension with the same name as a python standard library builtin module

  • Trying to call a dev only stored proc in another environment will now be more explicit with the failure reason

v2.137.0 - 2022-07-06

Added

  • q2 tecton will now update the database if necessary after changes occur to an extension

  • Adds HostAccount DbObject

  • Adds q2 db get_host_account_by_id CLI command

  • q2 check will now enforce marketplace enabled repos setting MULTITENANT=True in settings

  • Documents caliper_admin script in setup docs

  • caliper_admin script now supports memcached on Mac

  • caliper_admin script will now offer to auto navigate to and source your recently cloned virtualenvironment during Clone Repo step

Changed

  • Total rewrite of the setup docs. Removed internal/external in favor of local/remote dev

  • Q2SDK_DEV_SOCKET for local dev has been moved to its own box. Downtime on the shared dev machine will no longer affect local dev! To update, simply run the latest caliper_admin script

v2.136.2 - 2022-06-29

Fixed

  • Fix a bug with ProductType.get that would try to call Q2API instead of WedgeOnlineBanking even with an auth token

v2.136.1 - 2022-06-27

Fixed

  • ProductType DbObject now correctly works with a multitenant deploy

  • Fixes a bug where q2 -h was printing out entrypoints in reverse alphabetical order

v2.136.0 - 2022-06-21

Added

  • caliper_admin script now detects zsh as active shell if appropriate

  • caliper_admin will now check for updates once/24 hours automatically

  • q2_requests calls will now log the status code of the response

  • Tecton based forms now have support for q2-radio-group ShadowDom elements

  • Adds a HostTransactionHistory, HostTransactionHistoryData, and HostTransactionHistoryDataElement DbObject

  • Adds q2 db get_host_transaction_history_data_element CLI command

  • Adds q2 db get_host_transaction_history_data CLI command

Changed

  • Group Mover will now simply move the group of a customer rather than recreate a clone of it with a different id

Fixed

  • Fixed NavNode update/create conflicting with multiple nav_menus

  • Fixes a bug with q2 changelog that would write a bad string into the settings file

v2.135.2 - 2022-06-14

Fixed

  • AuditRecord.get no longer accepts and then throws away session_id

  • caliper_admin script creates nomad_secrets_dir and local_vault_directory on initial setup now

  • upgrade_python_version scripts in Shared Dev now accurately update gitlab.ci python version

Added

  • caliper_admin now has a setup_q2_vpn function for internal Q2 dev in Windows WSL environments

Removed

  • Removes GetDbConnectionString HQ endpoint. It did not work using the SDK and was a landmine.

v2.135.1 - 2022-06-09

Fixed

  • Fix bug with AdapterHandler uninstall that wouldn’t work from multitenant context

  • Fix bug with q2 check that would not allow proper SSO ParameterBitFlag combinations

  • caliper_admin will now default to installing the latest SDK version if not specified, not the earliest

v2.135.0 - 2022-06-06

Added

  • Adds AdapterRequestType DbObject

  • Adds International Wire Adapter type for q2 create_extension -> Adapter

  • Adds ThirdPartyDataShared DbObject for adding ThirdPartyData without a group_id

Fixed

  • Updates recommended q2msg version to 1.10.2

v2.134.1 - 2022-06-01

Fixed

  • sdk_AddAdapterAddress stored procedure now allows addresses up to 1024 characters in length (up from 64)

  • Fixes a bug where custom health checks would renew their cached timer after each call, never expiring

  • HostAccountData HostAccountData DbObject now correctly casts ids as integers in the CLI entrypoint

  • Fixes a syntax error in the caliper_admin script

  • caliper_admin and docker dev machine both install librdkafka to support new q2msg version

  • clone_from_gitlab now correctly detects installed python binary

v2.134.0 - 2022-05-25

Added

  • Upgrades to Python 3.10 base

  • Shared dev box users can upgrade using the upgrade_to_python3.10 script

  • Adds upgrade_python_version command to shared dev machine to autodetect desired python version and rebuild virtual environment

  • Docker dev machine and caliper_admin script both updated to reflect python3.10 additions

Changed

  • Upgrades pytest 6.2.4 -> 7.1.1

  • Upgrades pytest-asyncio 0.12.0 -> 0.18.3

  • Upgrades yapf 0.30.0 -> 0.32.0

v2.133.1 - 2022-05-23

Fixed

  • Improves performance in HqResponse.json() method

Added

  • q2 changelog can how concatenate multiple change files to create a single changelog

  • q2 check will now warn if any UiTextElements in the DbPlan have descriptions longer than the Db max length

v2.133.0 - 2022-05-16

Added

  • q2 lint now has a --changed flag to only check python files changed since last git commit

  • caliper_admin script now has a Rebuild Virtual Environment target

  • Multitenant flag in settings file will now force passing hq_credentials in hq_api calls

  • Multitenant flag in settings is now visible through the /inspect endpoint

  • Adds initial support for AuthTokenRequestHandler (accessible via q2 create_extension)

  • Adds initial support for FxRateRequestHandler (accessible via q2 create_extension)

  • Adds AdapterAddress DbObject

  • Adds AdapterInterface DbObject

  • q2 install now works with the new Adapter type handlers

Fixed

  • Better type hinting on self.account_list (Will hint SSOAccount for SSOHandler and Account for Online based handlers)

Removed

  • Removes SendSecureMessage2 HQ endpoint. It did not work using the SDK and was a landmine.

v2.132.0 - 2022-05-06

Added

  • Add ability for changelog entrypoint to create change files in a changelog directory

  • DBObjects can now be accessed through self.db.*. Example: self.db.group.get()

  • Added new DBObject HostTransactionHistory with cli parser get_host_transaction_history

Fixed

  • The get() method of ObjectGroupData DBObject is explicit about duplicate column names

  • Fixed logs to not filter Audit Ids

  • Fixed bug in switch_project on shared-dev to work with customers having multiple projects.

  • Fixed bug on get_sso_user_logon cli parser of SsoUserLogon DbObject to correctly show the argument name sso_indentifier.

v2.131.0 - 2022-05-03

Added

  • Added a new variable BALANCE_HADE_SYSTEM_PROPERTY which has ability to set BalanceHADESystemPropertyID in SSO extensions.

  • Added options Start Memcached and Install Frontend Dependencies to caliper_admin(local dev) script.

Fixed

  • clone_from_gitlab now doesn’t show error related to MarkupSafe not installed.

Changed

  • Updated docs for VSCode setup for external developers.

v2.130.0 - 2022-04-26

Added

  • There is now a MULTITENANT variable in settings. Setting this to true will more closely emulate a multi-tenant deployment into the datacenter. More details on the guides/configuration page.

  • LinkedAccount DbObject now has an add_by_primary_cif method

Fixed

  • Fix a bug that would show required field even if q2-input was optional

  • caliper_admin will now set up yarn by default

v2.129.0 - 2022-04-22

Added

  • RequestHandlers all now have a FRONTEND_OVERRIDE_EXTENSION variable. Allows serving frontend assets for another extension rather than the default (same extension)

Fixed

  • q2 db add_access_code_targets will now serialize the results appropriately

  • _overrides customer_key will now be propertly respected in SSO extensions when stored in the VendorConfigs

v2.128.0 - 2022-04-19

Added

  • Tecton extensions how have an authorize_transaction_with_mfa route for use with Tecton’s authorizeTransactionWithMfa action

Fixed

  • q2 db add_third_party_data now allows up to 4000 character long dataValues to match the db schema

  • q2 db update_third_party_data now allows up to 4000 character long dataValues to match the db schema

  • HqResponse better handles huge xml responses from HQ

  • q2_sdk.hq.api_helpers phone nodes now respect all country codes rather than just using USA regardless

  • Fix null check in hq.models.account.hade_dict to better work with lxml linting rules

v2.127.0 - 2022-04-14

Added

  • Added Q2REQUESTS_DEFAULT_TIMEOUT and Q2REQUESTS_DEFAULT_CONNECT_TIMEOUT variables in Configuration guide.

Changed

  • The create and update method of NavNode Dbobject now accept route_parameters up to 2048 characters.

v2.126.2 - 2022-04-11

Fixed

  • Fixes a bug with Disclaimer.accept_for_user_id that would break if a disclaimer in the DB does not have any GroupIDs

v2.126.1 - 2022-04-08

Fixed

  • Fixed bug with missing customerKey as part of cache key(when customerKey is available) in Ardent extensions

v2.126.0 - 2022-04-05

Added

  • Disclaimer DbObject now has an accept_for_user_id method to facilitate accepting disclaimers more easily from the SDK

  • Disclaimer DbObject now has a RepresentationRow for ret_table_obj=True

  • Disclaimer.get now returns more fields

  • q2_sdk.tools.test.models.CacheMock now has a raise_remove_error parameter, useful for some testing scenarios

  • AuthToken DbObject’s .delete method now works in the datacenter

  • Adds q2 vault add_hq_creds for working with mocked hq creds locally

Changed

  • Disclaimer documentation pages updated with new method

  • ArdentFS File Upload docs pages updated with a From Python example

  • UUXPayload install step no longer busts cache if it will not do anything useful

  • Updated the Architecture picture in the documentation

Fixed

  • q2 remove_from_nav (and q2 uninstall) will no longer fail if UserPropertyData was not installed for the extension

  • self.vault.get_hq_creds now works with local mock vault if an override_customer_key is passed in with the payload

v2.125.1 - 2022-03-30

Fixed

  • Cleans up nvm output in the event of a missing .nvmrc

  • q2 lint command now works against frontend testing even with a missing .nvmrc

  • q2 db update_wedge_address now allows urls up to 256 characters in length (matching the database column)

v2.125.0 - 2022-03-23

Changed

  • Updated the OnlineBanking tutorial to use user_data property.

  • Changed documentation in Ardent tutorial to reflect the changes on using self.get_dc_cookie() to generate cookie strings.

Fixed

  • Fixed bug on q2 lint and q2 test cli endpoints that allows sourcing nvm.sh on shared-dev.

  • Allows hardcoded USE_INCOMING_HQ_URL in settings during q2 check.

  • Allows to dynamically use WedgeOnlineBanking or Q2API version of GetHqVersion in SsoUserLogon.

Added

  • Added Rebuild Python Version option in caliper_admin script which provides the download url to build python on mac.

v2.124.0 - 2022-03-17

Fixed

  • Fixed AttributeError bug while creating ClientSide extensions using react framework.

  • Fixed widgets docs code sample on q2 frontend vs q2 tecton. dashboard.account_group is now dashboard.account-group dashboard.account_card is now dashboard.account-card

  • Fixed bug with VaultInfo InstallStep that prevented it from installing if basename_transforms was blank

  • Fixed bug with ArdentFS not able to download files.

  • Fixed bug on Account model when list of Q2_AccountDataElement nodes is empty.

Added

  • VaultInfo InstallStep can now write to local vault for local dev.

Changed

  • Changed the password length while generating user logon password to PasswordPolicy object’s min_length attribute.

v2.123.1 - 2022-03-14

Changed

  • Ardent extensions now use customerKey as part of a cache key if it’s available.

v2.123.0 - 2022-03-10

Added

  • The cli entrypoint q2 frontend is changed to q2 tecton. q2 tecton now has much more functionality and an improved user interface.

Deprecated

  • @ajax decorator is no longer needed for Tecton Client Side extensions since it has @ajax behaviour by default.

Fixed

  • Added fix to greatly improve the speed of account_list operations when working with large account list.

v2.122.0 - 2022-03-04

Added

  • UserPropertyData.delete is now available in the datacenter, not just dev only

Changed

  • q2 db remove_user_property_data_element will now remove all child UserPropertData rows (dev only)

  • strict parameter on UserPropertyData.delete is now deprecated. Strict mode is always true. To remove multiple, create a loop (or use q2 db remove_user_property_data_element in dev)

Fixed

  • Switching RENDER_IN_NEW_WINDOW’s value in an SSOHandler, then running q2 update_installed on that extension will accurately flip it in the database

  • Slightly improves performance on Account model when a property is accessed many times per request

  • Removed non-backwards compatible column auditDay from the sdk_GetAuditSessionRecords stored procedure

v2.121.0 - 2022-03-02

Added

  • Updated widget documentation for new url testing structure.

  • Added method get_audit_session to AuditRecord DbObject

  • Adds q2 db get_audit_session CLI entrypoint

  • Added note that OLB is hosted on cloud for the external setup documentation.

Fixed

  • Cleaned up redundant sql error messages

  • Fixes bug on CentralHandler to handle non-hq request.

  • Bug fix on defining renderApp function inside react templates.

v2.120.2 - 2022-02-25

Fixed

  • q2 install now sets vendor_address correctly when using the local dev websocket

Added

  • User DbObject now returns UserRoleID at the CLI (if --extended set)

v2.120.1 - 2022-02-24

Fixed

  • AccountRightsBitFlag will now stay in sync between Q2_Form and Q2_WedgeAddress tables on q2 update_installed

Added

  • VsCode extensions will now be persisted between restarts of the docker dev machine

v2.120.0 - 2022-02-18

Fixed

  • Fixes bug with session_cache. Now self.session_cache.get() pulls the values correctly and updated the docs

Changed

  • Adds schema to all SDK stored procedures.

  • Bumped jinja2 version to 3.0.3

v2.119.3 - 2022-02-09

Fixed

  • Frontend files will now build with changes to common image file types

Changed

  • Docker Dev machine’s generate_vs_code files will now skip overwriting user settings by default

v2.119.2 - 2022-02-07

Added

  • Adds ALLOW_TRAFFIC_TO_DEFAULT_EXTENSIONS configuration to allow non Q2 traffic to a default extension

Fixed

  • Fixed SSO tutorial to link to right guide for using vault for secret storage

  • Matches more certificate header styles in vault.get_certificate

v2.119.1 - 2022-02-02

Fixed

  • q2 test now works with frontend extensions that rely on a non-system level node using nvm

  • Hides extraneous logs on /healthcheck endpoint related to vault health

v2.119.0 - 2022-02-01

Added

  • LinkedAccount DbObject now has a .get_customer_accounts method

  • Adds q2 db get_customer_linked_accounts CLI entrypoint

  • Adds prerelease version type in q2 changelog CLI entrypoint

  • Adds AddressType DbObject with get method

  • Adds q2 db get_address_type CLI entrypoint

Fixed

  • q2 lint now works with frontend testing repos that rely on a non-system level node using nvm

  • self.vault.read will now work in multitenant deploys by defaulting to the Institution level StorageLevel unless a Stack is provided

  • Fixes a bug with UserLogon DbObject’s delete method that would not match on the given login_name

v2.118.1 - 2022-01-25

Fixed

  • Fixes scenario where traffic blocked from non-q2 IPs would continue executing after returning 403

  • Fixes issue with DockerDevMachine where nvm path in the container was wrong

  • Audit Records can now be created with AuditRecord DbObject even in multitenant deployments

Security

  • Any non-q2 IP address in the network hop stack will now count toward is_q2_traffic==True when self.allow_non_q2_traffic is set to False

Changed

  • Serverside extensions will better detect when their frontend resources have changed, resulting in less yarn build operations

v2.118.0 - 2022-01-21

Changed

  • Yarn package manager is now expected to be installed at the system level for building frontend packages

Added

  • Docker dev machine now has yarn installed at the system level

Fixed

  • Updates pythonPath variable to defaultInterpreterPath in vsCode file generation scripts (in line with vsCode updates)

v2.117.0 - 2022-01-14

Added

  • Added add_transaction_note method to GeneratedTransactions dbobject.

  • Added session_cache to Q2HqRequestHandler which allows to prepend session_id to the key passed. Added notes to Performance and Security guide.

  • Add native support for start_dev_machine to vscode

Fixed

  • Fixed bug with q2 add_to_nav which now no longer shows the uninstalled extensions.

  • Fix CLI autocompletion in VSCode

Changed

  • Auto update start_dev_machine scripts.

v2.116.0 - 2022-01-07

Added

  • Added docker-compose support to dev machine.

v2.115.0 - 2022-01-06

Added

  • First class React support!

  • q2 create_extension client side rendered option will now prompt for React/VanillaJS

  • q2 run and q2 create_extension will now subprocess NVM for managing node version

  • CSR generation will also generate an .nvmrc defaulted to v16

  • New package.json template for CSR will use parcel 2

  • q2 run will now install yarn and all dependencies even if you are not the dev to create the extension

  • Improved HMR support for CSR extensions

  • Docker dev machine and caliper_admin local script both updated to reflect NVM addition

  • self.logger will now highlight warnings YELLOW and errors RED in streaming logs

  • Pre 4.4 extensions now have the ability to hide modals’ close buttons

Fixed

  • Fix an issue with SSO handlers that would break if AccountInformations was not present on the inbound request

  • Central forms now correctly use the short_name instead of the more transient form_name for installation

v2.114.1 - 2021-12-30

Fixed

  • Log lines with a builtin endpoint embedded inside will no longer be filtered unnecessarily

  • q2 generate_hq_api will no longer error on newer HQ endpoints

v2.114.0 - 2021-12-22

Added

  • Added DisplayNameUiTextElementShortName on Form DbObject

  • Added PropertyName to vendor DbObject

  • Adds DC Cookie documentation to Ardent Tutorial

Security

  • Upgraded lxml version from 4.6.3 to 4.7.1 for security purposes

v2.113.0 - 2021-12-15

Added

  • Adds AuthToken.create method to DbObject

  • Adds q2 db get_auth_token, q2 db create_auth_token, and q2 db remove_auth_token to the CLI

Fixed

  • CLI will no longer respond with ‘success’ to q2 db * calls that return 0 results

  • /admin endpoint will now accurately terminate the process even in a load balanced scenario

  • Fixes a bug that would reset self.logger’s logging level to INFO after calling self.cache if originally configured with an environment variable (since 2.100.0)

Changed

  • Behind the scenes added changes to improve Vendor DbObject’s .update api

v2.112.1 - 2021-12-08

Fixed

  • SSOExtension phone numbers without extensions will no longer show xNone at the end of the phone string

Changed

  • Running q2 run with the websocket connection will now log the Service URL destination on startup

v2.112.0 - 2021-12-03

Added

  • Introduces the caliper_admin script for setting up a development environment on your local machine

  • Extenal setup docs page now has updated information on developing locally using the caliper_admin script

Fixed

  • HostAccount DbObject’s search_by_external_number now matches HQ’s logic for using either AccountNumberExternal or AccountNumberInternal depending on how the DB is configured

Changed

  • Improved invalidate_hq_cache’s logic for finding load balanced services

v2.111.1 - 2021-11-29

Fixed

  • Q2_VendorAddress Address column now accepts 256 characters instead of 100 to more closely match the DB schema

  • UserDemographicData DbObject will now use Province over State for the Address if configured in the DB

v2.111.0 - 2021-11-23

Changed

  • Changed build_add_customer_xml and build_add_user_xml in api_helpers to allow more than Home address types

Fixed

  • Fixes broken link bug with .ssh in docker dev

Added

  • Added docs for cloning git repository inside docker dev

  • Added docs for Multi-Factor/2-Factor Authentication and Enhanced SSO implementation in Online Banking.

v2.110.0 - 2021-11-17

Changed

  • Added additional columns to ‘GeneratedTransactions’ db object.

  • Changed env variable CSR_USER to q2api in non-docker local dev setup documentation.

  • Behind the scenes added changes to improve NavNode.update’s api.

  • Changes to update description column in Q2_VendorConfigDataElements using q2 db update_vendor_configs

Added

  • Adds update method to Customer and User DbObject

  • Adds q2 db update_customer CLI command

  • Adds q2 db update_user CLI command

  • Adds q2 db update_vendor_configs, q2 db delete_vendor_configs,q2 db add_vendor_configs CLI commands

  • Added file redirection to Linux Quick Reference docs.

Fixed

  • Fixes a bug in Configuration docs in Online Banking Tutorial.

v2.109.1 - 2021-11-10

Fixed

  • Fixes a bug which would not submit <q2-textarea> elements in Tecton SSR forms

  • Fixes bug with VendorConfig.update that never awaited the coroutine

  • Fixes secure_message guide page example code

v2.109.0 - 2021-11-02

Added

  • q2 update_installed now works with Central extensions

  • UiText DbObject can now specify UiSelection information on all methods

Fixed

  • Fix more misspellings on DateAlert DbObject calls

v2.108.0 - 2021-10-28

Added

  • Adds a Database Object step to the Online Banking tutorial

  • Adds Caliper SDK side support for upcoming Tecton SetUserConfig, GetUserConfig, and RemoveUserConfig methods

  • Adds update method to WedgeAddress DbObject

  • Adds q2 db update_wedge_address CLI command

  • q2 update_installed now works with Ardent extensions

Fixed

  • Docker Dev machine now works with host paths that contain spaces

  • Docker Dev machine now correctly lowercases stack name entries

  • q2 setup_db will no longer prompt for sql package installation if dev socket is being used

  • Fixes an issue with Alert model that did not work with overridden notification_type

  • Fixes bug in SSO tutorial documentation page

  • Fix a bug with the SSOHandler multitenant implementation that would overwrite the HQCredentials with blank from the inherited in some conditions

  • Fixes misspelling in WedgeAddressRow response object from TimeInMilliSeconds to TimeoutInMilliSeconds

v2.107.1 - 2021-10-22

Changed

  • q2 add_to_nav will present the current repo’s extensions at the top of the list

  • q2 update_installed for SSO extensions now returns clearer output regarding changed VendorConfigs

Fixed

  • Fix q2 upgrade -p tecton bug that stripped out leading / in file paths

  • Now possible to update an SSO from a codebase that’s not the original one

  • q2 update_installed for SSO extensions no longer errors if TableRows are returned instead of lxml objects

v2.107.0 - 2021-10-18

Added

  • Adds q2 db update_vendor CLI command

  • setup_db now works on docker_dev

Fixed

  • q2 update_installed now updates parameter bit flags on an SSO extension

  • Tecton now correctly defaults to Main module under navigateTo calls.

v2.106.2 - 2021-10-14

Fixed

  • Fix bug with q2_request calls that pass session instances

v2.106.1 - 2021-10-14

Fixed

  • Fixes an implementation bug in the latest HQAuthToken with SSO update

  • Tecton’s navigateTo function will now work with SSO extension types

  • Fixes a bug with @mfa_validation_required decorator when used from CSR extensions

Security

  • Upgrades to lxml 4.6.3 (should increase build speed, too)

v2.106.0 - 2021-10-12

Added

  • Creates q2_sdk.models.oauth_client.OAuthClient class. When passed to a q2_requests call, can allow easy/customized oauth token interaction

  • q2 install will now set add HqAuthTokenType and HqAuthTokenLifeInMinutes for SSO extensions

  • SSO handlers will now respect the current online session in self.hq_credentials (assuming it was configured on q2 install)

Fixed

  • Comments in the settings file can no longer trip the q2 check hardcoded HQ credentials test

  • Improvements for CLI completion combined with custom entrypoints

  • Generated gitignore file now specifies __MACOSX instead of the overly generic __*

  • Fixes a bug with q2 run_sql that could run custom SQL multiple times in rare conditions with multiple extensions contained in the same file

  • FORK_REQUESTS mode will no longer kill the server when entering backoff pressure mode

  • Improves performance of FORK_REQUESTS mode by switching to child signal handling instead of subprocessed ps calls

v2.105.0 - 2021-10-05

Added

  • Adds RecurringTransaction DbObject with get method

  • Adds q2 db get_recurring_transaction CLI command

  • FORK_REQUESTS mode will now report child pids that exit prematurely in the logs (likely due to Out of Memory issues). Useful for more appropriately sizing containers.

Fixed

  • Fixes edgecases with build frontend subprocess in some linux variants

v2.104.0 - 2021-10-01

Added

  • GeneratedTransactions DbObject now has a get_by_recurring_id method

  • Adds q2 db get_generated_transactions_by_recurring_id cli entrypoint

  • FORK_REQUESTS mode will now log when memory is getting low in the container (controlled by the Q2SDK_FORK_WARNING_MB env var)

  • FORK_REQUESTS mode will now stop accepting requests when memory is low enough to kill the container (controlled by the Q2SDK_FORK_BACKOFF_MB env var)

  • It is now possible to pass print kwargs through q2_sdk.core.cli.textui.puts

Changed

  • UDP Callback port is now randomized in FORK_REQUESTS mode (rather than defaulting to 1983)

Fixed

  • Improvements to q2 install_completion to allow for thread safety in some rare cases (ex. parallel build pipelines)

  • Custom entrypoints will now always be preferred to builtins with the same name

  • Passed in insight tokens are now respected even if already cached

  • Fix a bug with dev only stored proc sdk_DeleteHostAccountMetaData that would raise an exception when running with q2 setup_db

v2.103.1 - 2021-09-28

Fixed

  • Navigation Tree choice in add_to_nav is now passed properly al the way through the workflow

  • UUXPayload InstallStep now properly interprets wedge_address_js_variables if present

  • Fixes backwards compatible close parameter in TectonModal to no longer treat False as None

Added

  • GeneratedTransactions DbObject now has a get_by_id method

v2.103.0 - 2021-09-23

Added

  • SecAlertUserPref DbObject now returns CountryCodePhoneNumber, CountryCodeSmsNumber, AreaCodePhoneNumber, and AreaCodeSmsNumber

  • Introduces Q2SDK_SERVICE_URL_PREFIX environment variable to give more fine grained control over deployment time url callbacks for UUXPayload DbPlan steps

Fixed

  • requirements.txt entries are now correctly parsed by various entrypoints even if they have comments in them

  • Improves GroupAccessMapping sql script to better match under more conditions

  • Docker dev machine now starts memcached correctly in pycharm debugger calls

  • CLI commands now no longer throw BrokenPipeErrors when piped to head/tail and a few other edgecase binaries

v2.102.0 - 2021-09-15

Added

  • Ardent handlers will now have access to Q2Api calls even in multitenant deployments

  • self.db_config (or self.wedge_address_configs) are now accessible from Ardent handlers even without calling self.get_wedge_address_configs() first

  • New documentation on Deep Linking to UUX pages from Mobile applications

  • q2 setup_db and q2 run_sql will now work on Debian 11 (including the docker dev machine for internal Q2 stacks) by equally supporting pymssql and pyodbc

  • Adds AuthToken DbObject with .get method

  • Adds q2 db get_auth_token CLI entrypoint

Changed

  • CLI commands will now automatically print output into clean columns

Fixed

  • Fixed a bug with CLI completion generation when built in commands were overridden

  • Docker dev machine will no longer stall after asking for IDE helper generation

  • Fixes an issue with SDK_OauthLookup sql script that wouldn’t run against certain databases

v2.101.0 - 2021-09-13

Added

  • Adds move_group method to Customer DbObject

  • Adds Delete method to Customer DbObject

  • Adds q2 db move_customer_group CLI command

  • Adds q2 db remove_customer CLI command

  • q2 install will now invalidate the DataFeed list when appropriate after installing Ardent extensions

Fixed

  • textui.puts now casts non-string inputs as strings when logging

  • Hardcoding FORK_REQUESTS in the settings file will no longer break the CLI for non q2 run commands

  • Fixes an issue with q2 test and q2 lint when passing extra parameters and running from outside a virtual environment

v2.100.0 - 2021-09-08

Added

  • SecAlertUserPref DbObject now also returns FirstName, LastName, EmailAddress, PhoneNumber, SmsNumber, and Nickname

Fixed

  • Q2CacheClient now actually respects the logger you pass in rather than creating its own

  • Fixes a bug with q2 create_extension and a few other entrypoints that did not accurately detect configuration/settings.py in the root of the repo

v2.99.0 - 2021-09-02

Added

  • Adds SecAlertUserPref DbObject to interact with the Q2_SecAlertUserPref table

  • Adds the get_sec_alert_user_pref, add_sec_alert_user_pref, update_sec_alert_user_pref, and remove_sec_alert_user_pref CLI entrypoints

  • Adds the GeneratedTransactions DbObject to interact with the Q2_GeneratedTransactions table

  • Adds the get_generated_transactions CLI entrypoint

  • Docker Dev Machine now supports Vault secrets and certificate storage while testing

Fixed

  • If NOMAD_SECRETS_DIR is undefined (only relevant in local development) will no longer prevent interacting with Vault stored certificates

v2.98.0 - 2021-08-27

Added

  • HQ’s AddRecipient xml_payload can now be generated with the api_helpers.build_add_recipient_xml function

  • HQ’s AddRecipientAccount xml_payload can now be generated with the api_helpers.build_add_recipient_account_xml function

  • Adds q2 db remove_user_data to the CLI

  • SSOUser class (self.online_user in the context of an SSO extension) now has the home_country and work_country attributes

  • It is now possible to dev ON the sdk repo inside a docker container! Check out the README at the root of the repo for details

Fixed

  • Fixes a bug with q2 update_installed when combined with SSO extensions that provided VendorConfigs

v2.97.0 - 2021-08-20

Added

  • Insight Features from DbPlan now show up as their own key on /inspect endpoint

  • q2 test now accepts extra shell commands with spaces in them

  • Adds method (GET/POST/PUT/etc) to endpoint request metrics endpoint

  • Adds a ‘caliper_current_requests’ metric per endpoint to track in flight requests

  • It is now possible to pass ‘dec’ operator through prometheus metrics, even in fork requests mode.

Changed

  • q2 create_extension for Tecton Client Side Rendered extensions will no longer automatically put --hrm-port 1982 into the package.json dev target. You can still manually apply this.

  • NOTE The docker docs that referenced start_dev_machine_test now reference start_dev_machine.

Removed

  • Old internal Q2 only docker machine was removed in favor of the new Docker Dev Machine referenced in the docs

Fixed

  • Updated React Client Side Render docs to reflect the current state of the product

v2.96.0 - 2021-08-13

Added

  • Docker dev machine now has a start_memcached command for local dev

  • Docker dev machine now has an add_cert command for cases where a company proxy captures outbound traffic

  • OnlineUser object now has an is_company flag that can be manually set to work around core mapper limitations

  • New HQ Endpoints:

    • Q2Api

      • AddOpenBankingUser

      • AddOpenBankingUserLogon

      • DeleteCustomer

      • GetOpenBankingProviders

    • WedgeOnlineBanking

      • AddRecurringDomesticWireByCount

      • AddRecurringDomesticWireByEndDate

      • AddRecurringDomesticWireNoEnd

      • AddRecurringInternationalWireByCount

      • AddRecurringInternationalWireByEndDate

      • AddRecurringInternationalWireNoEnd

      • GetRecurringWireDomestic

      • GetRecurringWireInternational

      • GetWireDomestic

      • GetWireInternational

Fixed

  • Core calls will now work with SSO extensions against Zoned databases

  • Fixes a bug in the docker dev machine for Q2 devs on Windows that would calculate the host IP incorrectly

Changed

  • Shared dev box will now prefer Pylance over Jedi for intellisense when running generate_vscode_files

v2.95.0 - 2021-08-06

Added

  • TableRow objects (enabled with RETURN_TABLE_OBJECTS_FROM_DB setting) now implement .pyval and .text for more backwards compatibility with raw xml elements

  • message_bus.push() method now supports overriding the topic with the topic parameter

  • Is it now possible to pass a content_type to Ardent File’s upload and upload_from_file methods (as well as at the CLI)

  • It is now possible to pass render_in_browser to Ardent File’s get_public_download_url method (as well as at the CLI). If True, browser will attempt to render the file inline rather than auto download

  • Many more DbObjects now support returning TableRows instead of xml (via RETURN_TABLE_OBJECTS_FROM_DB):

    • Hours

    • Language

    • Message

    • OFXTransactionType

    • ObjectGroup

    • PhoneNumber

    • ProductType

    • Product

    • PushNotificationTargets

    • Recipient

    • Regex

    • ReverseLookup

    • SsoUserLogon

    • Subsidiary

    • SystemPropertyData

    • Template

    • UiConfigPropertyData

    • UiSelectionRow

    • UserData

    • UserLogon

    • UserPropertyData

    • UserRole

    • User

    • VendorAddress

    • WedgeAddress

Fixed

  • Fixes a bug with self.get_ui_text that would raise an exception if RETURN_TABLE_OBJECTS_FROM_DB was True

  • All CLI commands will respect --logging-level (-l) value as case insensitive (debug == DEBUG)

  • User provided SQL in install/sql_server can now contain multiple commands with GO in between them, rather than splitting it into multiple scripts

v2.94.2 - 2021-08-04

Fixed

  • Fixes a bug with q2 add_to_nav introduced in 2.94.0

  • Fixes a bug with q2 --version introduced in 2.94.0

  • Fixes a bug with q2 run_db_plan that didn’t handle empty input files

Added

  • Docker dev machine will now run container-prebuild-hook-dev.sh on build if present

  • Group DbObject now works with RETURN_TABLE_OBJECTS_FROM_DB config setting

Changed

  • /dbplan endpoint now relies on the already passed VAULT_KEY to determine the HQ Creds

v2.94.1 - 2021-08-03

Fixed

  • Non-Tecton Q2Forms now work with the new UUX key ‘msgHasMarkup’. No change is necessary, this is just for backwards compatibility

  • Fixed a bug where q2 setup_db --print would not work with a 4.5 database

  • Handles a condition with the docker dev image where pre existing ports in the config file would cause a subsequent build to fail

  • Docker Dev image will now be more verbose about where it’s spending its time on initial build

Added

  • Docker Dev image now supports filling out a CustDockerArgs in the .antilles/docker/config file, which will be passed to the container on startup

v2.94.0 - 2021-08-02

Added

  • q2 update_installed now works with SSO extensions

  • Insight.ValidateToken.validate() method now contains a .raw_response

Changed

  • q2 update_installed_form is now q2 update_installed (with improved functionality)

Fixed

  • Fixes a bug where SSOs with duplicate names could be installed but not added to nav

  • New docker dev machine will now properly establish websocket with the browser and simulate hot module reloading in online banking

  • Fixes a bug with the sdk_RemoveEmail stored procedure that was specifying a bad column name in newer databases

v2.93.0 - 2021-07-26

Added

  • OAuthLookup DbObject now has an enable and disable function

  • Adds the DateAlert DbObject with .get, .create, and .update methods

Fixed

  • SSOHandler based extensions will now work correctly with self.core calls

Changed

  • q2 upgrade will now stream the output from the subprocessed pip command rather than just pause and eventually finish

v2.92.0 - 2021-07-22

Added

  • Adds HostAccountMetaData DbObject

  • Adds create method to Address DbObject

Changed

  • The Setup Guide in the docs has been completely rewritten to include our new Docker based solution. The old guide is still available as a fallback.

v2.91.1 - 2021-07-14

Fixed

  • Truly massive HQResponses will now work

  • q2 test against settings file items will now set test_mode correctly

v2.91.0 - 2021-07-08

Added

  • q2 add_to_nav now gracefully handles multiple nav trees, prompting for input if appropriate

  • Address, AdminUserPropertyData, AdminUserPropertyDataElement, AuditAction, AuditRecord, Country, CustomerData, DataFeed, Email, Form, HostAccount, HostAccountData, HostAccountDataElement, HostTranCode, HostTranCodeGrou, MessageRecientGroup, MessageTemplate, NavNode, Navigation, and OAuthLookup DbObjects now have RepresentationRows for compatibility with RETURN_TABLE_OBJECTS_FROM_DB config setting

  • Introduces a q2 login command to generate a jwt using q2developer.com creds

  • Adds marketplace_features to db_plan to allow stored_procedures to be installed as part of form installation

Fixed

  • Better handles edgecase of q2 create_extension running after settings.py file has been manually deleted

  • Very large HQ API responses are now automatically decompressed on the fly

  • VendorConfig, VendorAddress, and ThirdPartyDataElement InstallSteps will now run after their corresponding deendencies on q2 run_db_plan

Changed

  • q2 lint will now show warnings in yellow rather than red

v2.90.0 - 2021-07-01

Added

  • Adds new DbObject AccountAddress with corresponding CLI commands

  • Email DbObject now has Update and Delete functionality

  • MessageBus now supports Protobuf declarations from q2msg library

Fixed

  • q2 remove_from_nav now works with SSO extensions

Changed

  • q2 db add_user_property_data_element’s optional parameters allow_user_edit, allow_user_view, and allow_cust_view are now toggles rather than keyword params

v2.89.1 - 2021-06-29

Fixed

  • Fixes a bug where q2 check would not work for non-tuples in INSTALLED_EXTENSIONS

  • NavNode.update will no longer wipe unset parameters back to NULL, but rather leave them as they are in the database

  • Fixes q2 db update_vendor_address, which now takes a vendor_name as the first positional parameter (instead of vendor_address_id)

v2.89.0 - 2021-06-28

Added

  • __* now generated into .gitignore files

  • /inspect endpoint will now display the extension’s FRIENDLY_NAME

Fixed

  • Assets urls will now correctly interpret nested extensions (. in the path)

  • Fixes a bug where InstallSteps with default value of ‘0’ would be interpretted as True

  • Failed calls to /dbplan will now return 502 status instead of 200

v2.88.0 - 2021-06-17

Added

  • CentralHandler will now use backoffice session passed in for Backoffice API calls

  • SSO extensions will now log the HQ session ID at the beginning of the incoming HQ call

Fixed

  • q2 check now works correctly with aliased extensions defined as tuples in INSTALLED_EXTENSIONS

v2.87.0 - 2021-06-04

Added

  • Ardent File Upload now supports ttl for uploaded files (default 1 day)

Fixed

  • UUXPayload install steps will no longer double quote strings

v2.86.1 - 2021-06-01

Fixed

  • Use SERVICE_NAME as cache key if present

Added

  • Add capability to update vendorID on nav nodes

v2.86.0 - 2021-05-25

Added

  • Upgrades to Python 3.9 base

  • Shared dev box users can upgrade using the upgrade_to_python3.9 script

  • Unsupported python versions can now be used anyway by setting the Q2SDK_NO_VERSION_CHECK environment variable to 1

Changed

  • Upgrades from pylint 2.4.4 -> 2.8.2

v2.85.0 - 2021-05-24

Added

  • Adds GtCaseDecisionReason DbObject for working with the Q2_GTCaseDecisionReason table

  • Adds the get_suspect method to the Transactions DbObject

  • Adds the q2 db remove_customer_data CLI target

  • Adds DecideSuspectGt backoffice HqApi module. For usage instructions, check out the new BackOffice Calls documentation page.

  • Adds search_by_external_number to HostAccount DbObject

Fixed

  • Fixes clone_from_gitlab script on the shared dev box, which would sometimes not find the newly cloned repo automatically

  • Fixes a bug with message_bus module that prevented it from discovering the appropriate topic name in Production

Changed

  • q2 lint will no longer ignore the configuration directory

v2.84.2 - 2021-05-21

Fixed

  • Fixes a bug with calling the OnlineInstaller.install method if the extension is not in the current repo

v2.84.1 - 2021-05-19

Fixed

  • Fixes a bug where leaving property_id blank in NavNode.update would null out an existing PropertyID in the database. Now user must explicitly pass None if desired.

v2.84.0 - 2021-05-18

Added

  • Adds q2 insight get_feature_version

  • Adds q2 insight get_version

  • Guides and Tutorials will now appear above API references in web documentation

Fixed

  • HQ will now only be invalidated on q2 run in DEBUG mode

  • Newly generated tecton extensions will now pin parcel to 1.12.3 to avoid bug with latest parcel

  • Online documentation will now omit prompt text from copy button (leading $)

Changed

  • q2 setup_db will now autoinstall missing packages instead of just warning you to do so

v2.83.0 - 2021-05-10

Added

  • q2_sdk.core.prometheus.get_metric() now takes a kwargs argument which will pass through to underlying metric types (such as Histogram)

  • Online Banking Form Tutorial now contains Tecton element/capability training sections

  • Introduces a new Q2 Cores Tutorial

Fixed

  • q2 frontend will now work correctly with extensions that live elsewhere than the root of the repo

  • q2 update_installed_extension will now work correctly with extensions that live elsewhere than the root of the repo

  • Custom Health Checks will now work correctly with extensions that live elsewhere than the root of the repo

v2.82.1 - 2021-05-06

Fixed

  • q2 setup_db will now properly install sql scripts into 4.5+ Databases

  • q2 create_coreflow now works appropriately when building off of a custom_core stored somewhere other than the root of the repo

  • Fixes a bug with q2 run_db_plan if the extension was not stored at the root of the repo

v2.82.0 - 2021-05-04

Added

  • It is now possible to view and manipulate PropertyID on the NavNode DbObject

Fixed

  • Fixes a bug with Form DbObject’s get_by_name method that would sometimes return multiple rows. Manifested on q2 add_to_nav under certain conditions as a stacktrace

  • UserPropertyDataElement’s get_one method will now properly raise a DatabaseDataError when there is not a match

Changed

  • Trying to wrap an SSOHandler route in @ajax will now raise a more targetted NotExecutableError rather than inevitably failing later in the call

v2.81.0 - 2021-04-28

Added

  • It is now possible to use the CLI to install unauthenticated Tecton extensions

  • SSO:

    • Adds the Exception SSOResponse ResponseType

    • Q2SSOResponse objects now have an end_user_error_message property which will update the user facing error message in the even of a failed response

    • Q2SSOResponse objects now have a user_level_config_list parameter, which allows setting data in the database as part of the return response to HQ

  • MessageBus extensions can now subscribe to more than one message_type

  • AuditRecord DbObject now has a get_by_id method

  • Adds the LOG_RESPONSE_IN_DEBUG settings variable for great log verbosity at dev time

v2.80.0 - 2021-04-23

Added

  • UserData.get_by_short_name now returns all datafields instead of just UserID

  • UUXPayload DbPlan InstallStep now handles passing variables through JS with the wedge_address_js_variables property

Fixed

  • Handles the condition on q2 install that the UserPropertyData row for the group selection is true instead of True

  • Fixes a bug with FORK_REQUESTS mode where calls to non_handled endpoints (/notreal) would cause pids to be created and never terminated

v2.79.0 - 2021-04-15

Added

  • Q2Vault.get_certificate() will now work with VAULT_SCOPED_READ functionality. If set to True, will read from new location, falling back to old one

  • q2 vault add now writes to more appropriate location if VAULT_SCOPED_READ is set to True

  • q2 vault add_cert now writes to more appropriate location if VAULT_SCOPED_READ is set to True

  • Adds COMPRESS_RESPONSE settings variable (and corresponding Q2SDK_COMPRESS_RESPONSE environment variable). If True, will respond to requests that set the Accept-Encoding:gzip header with a gzip compressed response

v2.78.0 - 2021-04-09

Added

  • Adds OAuthLookup DbObject with get, get_by_value, add_update, and delete methods

  • Email DbObject now has a create method

  • It is now possible to set a Phone as a SAC target without simultaneously being a SAC_SMS target

  • q2 ardent file_upload cli command now takes a –timeout parameter

  • q2 ardent file_download cli command now takes a –timeout parameter

Fixed

  • VAULT_SCOPED_READ was not being respected when set in the settings file. This is now corrected

  • Fixed an issue with IsCustomerCreated storage in the database that would break if database data shape was corrupted

v2.77.2 - 2021-04-06

Fixed

  • HQ Api endpoints with list inputs now correctly serialize

  • Improves performance of q2 invalidate_hq_cache command

  • MessageBus handlers now correctly generate a url endpoint for all Q2 datacenter message topics on q2 create_extension

  • SSO type was missing from the q2 create_extension CLI flags

  • q2_sdk.core.vault’s .read() method now treats keyword parameters as keyword ONLY parameters to enforce good practice

  • Fixes a bug with ArdentHandler’s self.form_fields which would raise an exception if the body was empty

Added

  • Ardent’s upload, upload_from_file, and download methods now take an optional timeout parameter, which defaults to 30 seconds

v2.77.1 - 2021-03-31

Fixed

  • Entrypoints now work when located in subdirectories

  • MessageBus’s send_message now sends to the correct topic name based on host environment

  • MessageBusHandler’s now handle error messages from the consumer

Added

  • Docker dev machine now installs dev only system level dependencies if container-prebuild-hook-dev.sh exists in the repo

v2.77.0 - 2021-03-30

Added

  • Adds CurrencyCode DbObject

  • ArdentHandlers now capture both query parameters and post body parameters in self.form_fields

Fixed

  • Improves q2 invalidate_hq_cache to better discover Central HQs

v2.76.0 - 2021-03-24

Added

  • Adds TransactionType DbObject for use with the FundsTransfer related HqApi endpoints

  • Adds q2 db get_transaction_types cli command

  • NavNode DbObject will now return NavigationID from .get()

Fixed

  • HqApi endpoints that require currency_code will now correctly default to USD

  • ardent.file_upload.upload_from_file will now include the encryption key along with the file_id in the return

Changed

  • In DEBUG mode, log filtering will now be disabled

v2.75.1 - 2021-03-22

Fixed

  • Fixes circular import with new vault scoped read if there is a VAULT_KEY exported

  • Fixes a bug with nav_node.update which prevented it from working with SSO extensions

v2.75.0 - 2021-03-17

Added

  • The /dbplan endpoint now takes in a form_id header

  • DbPlan objects now take in an optional FormId parameter on the install method, allowing operations on the related form in custom install steps

  • Ardent File object now has a get_public_download_url method, which will generate a link that is hittable from a browser for a limited time

  • Docker dev machines will now pip install requirements_dev.txt before requirements.txt if it exists

  • Adds .get_deleted method to Customer DbObject

  • Adds q2 db get_deleted_customers CLI entrypoint

  • Adds .get_deleted method to User DbObject

  • Adds q2 db get_deleted_users CLI entrypoint

  • Adds ability for Vault to scope it read to the stack or institution level, rather than just global. To use, opt in by setting the VAULT_SCOPED_READ variable to True in your settings file

  • Extensions now have a self.vault property for ease of use

  • Adds a logger to Vault operations (secrets will not be logged, even in DEBUG mode)

  • Q2Vault.get_certificate() now has an as_obj property. If set to True, will return a Certificate object, which has .key, .cert, and .path properties for ease of use.

Fixed

  • Fixed a bug where requests could close sockets prematurely in FORK_REQUESTS=True mode

Changed

  • WARNING The old Vault behavior (global reads and raw returns) is now available under Q2Vault.read_raw. The SDK will still use this by default until VAULT_SCOPED_READ is set to True, but will log a deprecation warning. This will be removed in SDK 3.0 and only support scoped read.

v2.74.0 - 2021-03-10

Added

  • All extension types will respect the ‘dev’ target in package.json files if present, allowing even non-tecton based extensions to have local frontend helpers

  • Adds a check to q2 check to ensure frontend packages have a package-lock.json or a yarn.lock file

  • Adds GtData DbObject with .create method

Changed

  • Tecton SSR extensions generated prior to this version will not autorebuild javascript assets on change. To get the old functionality, remove the ‘dev’ target from the package.json file in these cases

Fixed

  • Fixes a bug with Ardent file uploading that would not allow files uploaded from the backend through the Q2 Firewall in some cases

  • Fixes a bug where removing all environment variables could cause q2 check to fail

  • non-ASCII characters can now be properly submitted as form field entries to HQHandler based extensions

  • Fixes a bug with Tecton forms that would pass the wrong language asset url through the system

  • Fixes a bug where extension URLs could reference the wrong extension if one extension_name was wholly contained within another (ie Foo vs FooBar)

v2.73.0 - 2021-03-03

Added

  • Adds get_message_thread to Message DbObject. This is a powerful function that could potentially be dangerous if used incorrectly, so therefore must be opted into via the DANGEROUS_WHITELIST in settings

  • TableRow object now has .headers, .keys, .values, and .items properties for ease of use

  • TableRow object now better handles parsing of DateTime objects

  • If COMPANY is set in the settings file, it will now be added to the db on install for reporting purposes

  • Q2Vault object will now also attempt to read from ~/.vault-token if other locations are exhausted, bringing it in line with vault binary program

  • q2 add_to_nav now has the ability to install with the nav node disabled

  • It is now possible to change whether SSOs show in an iframe or a new window after installation with q2 update_nav_node

  • /inspect endpoint and q2 inspect entrypoint now shows COMPANY value from settings

Changed

  • q2 install will now install a form for all languages, not just USEnglish

  • q2 add_to_nav will now install a form for all languages, not just USEnglish

  • COMPANY will now be required in the settings file if IS_CUSTOMER_CREATED is True

v2.72.0 - 2021-02-26

Added

  • Adds built-in /admin endpoint for terminating server at runtime

Fixed

  • Better descriptions on q2 insight install_feature returns

  • q2 run will now properly refresh the ardent cache on server start again

  • Fix a bug where q2 changelog was not compatible with extensions registered in the tuple (name, path) format

v2.71.1 - 2021-02-18

Fixed

  • Fixes a bug with FORK_REQUESTS mode which could potentially close the socket before all bytes were written in the child

Changed

  • q2 run in DEBUG mode will now explicitly disable caching in the browser for served assets

Added

  • q2 check will now error if .gitignore is missing or if it contains package-lock.json

v2.71.0 - 2021-02-16

Added

  • Adds RETURN_TABLE_OBJECTS_FROM_DB setting, which will ensure all DbObjects return TableRow objects with more flexibility than ObjectifiedElement ones

  • Adds Message DbObject for programmatic access to the User’s Messages logged in the database

  • Adds Navigation DbObject for programmatic access to the Q2_Navigation table for use with Themes

  • NavNode DbObject now has the ability to pass navigation id to register a nav node with only a single theme

  • Moves message_bus extension out of beta and integrates it with the Q2 KraytD and Kuiil services

  • Adds a MessageBus Extension tutorial

Fixed

  • AccountList now correctly applies access level rights at a bitwise level rather than an integer one to more closely match HQ logic

  • Fixes a bug with q2 remove_from_nav that would not properly remove entries if they were subsets of another existing nav item

v2.70.0 - 2021-02-05

Added

  • It is now possible to set an extension level INBOUND_IP_WHITELIST by setting it as a class variable

  • HqResponse.parse_sproc_return now takes a specific_table parameter in the event that the stored proc returns something different than the standard Table

  • DbObjects

    • Adds Recipient DbObject with get_by_customer and get_by_recipient methods

    • Adds Template DbObject with get and get_template_recipients methods

    • User DbObject now has an update_dob method

  • HqApi:

    • Adds AddChangeOfAddress Endpoint

    • Adds AsyncRequestUpdate Endpoint

    • Adds ExecuteOutstandingReportsByZone Endpoint

    • Adds ExecuteWedgeRequestByNameWithTimeoutAsStringZoned Endpoint

    • Adds ExecuteWedgeRequestByNameWithTimedZoned Endpoint

    • Adds GetCustomerLocateWhere Endpoint

    • Adds GetGroupLocateWhere Endpoint

    • Adds GetUserAccountListWhere Endpoint

    • Adds GetUserLocateWhere Endpoint

    • Adds GetUserLogonLocateWhere Endpoint

    • Adds MigrateCustomerFromTreasury Endpoint

    • Adds MigrateCustomerToTreasury Endpoint

    • Adds GetGeneratedTransactionDataElements Endpoint

    • Adds GetGeneratedTransactionsWindowedWithGtData Endpoint

    • Adds GetRecurringTransactionsWindowedWithGtData Endpoint

Deprecated

  • Added deprecation warning to all HqApi .get_soap and .get_json functions, preferring .execute

Fixed

  • HqApi .get_soap and .get_json functions now pass along **kwargs, allowing its use with timeout parameter

  • Fixes a bug where if an HQ url was wholly contained inside another HQ url in the same HQ_LIST, the server would not correctly rotate between them on failures

  • Fixes a bug where the q2 upgrade command would not work with pip version 21 or greater

Changed

  • Hq Healthcheck on /status endpoint now counts a 3 second delay in response as a failure

v2.69.1 - 2021-02-01

Fixed

  • Fixes issue when certain UserDemographicData fields are null in the database

  • Fixes issue with q2 check that would raise an exception if a version string was not locked in requirements.txt

Added

  • Prometheus metrics now list fork_mode True/False

  • Prometheus metrics now list self.cache timings

v2.69.0 - 2021-01-27

Added

  • Adds awaitable get_async, get_many_async, set_async, set_many_async methods to Q2CacheClient.

  • Adds GroupToZone DbObject

  • Adds q2 db get_group_to_zone CLI command

  • DbPlans now support a self.disallow_add_to_nav property, defaulted to False, which will not allow q2 add_to_nav to run for the given extension

  • Adds Custom Health Checks that will display on the /status endpoint

  • Adds Custom Health Check MenuOption on q2 create_extension

  • Adds UDP_HANDLERS dict in settings, allowing for custom callbacks when server is running in Fork mode

  • If the posted UDP message is larger than 64K (largest the protocol allows), it will be automatically compressed

  • Documentation page on all available configuration options in configuration/settings.py

Fixed

  • Q2SDK_MAX_THREADS environment variable is now correctly cast as an integer

v2.68.3 - 2021-01-21

Fixed

  • Backwards compatibility fix for UUXPayload install step

  • Fixes signature of newly generated Ardent extension get method

  • Fixes a bug with BROWSER_LINK websocket that would try to start even if DEBUG was hardcoded to False in the settings file, resulting in a tornado.autoreload stack trace

v2.68.2 - 2021-01-14

Fixed

  • Running a unit test suite through VsCode will now correctly set the IS_TEST_MODE parameter (which is respected by several SDK internal functions)

  • Handles several edgecases with api_helpers.build_update_demographics_by_logon_name_xml regarding missing or incomplete information

  • Fixes a bug with logging filters that would filter the body, but not the args. i.e. self.logger.info('%s', '1234567812345678') would not be caught by the credit card filter while self.logger.info('1234567812345678') would

Changed

  • q2 setup_db will now attempt to invalidate HQ’s AuditAction list, which helps streamline working with brand new stacks

Added

  • Docs now have a copy button on code snippets

v2.68.1 - 2021-01-11

Fixed

  • Server side modals will now properly escape HTML tags in the message field

  • Handles a condition where add_to_nav without the friendly_name kwarg would result in a failed insertion to the database

Changed

  • If api_helpers.build_update_demographics_by_logon_name_xml is called without first_name, last_name, or middle_name fields, it will no longer try to update the User row in the database

v2.68.0 - 2021-01-06

Added

  • Adds local asset server mapping capability. Check the Guides -> Frontend Development -> Serving Assets page of the docs for more details

  • Aliases window.tecton to Tecton’s capabilities object in default ClientSideRender index.js template

Changed

  • q2_requests calls will now log actual bytes sent in the requests instead of just their python representations

Fixed

  • Fixes a bug with nav_node install and uninstall that didn’t always work when short name in database didn’t match display name

  • Fixes backwards compatibility bug with entrypoints.add_to_nav.add_to_nav()

  • Fixes install bug on database stored procedure sdk_GetAdminUserPropertyData

v2.67.1 - 2020-12-31

Fixed

  • Fixes a bug with FORK_REQUESTS which caused static asset requests to leak PIDs

  • Fixes a bug where newly generated extensions would fail on calls to /get due to a missing routing_key param

v2.67.0 - 2020-12-29

Added

  • Installing an OnlineHandler into a database will now ensure Customer/CanSubmitForms is turned on for all appropriate groups

  • Custom DbPlan InstallSteps can now makes an educated guess on type if the class signature contains inputs but no InstallStepAttributes are explicitly defined

Fixed

  • Improves type hinting on User DbObject to include DOB field

  • HQ Calls will now only rotate between configured HQs in the event of a connection failure, not on all failure types

v2.66.0 - 2020-12-16

Added

  • NavNode.get now returns DeviceBitflag field

  • Better type hinting on NavNode.get

  • Adds the AdminUserPropertyData DbObject

  • Adds the AdminUserPropertyDataElement DbObject

  • Periodic Entrypoints now have an on_pre_run hook that will be invoked before run

  • Adds an Ardent Tutorial in the documentation

  • NavNode update functions now allow setting form_id and enabled properties

Fixed

  • Periodic Entrypoints now log with a GUID per run matching the logging for request handlers

  • Fixes a bug with add_to_nav function that changed central_display_name param to friendly_name without backwards compatibility consideration

  • Fixes a bug with various api_helper functions that would not generate soap body correctly if social security number was undefined

  • Fixes a bug with q2 check that would report FAILED in a repo with only periodic entrypoints and no handlers

  • The SDK runtime will no longer try to loop through HQs in a list on all errors, only on connection errors

  • Fixes a casing bug with customer_key override in the wedge_address_table

Changed

  • Periodic Entrypoints will now log the SDK version and Image Tag (if present)

v2.65.0 - 2020-12-10

Added

  • HqApi methods now pass along kwargs in .execute, eventually interpretted by request call, eg. timeout=3

  • When enabling group_access_mapping, if there is no Q2 GamTeam, default to Admin for more compatibility

  • build_add_user_xml and build_add_customer_xml api_helper functions now accept host_user and host_pwd params

Fixed

  • Fixes a bug where WedgeOnlineBanking endpoints which took ‘aba’ as a parameter were not generating correctly

  • Fixed a bug when running in Fork Mode which caused the child process to exit before the end of the request if self.finish() was called explicitely in the extension

  • Fixes a bug with Tecton modals which was escaping HTML characters when passed as message body

  • Fixes a bug that caused duplicates to show up in add_to_nav if a Tecton form had been installed multiple times for different routes

Changed

  • HqApi parameters which are passed None in python will omit the xml element when sending to HQ, rather than sending it as blank

v2.64.0 - 2020-12-07

Added

  • Tecton CSR handlers now generate with DbPlan objects referenced

  • SSO handlers now have a self.online_session.is_csr_assist property

  • Better capabilities around icon support on q2 add_to_nav

Changed

  • .vscode directory will now be added to gitignore on q2 setup

Fixed

  • Improves performance of q2 invalidate_hq_cache operation

  • Fix a bug where Tecton extensions could not be installed multiple times with different names

  • Fixed a bug with sdk_UpdateNavNode that prevented it from installing on HQ versions < 4.4.0.5418

v2.63.4 - 2020-11-25

Fixed

  • Fixes an issue with self.get_ui_text which would sometimes choose an inappropriate item if a Theme (UiSelectionID) is not provided but exists in the database

Changed

  • Tweak to HqCommands object internals to more closely match desired HQ access

v2.63.3 - 2020-11-23

Fixed

  • Fixes a bug with self.get_template that raised an exception if the magic key this was passed as a replacement key and this was an object

v2.63.2 - 2020-11-19

Fixed

  • No longer error in the rare cases where Accounts do not have access attributes

  • Better handle the situation where SSO VendorConfigs are installed with different casing than expected in the python code

Changed

  • q2 run will now display Registered extensions instead of Installed extensions for clarity

  • Adds a warning message in the event that developer accesses self.core before post function has been invoked

v2.63.1 - 2020-11-17

Fixed

  • q2_sdk.core.prometheus.get_metric no longer breaks when passing None for chain parameter

  • add_to_nav now properly references short_name in UserPropertyData entries rather than substituting extension_name, which may or may not match

  • Fixed a bug where if another extension existed with a name that was the subset of a new one, navigation nodes might not insert properly

  • Fixes a bug with TectonModals that would improperly forward certain externalRoute modal actions to Tecton framework

Changed

  • TectonModal’s close parameter is now show_close to match the inherited Modal, though close will still work for backwards compatiblity

v2.63.0 - 2020-11-09

Added

  • q2 check now ensures ALL installed packages match versions in requirements.txt, not just Q2 libraries

v2.62.2 - 2020-11-06

Fixed

  • Fork Server now works with ‘https’ protocol

v2.62.1 - 2020-11-05

Fixed

  • Fixed bug with add_to_nav entrypoint that broke Tecton extensions in 2.62.0

  • Clearer central installer prompts at the CLI

  • HQ Creds will now dynamically refresh in Fork Server mode

v2.62.0 - 2020-11-04

Added

  • q2 add_to_nav now sets both route_params and device_bitflag in the database as part of install

  • HqResponse objects now have a .audit_id property

  • County, DataFeed, Disclaimer, GtDataElement, HostAccountDataElement, MessageRecipientGroup, MessageTemplate, NavNode, NavigationStyle, NotificationType, Regex, ReportInfo, State, ThirdPartyDataElement, and UserAccountAttribute DbObjects now all have .get_by_name support

Fixed

  • Pre4.4 and Tecton SSR Modals now correctly accept ‘ and “ characters in the title

  • Newly generated urls.py files will now properly list the URL_PATTERN as a Regex string (r””)

Changed

  • Fork mode will now default UDP port to 1983 instead of 1982, which inadvertently clashed with the 1982 HMR port elsewhere in the project

v2.61.0 - 2020-10-27

Added

  • q2 run can now run in ‘Fork Mode’, making a new process per request, by setting settings.FORK_REQUESTS to True

  • settings.FORK_REQUESTS respects the environment variable Q2SDK_FORK_REQUESTS

  • If settings.FORK_REQUESTS is True, a UDP server will be booted up to handle certain traffic, running on the port defined in settings.ANTILLES_UDP_CALLBACK_PORT (1982 by default)

  • Phone object now has an is_sac_target property

Changed

  • Manually invoking q2 db update_nav_node or q2 db add_nav_node will no longer attempt to bounce a stack, relying instead on the cleaner invalidate_hq_cache functionality

  • q2 create_extension now defaults to Server Side Rendered Tecton extension type

v2.60.0 - 2020-10-20

Added

  • Customer.get() now accepts a zone_id to filter by zone in appropriate databases

  • q2 insight get_db_list now takes a --show-permanent-test parameter to merge prod results with permtest ones

Fixed

  • TectonServerHandler now uses form_short_name to call back to the backend if present

  • Fixes bug present since 2.57.1 in /dbplan endpoint that was not accepting overrides passed in, always preferring defaults

  • Fixes bug with unauthenticated Tecton routes that was treating self.form_fields differently than its authenticated counterpart

v2.59.2 - 2020-10-16

Fixed

  • Updates Regex dbObject to be more compatible with older Q2 platform versions

  • UserDemographicData object now works appropriate with empty MiddleName fields from the database

  • UserDemographicData object now uses 3 character Country Codes to correspond to the rest of the product’s expectations

v2.59.1 - 2020-10-09

Fixed

  • Fix a situation where malformed HqResponses could cause HqResponse.raw_response to not be populated

  • Custom build dbPlan InstallSteps will now properly work with q2 db run_db_plan file input overrides

v2.59.0 - 2020-10-07

Added

  • Adds UserRole DbObject

Fixed

  • Fixed a bug with retry logic on q2 insight upgrade_database that would time out after 30 seconds

  • Powershell start_dev_machine.ps1 script will now correctly swallow nondesired logging output

  • Central extensions will now correctly write the name of the extension into the description field in the database on install

  • Nested extensions (/nested/Foo) will now correctly serve up assets (such as images)

  • Ensure boolean HADEs are serialized as booleans in python

v2.58.0 - 2020-10-01

Added

  • Tecton extensions (manually) installed in the DataFeed table can now be accessed unauthenticated

Fixed

  • Docker dev machine now works better with WSL2

  • Docker dev machine startup will no longer throw warnings if there are no previous runs to clean up

  • SSOsession.primary_cif is now a string, matching OnlineUser.primary_cif’s type

Changed

  • q2_requests methods now have a 5 second connection and 30 second response timeout (as opposed to infinite). To override set the timeout arg as per Requests documentation

v2.57.1 - 2020-09-25

Fixed

  • Fixes tab completion bug with older –no-prompts parameter to facilitate a clean upgrade

Added

  • /dbplan endpoint now handles overrides passed in either a request body OR in the headers

v2.57.0 - 2020-09-22

Added

  • Adds Regex DbObject to gather data from the Q2_Regex table

  • Adds kwarg support to Account class, allowing instantiation of the object without passing in an lxml Element

  • AuditRecord.get() how has an audit_id parameter to limit output

  • q2 db get_audit_records now takes a -i parameter for passing AuditID

  • ardent.file_upload.File now sports both a .upload and a .upload_from_file option as well as a .get_download_url method to round out it’s usefulness from the python side

v2.56.0 - 2020-09-15

Added

  • Ardent File Upload capabilities now work with 4.4+ Tecton SSR extensions

Fixed

  • Dramatically improves Nav Menu insertion operations in environments with large nav sets

  • DEBUG level logging will now properly log q2_requests request body

  • Improves memory consumption in default request logging

v2.55.1 - 2020-08-26

Fixed

  • Fixes an issue where newly generated repos would fail to run the q2 command unless the environment variable Q2SDK_ARDENTFS_URL was set

  • CoreResponse object will now better handle the condition where the core itself returned an error code

  • q2 insight upgrade_db will now wait until the DB is fully upgraded rather than timing out after 2 minutes

v2.55.0 - 2020-08-25

Added

  • Adds user_role_id, auth_token_serial, and is_admin optional parameters to DemographicInfo class for commercial/treasury users

  • Adds GetGeneratedTransactionsWindowed HqApi endpoint

  • Adds GetRecurringTransactionsWindowed HqApi endpoint

  • Adds GetNextValidPaymentDateZoned HqApi endpoint

  • Adds SendSecureMessageToAllUsersInACustomer HqApi endpoint

  • Adds SendSecureMessageToAllUsersInAZone HqApi endpoint

  • Adds new File Upload capabilities to pre 4.4 forms. More details in the Guides -> Online Integration section of the docs

Fixed

  • Fixes q2 db get_user_property_data CLI header output

v2.54.0 - 2020-08-21

Added

  • UserPropertyData.create now takes a user_role_id param for corporate properties.

  • UserPropertyData.update now takes a user_role_id param for corporate properties.

  • UserPropertyData.delete now takes a user_role_id param for corporate properties.

v2.53.0 - 2020-08-21

Added

  • q2 insight get_db_list now has a --show-preprod (-p) flag which will add not yet LPT environments to prod list

  • Adds q2 insight validate_token entrypoint

Fixed

  • Fixes bug with api_helpers.build_add_customer_xml when appending a subsidiary that would error if the subsidiary did not have a WireCountryId

  • Significant improvements to the q2 command’s startup time.

v2.52.1 - 2020-08-13

Fixed

  • Fixes parameter name in customer_data.get_multi

  • Fixes type error in TectonModal

  • Better handle bad imports listed in INSTALLED_EXTENSIONS

v2.52.0 - 2020-08-12

Added

  • PhoneNumber DbObject now has a get_customer_phone_numbers method to search by customer_id

  • CustomerData DbObject now has a get_multi method to return multiple CustomerDataRows

  • Adds Subsidiary model to q2_sdk.models

  • q2_sdk.hq.api_helpers.build_add_customer_xml now takes a list of Subsidiary objects for use with commercial users

Fixed

  • Fixed a bug where .antilles cache directory would not be generated on entrypoint runs

v2.51.4 - 2020-08-10

Fixed

  • Fixed a bug with initial repo setup tab completion

v2.51.3 - 2020-08-06

Fixed

  • Fix a bug where q2_requests calls could not accept logger and url as keyword parameters

  • Fixed a bug in ProductType.get() where hq_credentials were not passed along

v2.51.2 - 2020-08-04

Fixed

  • Fixes tab completion bug introduced in 2.51.0

v2.51.1 - 2020-07-29

Fixed

  • Fixes @mfa_validate decorator when used in conjunction with Tecton Server Side extensions

v2.51.0 - 2020-07-22

Added

  • api_helpers.get_frequency_bit_flags now supports days_of_month parameter, allowing AddRecurring* Hq methods to specify frequencies such as “1st and 15th of each month”

Changed

  • q2 install_completion --no-prompts parameter has been split into --assume-yes and --assume-no

Fixed

  • Minor fix on docker dev container to autocorrect sql server names to known conventions

  • SSO extensions will now properly set UserPropertyDataElements on install even if short_name has been changed

v2.50.2 - 2020-07-14

Fixed

  • Fixed a bug where initial log level would not be reported correctly on /logging endpoint

  • The -l parameter on q2 get_users will no longer be interpretted as the desired logging_level

  • Bad import stack traces from client modules will no longer be swallowed by q2 run

  • Docker dev machine is no longer required to be housed in an all lowercase directory path

Added

  • q2 upgrade -p marketplace will now automatically add it to the INSTALLED_EXTENSIONS

v2.50.1 - 2020-07-08

Fixed

  • Fixes a bug where commented INSTALLED_EXTENSIONS lines in settings.py file can stop the server from starting

Changed

  • Default style.yapf file will now force multiline dicts

v2.50.0 - 2020-07-07

Added

  • settings.INSTALLED_EXTENSIONS now supports tuples of (”name”, “parentDirectory.name”) to support non root level extensions

  • q2 get_installed will now show ‘IsCustomerCreated’ column for all installation types

Fixed

  • q2 insight login -u USERNAME will now respect the USERNAME passed in

  • Fixes a bug with db_plan.required_forms that would not work correctly with objects, only strings.

  • sdk_GetPushNotificationTargets will no longer raise an error on q2 setup_db

v2.49.5 - 2020-06-29

Fixed

  • Fixes a condition with some HQ API endpoints where True/False in python would be turned into strings of True/False in xml rather than booleans 0/1

  • Routing functions that provide keyword arguments now handle only defining some of them

  • Improves speed of several SQL queries, including UserPropertyData.get

Changed

  • Tweaks the sensitivity of the asyncio slow threshold. Blocking calls of 1 second will be notated (previously 0.1 seconds)

v2.49.4 - 2020-06-26

Fixed

  • Nested extensions (directories below top level in repo) will now install in the DB correctly with q2 install

  • Improvements to docker dev startup scripts

Added

  • Literal {BASE_URL} is now supported in q2 run -c URL. Will be replaced at runtime.

v2.49.3 - 2020-06-23

Fixed

  • Ardent (API) handlers will no longer block non_q2 traffic

  • Overriding AssetURL (q2 run -c asset_url) will no longer also change the reported server base_url

  • Fixed a bug where updating the ABA in vault would not update the q2_sdk.cache.Q2Cache object’s key_prefix

  • Fixed a condition where nested extensions (parent.extension_name) would not return their front end assets correctly

Changed

  • Blocked external traffic will now return a 403 instead of a 404 status code

v2.49.2 - 2020-06-16

Changed

  • q2 check will now show full stack trace for non importable extensions

  • Improvements to docker dev startup scripts

Fixed

  • q2 setup_db will attempt to install all scripts, even if some fail in the middle

  • Fixes an edgecase (when combined with q2-cores >=1.15.3) that did not allow direct import of Cores from q2_cores in some cases

v2.49.1 - 2020-06-11

Fixed

  • Fixes a bug with UiText.create_bulk that would cut off text at 1024 characters

  • UserPropertyData InstallStep will no longer be serialized as boolean choices

Added

  • BaseHandler’s self.get_ui_text method now takes an optional cache_time parameter to override the default (60 seconds)

v2.49.0 - 2020-06-05

Added

Changed

  • Changes from pymssql to SQLAlchemy for raw sql operations

  • Upgrades from hvac 0.2.17 -> 0.10.3

  • Upgrades from jinja2 2.10.3 -> 2.11.2

  • Upgrades from lxml 4.4.2 -> 4.5.1

  • Upgrades from pylint 2.1.1 -> 2.4.4

  • Upgrades from pymemcache 1.4.3 -> 3.2.0

  • Upgrades from pytest-asyncio 0.10.0 -> 0.12.0

  • Upgrades from pytest 5.4.1 -> 5.4.2

  • Upgrades from python-dateutil 2.7.5 -> 2.8.1

  • Upgrades from yapf 0.28.0 -> 0.30.0

v2.48.0 - 2020-06-04

Added

  • Adds AdminUserSetZone HqApi endpoint

  • Adds AdminUserSetZoneConfiguration HqApi endpoint

  • Adds GetAdminUserZoneList HqApi endpoint

  • Adds ProcessZoneAllOutstandingTransactionsByTransactionId HqApi endpoint

  • Adds ValidateToken HqApi endpoint

Fixed

  • Fixes an SSO runtime error if one of the extension’s DbConfigs is empty

Changed

  • Updated the messaging in the log on q2 run regarding frontend asset mapping

  • Cleaned up the asyncio info logs on q2 run startup

v2.47.0 - 2020-06-02

Added

  • Adds PushNotificationTargets DbObject for interacting with the Q2_PushTarget table

v2.46.0 - 2020-05-29

Added

  • q2 run now takes a -c or --asset-server flag to specify a frontend asset path override for local dev

  • /cache endpoint now allows for deletion of individual keys

Fixed

  • Server will no longer spew asyncio warnings if run from Windows Subsystem for Linux (WSL)

  • Fixes a bug with q2_ajax calls in server side rendered extensions that prevented it from working with HADE specific URLs in OnlineBanking

  • q2 check will no longer fail if HQ_URL/ABA environment variables are unset

  • SsoUserLogon object’s .get method now property takes in an sso_identifier rather than a user_logon_id

v2.45.1 - 2020-05-26

Fixed

  • Poorly formatted date_of_birth will no longer break instantiation of a DemographicInfo object, defaulting to None

v2.45.0 - 2020-05-21

Added

  • All handlers now have self.base_assets_url available for serving up Frontend assets through the CDN

  • At dev time, python’s asyncio DEBUG mode will be turned on, catching common errors such as unawaited coroutines and blocking code

  • q2 add_nav_node will now create space between two existing nav nodes if it doesn’t already exist

Fixed

  • Fixed a bug where /status /inspect /metrics and /browser_link were no longer being filtered out of logs

  • Fixed a bug where q2 install’s -e flag would sometimes interfere with other unrelated entrypoints’ CLI flags

  • Fixed a bug where the ‘Another server is running’ prompt at dev time would cause a stack trace

Changed

  • q2_requests.* methods will now only log additional log lines at q2 run time, not in other CLI commands

v2.44.0 - 2020-05-13

Added

  • Adds a ReverseLookup DbObject for interacting with the sdk_ReverseLookupKey table

Changed

  • /browser_link will now be filtered out of the logs

  • q2_request calls will now include timing of the response in all log levels

  • q2_request calls will now log the response headers if the call is unsuccessful

v2.43.0 - 2020-05-06

Added

  • Account class now has a provider_data attribute for arbitrary data that doesn’t fit into the model

  • Account class has from_json and to_json methods to serialize to and from JSON

  • Adds an autodetect_xml_encoding method to xml_helper module

  • Adds q2_sdk.models.cores.models.statement.Preference class

  • Adds q2_sdk.models.cores.models.statement.EstatementPreference class

  • q2_sdk.models.cores.queries.base_query.BaseQuery now has an objectify_xml_response helper method for cores that deal in XML

  • Adds a JinjaQuery class for building Core Query objects using a string substitution methodology

  • q2_sdk.model.demographic’s Phone, Address, DriverLicense, and DemographicInfo classes are now all JSON serializable

Fixed

  • Calling query or query_yn during a q2 run execution will now raise an exception instead of blocking and killing the server

  • Fixes a bug in online and sso uninstallers that would fail when invoked from another service (CDM)

  • Improves speed in live frontend asset rebuilding during local run

  • Fixes a bug with UUXPayload InstallStep that would not allow it be displayed in Deployment manager (CDM)

  • Fixes a bug with SSOUser model that now casts user_id and ssn as strings

v2.42.0 - 2020-05-01

Added

  • Server Side Rendered extensions now have Modal support. More details on frontend_development/modals docs page

Fixed

  • Fixed a bug in SSOUserLogon DbObject where it could get the HQ Version for the wrong HQ in a multitenant service

v2.41.0 - 2020-04-29

Added

  • Adds Zoned endpoints to HQ API

  • Adds Zone support into self.core calls. More details in Zones docs page

  • HqCredentials class now has a .is_zoned() method

  • Docker start_dev_machine scripts now allow passing through docker args with --run-args flag

  • q2 check now ensures wedge_address_configs property is not accidentally overwritten

  • VendorConfig DbObject now has a .get_all() method

Changed

  • q2 generate_hq_api no longer uses the cached wsdl, but downloads from the configured HQ_URL

Fixed

  • Improves built in logging on q2_requests methods, ensuring kwargs and positional args are logged equally

  • Fixes a bug with Hours DbObject which was asserting hour_type was an instance of TransactionType

v2.40.0 - 2020-04-23

Added

  • Requests now include request GUID along with final request time

  • q2 check will now verify HQ is not hardcoded in the settings file

  • Ardent installs will now put the author into the database (Q2 or Customer)

  • Adds a q2 db update_central_nav_node entrypoint

  • Server side rendered Tecton extensions now have live reload capability. Changes to python or template files will trigger browser page to reload.

  • Adds Q2SDK_DISABLE_BROWSER_LINK environment variable to disable live reload capability

Changed

  • /status endpoint no longer shows the timestamp of the request

Fixed

  • Server Side Rendered extensions correctly monitor for frontend file changes and rebuild

v2.39.0 - 2020-04-21

Added

  • Adds Hours DbObject for interaction with the Q2_Hours table

  • Adds Schema DbObject to determine if a DbSchema exists (useful for determining Db Version)

  • Adds a delete_central method to UiText DbObject to remove UiText from the Admin database schema

Fixed

  • CentralInstaller will now work on DbVersions that have backported Admin capabilities even if the HQ doesn’t support it

  • Fixed a dev time caching bug where INSTALLED_ENTRYPOINTS would continue to run after being removed from the list

  • Fixed a bug where Custom Entrypoints could not define a -e flag due to a collision with the q2 insight builtin command

  • Mac docker dev start script now uses builtin curl instead of not necessarily installed wget for updating itself

v2.38.1 - 2020-04-15

Fixed

  • https endpoint in run_server will now also respect X-Forwarded-For header

Added

  • Commits sdk_RemoveAdminTextAndElement into sql_scripts”

v2.38.0 - 2020-04-14

Added

  • FeatureGroupCustUser default UserProperty feature name is now configurable via DbPlan

  • Frontend tests are now run on q2 test via the package.json test target if present

  • Frontend linting is now run on q2 lint via the package.json lint target if present

  • Adds the sdk_SchemaExists stored proc for testing for admin and other schemas that differ between database versions

Fixed

  • Fix a bug where Central forms not installed into the nav were not uninstallable

  • Fixed a bug where self.form_info would not be instantiated if an override HQ was configured

v2.37.1 - 2020-04-09

Fixed

  • OnlineSession’s aba and hq_auth_token properties will now be properly set

  • q2 invalidate_hq_cache will now work the same on shared dev as the Q2 datacenter

  • Fixed a bug with q2 update_installed_form where extensions without a db_plan would fail to update

Added

  • Adds a Q2SDK_SERVE_ASSETS_HTTPS environment variable which will force HTTPS for use in shared dev Tecton extensions

v2.37.0 - 2020-04-07

Added

  • q2 invalidate_hq_cache now has a boatload more targets. Checkout the -h menu for more details

  • q2 upgrade now shows q2-marketplace package. Read new marketplace docs for more details

  • Videos are now present on online tutorial docs pages

  • DbPlan now has an account_rights_bit_flag property respected on install

  • Beta (Undocumented) release of Periodic Job support

Changed

  • q2 invalidate_hq_cache will now attempt to invalidate related HQs behind Fabio loadbalancer

  • Improved docs on Online widget rails

  • Newly generated Tecton SSR extensions will organize code into an index.js file

  • q2 create_entrypoint no longer has to designate an extension to which the entrypoint belongs

Fixed

  • UiText elements will now properly respect install order in DbPlan install

v2.36.0 - 2020-04-01

Added

  • Creates a q2 db update_central_form for CLI access to changing Central extensions in the db

Fixed

  • CLI entrypoints which produce colored output (i.e. q2 inspect) are now pipeable

  • DbPlan endpoint no longer fails with empty db_plans

  • Fixed a race condition in start_dev_machine scripts that could cause containers to hang around

  • Fix an edgecase with /inspect endpoint and Client Side Tecton forms in regards to formPostAuth

  • Fixes default path for language asset files in Client Side Tecton extensions

  • Builtin endpoints are now back in /inspect and q2 inspect

v2.35.1 - 2020-03-26

Added

  • RateLimiter object now has whitelist_networks and blacklist_networks properties for more flexible definitions

Deprecated

  • RateLimiter’s whitelist_regex has been deprecated in favor of whitelist_networks

  • RateLimiter’s blacklist_regex has been deprecated in favor of blacklist_networks

Security

  • All non-private incoming IP addresses will be blocked by default now unless self.allow_non_q2_traffic is set to True

Fixed

  • Version object will now match all types of version strings, including ‘2019.2’ style

  • Fixes an issue with SSO uninstall which could fail in some cases based on the state of the db

  • Fixes /dbplan uninstall behavior

v2.35.0 - 2020-03-20

Added

  • Adds a /dbplan endpoint for running DbPlan of an extension from a network call

  • Docker dev containers now open HMR port for front end asset hot reloading

  • It is now possible to override a customer_key at runtime by placing a key in the wedge_address table

Fixed

  • Fixed a bug where unescaped XML characters in SSO VENDOR_CONFIGS would break the extension at runtime

  • Tecton SSR extensions will now respect passed in routing_keys

  • Fixed a bug where new frontend asset monitoring with parcel would spawn multiple node processes

v2.34.4 - 2020-03-17

Fixed

  • Pass the tecton connected object through to the connected resolving functions

  • Exclude filtering out sso accounts

Added

  • Adding theme support for ui text

v2.34.3 - 2020-03-15

Fixed

  • New extensions of all types now generate a dev target in package.json

  • q2 run will prefer dev target in package.json, but fall back to build if dev is not present

v2.34.2 - 2020-03-13

Fixed

  • Improves local build time of frontend assets

  • Fixes an issue with this.base_assets_url not being available in tecton handler Jinja templates

  • -l LOGGING_LEVEL will now work with q2 install and q2 insight commands as well as all q2 db * commands

Removed

  • q2 remove_form has been removed (in favor of q2 uninstall)

  • q2 get_installed_forms has been removed (in favor of q2 get_installed)

  • q2 install_form has been removed (in favor of q2 install))

v2.34.1 - 2020-03-11

Fixed

  • Hq endpoints will no longer treat 0 and ‘’ as None

Added

  • Docker start_dev_machines scripts now update themselves on start

v2.34.0 - 2020-03-10

Added

  • CustomerData DbObject now has a .delete method

Changed

  • q2 update is now q2 changelog

Fixed

  • Fixed a bug with VPN detection for Q2 employees

  • Fixes a bug with Tecton form titles not accepting ‘ character

  • files requested from /assets will now correctly set a Cache-Control header in the datacenter

  • Fixes a bug with UserPropertyData.update that would also update the base row in addition to the one requested

  • SSO extensions will now work with CsrAssist (assuming the rights are enabled)

v2.33.0 - 2020-03-04

Added

  • Adds an /install endpoint to support running the db_plan of a running server’s extension

  • Creates an CustomerData DbObject with Create, Update, and Get operations

  • Adds q2 db get_customer_data

  • Adds q2 db add_customer_data (Also handles updates)

Fixed

  • Fixed a bug where a missing sdk_HealthCheck stored procedure in the database could kill the job running in the datacenter

  • Fixes a bug in the docker start_dev_machines scripts that wouldn’t mount directories with spaces in them

  • self.online_user now treats login_name, customer_name, first_name, middle_name, and last_name as strings to handle numbers (typically test data)

  • Fixes a bug where duplicate entries in INSTALLED_EXTENSIONS would try to load the same extension more than once

Changed

  • q2 inspect now displays the CSR creds

  • AccountList object’s product_code_filter now is a more descriptive product_type_code_filter

Deprecated

  • AccountList object’s product_code_filter will be deprecated in version 3.0

v2.32.0 - 2020-03-02

Added

  • Brings HqApi up to date with latest HQ capabilities:

    • q2_api

      • AddAchBatchByParamsWithSecCode

      • AddDomesticWire

      • AddInternationalWire

      • AddSingleAchpaymentWithSecCode

      • AdminUserSetUiAccess

      • GetAccountHistoryByAccountNumber

      • GetSubsidiariesForPayment

      • GetValidInternationalWireCurencies

      • RequestForeignExchangeQuote

    • wedge_online_banking

      • AcceptDisclaimer

      • AddAchBatchByParamsWithSecCode

      • AddDomesticWire

      • AddInternationalWire

      • CheckForDisclaimers

      • GetSubsidiariesForPayment

      • GetValidInternationalWireCurrencies

      • RequestForeignExchangeQuote

      • SkipDisclaimer

  • Docs on q2_cores

    • CorePro

    • EPL

    • JXchange

    • Metavante

    • MiserCohesion

    • OSI

    • PCS

    • SOA

    • Summit

    • Symitar

    • UltraData

    • Users

    • XP2

  • Adds DbConfigList/DbConfig to define database configuration objects.

  • /inspect/<extension_name> endpoint now accepts a ?detailed=1 param for serializing DbConfigLists. Without the new param, it’s backwards compatible.

  • AccountList

    • Adds an optional account_filter to AccountList objects to apply complex filtering logic on the items

    • Adds filtered_cifs property

    • Adds filtered_account_numbers property

    • Adds get_host_acct_id_list method

    • Adds filter_by_cif method

  • Adds .additional_details to DemographicInfo model for arbitrary extra data

Changed

  • New extensions will be generated with DbConfigList rather than WEDGE_ADDRESS_CONFIG/VENDOR_CONFIG dictionaries

  • ArdentHandler install message no longer lies about (wait 5 minutes). Encourages bounce_stack instead.

Fixed

  • Fixes a bug with Online Form install since 2.31.0 (Update Db Scripts)

v2.31.0 - 2020-02-25

Added

  • Adds q2 insight get_db_upgrade_versions cli entrypoint

  • Adds q2 insight upgrade_database cli entrypoint

  • Docs on frontend configuration (q2 frontend)

Fixed

  • Product DbObject’s add method will now work in 4.3 environments

  • SSO Uninstall will now also clean out VendorAddress table

  • Fix a bug with core.cli.textui.query_yn that would flip the response if the default was N

Changed

  • Add Nav Perms will now log UserPropertyData row added on success

  • Better NPM setup in docker dev image

  • Fuller requirements.txt support in docker dev image (-e, -r, relative pathing, etc.)

  • start_dev_machine.sh/ps1 files will now name the container after the project directory

v2.30.0 - 2020-02-21

Added

  • Creates an SSOUserLogon DbObject with CRUD operations

  • HqResponse objects now have a .server_date_time property

Changed

  • DbObject calls that throw database exceptions will now raise an HqResponseError rather than just a gross stack trace

v2.29.1 - 2020-02-14

Fixed

  • q2 generate_config will no longer break if the CORE in settings.py starts with q2_cores.

  • q2 db get_user_data_by_value no longer tries to cast value as an integer

  • Docker dev containers respect requirements.txt for better use with IDEs

  • Docker dev containers respect DNS for commands like q2 insight

Added

  • Adding a custom entrypoint to INSTALLED_ENTRYPOINTS in settings.py does not require it to have a corresponding urls.py

v2.29.0 - 2020-02-12

Added

  • Adds .get_users_under_customer to User DbObject

  • Adds .get_logons_from_user_id_list to UserLogon DbObject

  • Better type hinting on Form DbObject’s .get_by_name

Fixed

  • Better Windows support in our docker dev container regarding volume mounting and IP passthrough

  • Fixes another bug with UiTextElement installation in DbPlan

  • q2 run_db_plan will now correctly update send_account_list, send_account_details, and payload_stored_proc

  • Fixes an issue with SSO Installer’s DbPlan run

v2.28.1 - 2020-02-10

Fixed

  • q2 bounce_stack is now functional again in shared dev. Prefer Nomad UI for internal dev.

  • Fixed a bug that prevented UUXPayload and UiTextElement InstallSteps from running on q2 run_db_plan

  • Fixed a bug in q2 db update_form that prevented it from running in newer database builds

  • SSO installer will no longer throw a stack trace when running DbPlan

Changed

  • UserPropertyData DbObject’s .get now defaults to strict==True

v2.28.0 - 2020-02-03

Added

  • Adds Address DbObject

  • Adds q2 db get_address

  • Adds Subsidiary DbObject

  • Adds q2 db get_subsidiaries

  • Adds UUXPayload InstallStep to DbPlan as a way to inject top level JavaScript into the UUX environment. Use with caution!

  • Adds q2 db get_vendor_configs

Changed

  • q2 upgrade now prefers npm Tecton package in package.json over .tgz file

  • q2 db get_vendors now returns all vendors by default (rather than just SSO vendors)

  • q2 db get_vendors now returns new data (including NavNodeName)

  • self.online_user.customer_primary_cif is now a string (preserving leading 0s)

  • self.online_user.user_primary_cif is now a string (preserving leading 0s)

Fixed

  • self.hq_credentials.aba will now fall back to settings file version if not passed in HQ payload (such as with SSOs)

  • Vendor install_step is now idempotent

  • CentralHandlers wil now install correctly in HQs with alpha characters in the version (i.e. 1.1.1.1234A)

  • HQs identified as ‘localhost’ will no longer try to invalidate during q2 invalidate_hq_cache calls

  • q2 upgrade now handles Tecton upgrades in Q2TectonServerRequestHandler extensions

  • Fixes a bug where invalid HQ responses would show a stack trace when printed in a log message

v2.27.3 - 2020-01-21

Changed

  • lxml dependency updated to 4.4.2 (from 4.2.5)

  • VAULT_DIR and NOMAD_SECRETS_DIR set by default in shared dev (set to ~/vaultdir and ~/nomadsecrets)

  • IDE Setup docs updated to prefer /usr/local/bin/q2 instead of .env/bin/q2

Added

  • SSO Tutorial (SAML Style) added to documentation

  • Utility function q2_sdk.tools.utils.to_bool added for fuzzy boolean conversion

v2.27.2 - 2020-01-13

Added

  • Adds a q2 db remove_vendor_address

  • Account model now has .cif_external and .cif_external_unmasked properties

Fixed

  • More effectively handles port passthrough on docker dev machine

  • SSOHandler now correctly populates self.vendor_configs, self.online_session, self.online_user, and self.account_list in JSON requests from HQ

  • Serverside Tecton forms will now generate with more appropriate validation events on the q2-input elements

  • q2 add_to_nav will no longer raise an exception trying to invalidate the HQ cache

Changed

  • Further refines Refresh Related HQ in invalidate_hq_cache calls. Now defaults to False, preserving long standing usage in the SDK until this point

  • q2 invalidate_hq_cache now takes a refresh-related rather than a no-refresh-related flag

  • All SQL scripts have been updated to prefer THROW instead of RAISERROR for better SQL Server compatibility

v2.27.1 - 2020-01-09

Fixed

  • Fixes a bug with q2 create_extension which prevented Tecton type extensions from being selected

v2.27.0 - 2020-01-08

Added

  • Adds a new MessageBus RequestHandler (Beta - Interface is subject to change)

  • MessageBusHandlers currently support two types of busses, Kafka and Amazon SQS

  • MessageBus Handlers will be run at the start of q2 run along with the rest of the RequestHandlers, but poll for data, rather than listen on a port. More details in the Api Reference of the docs

  • Settings file now has a LOGGING_LEVEL filled with whatever was passed in on the command line (-l/–logging-level) for easy access from anywhere

  • UserPropertyData DbObject’s create and update methods now take product_name and product_type_name as a shortcut to looking up the corresponding ids

Changed

  • q2 create_extension is now more clear as to the types of extensions available

Fixed

  • Fixed a bug in the shared dev environment where q2 invalidate_hq (and q2 add_to_nav) would error out on a bad HQ URL in the database

  • Fixed a bug with q2 invalidate_hq in staging/prod environments with similar names not all being invalidated

v2.26.0 - 2020-01-06

Added

  • Adds a q2 vault entrypoint with a few helpers for testing secrets locally. Vault docs updated accordingly

Changed

  • self.online_user.login_name will now be populated with the underlying user’s login name in the event of a CSRAssist session

Fixed

  • Fixes a bug in the InstallStep of HostTranCode and ProductType when deployed by internal tooling

v2.25.1 - 2019-12-30

Fixed

  • Docker dev machine will now properly make frontend assets available

  • Language files are now properly used in Server Side Rendered Tecton forms

  • Local sources will no longer be expanded in place for SSR Tecton forms, saving network overhead

  • Invalidate Hq Cache calls will now rotate through all load balanced HQs in a ring

  • A hanging Vault Client will no longer cause the SDK service to restart in the datacenter

  • SDK built Tecton extensions are now available by default using the tecton.actions.navigateTo function

  • add_wedge_address stored proc will now apply appropriate HQAuthTokenID even if the primary key is not the standard (1)

  • q2 test will no longer discover tests in node_modules in nested subdirectories

Changed

  • HydraIdName has been added to the q2 db get_audit_records cli output

v2.25.0 - 2019-12-13

Added

  • Adds HostTranCode DbObject

  • Adds HostTranCode DbPlan Install Step

  • Adds HostTranCodeGroup DbObject

  • Adds HostTranCodeGroup DbPlan Install Step

  • Adds OfxTransactionType DbObject

  • Adds OfxTransactionType DbPlan Install Step

  • Add SystemPropertyData DbObject

  • Adds Product DbPlan Install Step

  • Adds ProductType DbPlan Install Step

  • Improves type hinting on Language DbObject .get return

Fixed

  • Fixes a bug where default InstallStep values could not be None

Changed

  • Greatly improved the performance of the UiText DbPlan install step

v2.24.2 - 2019-12-10

Fixed

  • Fixes bug with frontend configuration handling in some cases

v2.24.1 - 2019-12-09

Fixed

  • Fixes a bug with Q2SSO Handler where JSON input from HQ would throw an error

  • Fixed a bug where a DB Stored Proc update after a q2 upgrade would fail silently instead of reporting the issue to the user

  • Fixed a bug where EnvVar RequiredConfiguration types would not serialize properly on /inspect endpoint

v2.24.0 - 2019-12-02

Added

  • SDK Docker Dev machine (Q2 internal folks) will now run container-prebuild-hook.sh if it exists

  • q2 check will now identify requests.* calls as blocking, preferring q2_requests.* variants

  • Adds a UserLogon.delete method which will mark a user as deleted in the database

Fixed

  • WedgeOnlineBanking calls will now always use the reported_hq_url associated with the token rather than the possibly conflicting one in settings.py

  • Fixes bug which required the extension handler to be in a file called extension.py

v2.23.2 - 2019-11-21

Fixed

  • Updates the character limit of UiConfigPropertyData DbObject fields to more closely match the database limits

Added

  • Adds a Central Tutorial with example code

  • Improves Visual Studio Code setup docs

v2.23.1 - 2019-11-12

Fixed

  • SSO uninstall now has its own specific implementation rather than relying on the Online handler version

  • /inspect endpoint now correctly shows sso and ardent metainformation

v2.23.0 - 2019-11-05

Added

  • Install/Uninstall support for Central extensions using the CLI

  • Adds a q2 get_central_groups entrypoint

  • Documentation on Widgets

  • q2_sdk.core.configuration.EnvVar can now be used in REQUIRED_CONFIGURATIONS to specify an environment variable as config

  • Adds q2 frontend entrypoint to make working with the Tecton Configuration file less complicated

  • Adds MOCK_BRIDGE_CALLS variable into default settings (respects Q2SDK_MOCK_BRIDGE environment variable) to separate bridge mocking from just DEBUG mode

  • Better IDE documentation support for @ajax decorated methods

  • Better type hinting on DataFeed DbObject

  • q2 create_extension --type central will now generate working sample code

Changed

  • Getting logins with the UserLogon db object will filter out deleted logins

  • Better CLI parsing for uninstall function

  • Generate password now omits similar characters

  • self.form_fields is now available earlier in the handler’s lifecycle. It is now usable inside the init method

  • Upgrades jinja2 version from 2.10 to 2.10.3

Fixed

  • Tecton CSR form field parsing bug

  • Rate limiting issue with tecton client

  • Tecton double sumbit issue with index template

v2.22.2 - 2019-10-24

Fixed

  • String HADE types will now always be strings, even if lxml would consider them otherwise (01234)

Added

  • Ardent Handler’s .get_wedge_address_configs will now cache the return for 60 seconds

v2.22.1 - 2019-10-21

Changed

  • q2 create_coreflow has been reworked to split generated code into multiple files

  • q2 create_extension will no longer prompt for ‘Would you like to register?’. It just assumes the answer is yes

Added

  • q2 create_coreflow now supports adding new flows to an already generated Custom Core

  • q2 create_coreflow will now add a newly generated Custom Core to settings file

Fixed

  • Q2TectonForm will now validate that form_id is indeed able to be cast as an integer

  • Prometheus metrics tracking will now send only the baseurl for q2_request calls

v2.22.0 - 2019-10-17

Security

  • Decorates secure_message.broadcast_with_attachment with @dangerous

  • If you are using secure_message.broadcast_with_attachment, you will need to take action. More detail in the How to Get Help page of the docs.

Added

  • Adds @dangerous decorator for particularly powerful functions

  • SSOHandlers will now have their SSO BitFlag integrity checked during q2 check

  • Adds a build_get_group_id_xml function in api_helpers for use with GetGroupID HQ Endpoint

  • Better type hinting on GetGroupID HQ Response

Fixed

  • Fixed a bug where HQ Response bodies were not being logged since 2.20.0

  • Fixed a bug with Version model comparison where 1.89.0 was reporting greater than 2.0.0

  • Properly xml escapes wedge_address_configs stored in the database

v2.21.1 - 2019-10-10

Fixed

  • Fixes a bug with q2 update_installed_form which would not accept the account_right_bit_flag query answer

  • Fixes a bug where neglecting to create an init.py file in an extension directory would break q2 run

  • api_helpers secure_message_as_xml generation will now let HQ decide on the creation_time rather than doing it at the SDK level

Added

  • q2_sdk.models.version.Version model can now be compared using >,<,>=,<=,== comparators

  • Added docs on our CI/CD pipeline. Visible under Development Processes menu

Changed

  • Naming updates in user_logon for consistency. login_name/logon_name have been standardized to just logon_name

v2.21.0 - 2019-10-07

Added

  • Prometheus metrics support (https://prometheus.io/). This is enabled by default for several basic metrics around response times and request count

  • /metrics endpoint will expose all gathered Prometheus metrics (used by prometheus server running inside Q2 datacenter)

Fixed

  • Sandbox HQs identifying themselves incorrectly will now be usable again by SDK Q2Api calls

  • api_helpers.build_secure_message_xml now lets HQ choose the created time if it’s omitted

v2.20.1 - 2019-10-04

Fixed

  • Missed a CSS selector in the Q2SingleSignOn fix from version 2.20.0

v2.20.0 - 2019-10-03

Changed

  • clint has been removed as a dependency. The command line functionality is now baked into the SDK itself in q2_sdk.core.cli

  • pytest has been updated to version 5.1.3 (from 3.10.0)

  • pytest-asyncio has been updated to 0.10.0 (from 0.9.0)

  • Any command line handling has been rewritten to use the built-in CLI parsing over the deprecated Clint module. As cognizent as the team was about testing, please report any CLI weirdness for patching

  • Tecton type extensions will now reference npm version in the package.json rather than the tar path

  • api_helpers.build_secure_message_xml will now use HQ Server Time for creation is create_time is left blank

Added

  • colorama has been added as a third party dependency

  • It is now possible to disable default extensions. Use this with EXTREME CAUTION! More details in default_settings.py

  • Adds ability for the SDK to handle Tecton log pushes. This is rate limited to prevent DDoS attacks

  • Adds AccessCode DbObject

  • It is now possible to inject your own javascript into a Tecton SSR form via new parameters in the Q2TectonForm constructor as well as the get_tecton_form method

Fixed

  • self.form_fields will now properly work with Q2Tecton q2-select input values

  • Fixes a bug where large response sizes coming back from q2_request without a defined content-type could kill the server

  • Fixes a bug in get_installed which would stack trace if no data_feeds were installed in the database

  • Fixes a bug in Q2SingleSignOn Form that was not resizing the iframe on 4.4 versions of the Q2 UUX stack

v2.19.0 - 2019-09-24

Added

  • First class SSO support! There is now a Q2SSORequestHandler with its own installer and uninstaller

  • SSO Extention type added to q2 create_extension

  • Lots of documentation updates, ranging from better tutorial code samples to a top level Request Handler Types menu

  • Adds VendorAddress install step for DbPlan

  • Ajax functionality detailed in AJAX section of Advanced Features now available with Tecton Server Side Rendered extensions

  • All extension types now generate a frontend directory for serving frontend assets. Usage detailed in the generated READMEs

  • api_helpers.build_add_user_xml now has a DOB element if demo_info.dob exists

  • api_helpers.build_account_association_xml now adds a CifInternal node if link_by_cif is enabled

  • Better type hinting on AuditAction DbObject

  • Adds ActionID to AuditAction CLI response

  • Better type hinting on Vendor DbObject

  • Vendor DbObject CLI has been revamped for much more granular and helpful features

  • Adds the VendorAddress DbObject

  • WARNING Lots of SQL updates and additions. Be sure to run q2 setup_db when taking the version upgrade

Fixed

  • Fixes some bugs with our internal Docker image running on Windows hosts

  • q2 insight -h now accurately shows help for all subparser

Changed

  • api_helpers.build_add_user_xml now builds UserInfo from demo_info.user_info if it exists, rather than just demo_info.social_security_number

  • VendorConfig DbObject no longer passes in a config_name, relying entirely on the vendor_name to pull back information

v2.18.0 - 2019-09-17

Added

  • Adds better support for repository versioning

  • Inspect endpoint how shows repository version (including Unreleased if it’s not present)

  • Inspect CLI entrypoint now shows repository version

  • All extension types will now generate with a frontend directory. For usage instructions, check out the generated README files in frontend/README.txt

Fixed

  • Fixes a case in the password log filter where CSR_PWD json key would not be masked

  • Fixes a backwards incompatibility with ParamsObj classes in 2.17.0 that did not allow dot notation access to the attributes

Changed

  • q2 db get_users --social-security now strips out - non digits and matches against multiple forms in the database (333-22-1111 as well as 333221111 for instance)

v2.17.0 - 2019-09-10

Changed

  • All entrypoints will now act from the root of the repo regardless of where you invoke them from

  • Extra configurations warning now uses a logger instance rather than a print statement

  • All HQApi calls were rewritten to use a base model object. The usage remains the same from a user perspective

  • Updates yapf dependency version from 0.16.2 to 0.28.0

Added

  • All request handlers now have a self.base_assets_url property which will resolve to an appropriate frontend service url

  • q2 generate_hq_api now takes a --endpoint parameter to limit the generation type

  • Adds /assets endpoints to q2 inspect output

  • Adds /assets endpoints to /inspect endpoint

  • Better type hinting for Country DbObject return

  • Adds a **kwargs parameter on HqApi .execute methods. Used for future proofing, such as bt_handle=self.bt_handle for use with AppDynamics if appropriate

Fixed

  • Fixes syntax with Tecton’s Server Side Rendering keepalive

  • Fixes type hinting on HqApi return shapes. Now accurately hinted as lxml elements

v2.16.0 - 2019-09-04

Added

  • Adds a hidden inspect endpoint on each Tecton extension for better support with various UUX versions

  • Adds a proper Ardent uninstaller accessible with q2 uninstall

  • Adds early support for BackOffice endpoints, starting with LogonAdmin. These are accessible in the same way as the rest of the hq_api endpoints

  • All HqResponses will now have a .json() method, which will serialize the response as a dictionary

  • Tecton SSR forms will now fire a keepalive event periodically to keep the Q2Online session alive

Changed

  • q2 get_installed_forms is now q2 get_installed

  • q2 db get_data_feeds is now sorted by data_feed_id rather than name

  • HqResponses have changed their __repr__ method to display as a more readable dictionary when debugging

  • self.online_user.ssn will now automatically cleanse non-digit characters out of the value

Deprecated

  • q2 get_installed_forms has been deprecated in favor of q2 get_installed

Fixed

  • q2 uninstall will now detect the extension type rather than just assume everything is an Online form

  • Fixes a bug where importing the simplejson library would cause HQ calls to fail

v2.15.0 - 2019-08-28

Added

  • Q2BaseHandler now has an extension_name property which will resolve to the module name

  • self.get_template now automatically passes along the current instance state (self) into the “this” variable. i.e. It is now possible to reference {{this.form_fields}} in a jinja template

  • q2 run will now refresh Ardent cache at startup if there is a Tecton extension in your repo. This is to make the SDK play nice with more UUX environments out in the field.

  • /inspect endpoint will now show base_assets_url for Tecton extensions

Changed

  • q2 remove_form is now q2 uninstall

Deprecated

  • q2 remove_form has been deprecated in favor of q2 uninstall

Fixed

  • Fixed a bug where a newly created repo without a requirements.txt would not play nice with q2 CLI commands

v2.14.0 - 2019-08-21

Added

  • Added ArdentInstaller class

  • Helper method for creating a symconnect for mocking

Fixed

  • Serialize multiselect and checkboxes for SSR submit

v2.13.0 - 2019-08-14

Changed

  • q2 install_form is now q2 install

  • q2 create_extension will now put the new extension name at the end of INSTALLED_EXTENSIONS instead of the beginning

  • self.get_template replacements_dict is now optional, rather than requiring you to pass {}

Added

  • q2 install will automatically detect your extension type and run the installer for that particular type

  • It is now possible to pass parametes to routes. If args or kwargs are defined in the signature, the will automatically be pulled from self.form_fields

  • q2 invalidate_hq_cache now has an option for FormView

Deprecated

  • q2 install_form has been deprecated in favor of q2 install

v2.12.1 - 2019-08-09

Fixed

  • Significantly improves CPU usage while monitoring Frontend files for changes (default in q2 run when run without -a)

  • Fixes a bug where add_dependency would misbehave if a requirement had complex dependencies in its signature (i.e. add dependency requests[security])

Changed

  • Built in /inspect endpoint now displays extension_type in addition to existing information

v2.12.0 - 2019-08-06

Added

  • Q2HqRequestHandler now has a self.set_hq_commands method, which is a nicer interface for dealing with HqCommands objects for things like Refreshing Account balances during a user session

  • q2 upgrade will now show q2-smart as an option

  • q2_sdk.hq.api_helpers.build_add_user_logon_xml now takes a skiptac parameter. Defaults to False

  • Adds a q2_sdk.hq.models.backoffice_response.BackOfficeResponse class in preparation for building out more HQ BackOffice endpoint support

Fixed

  • Fixes a bug where LegacyRequestHandler.parse_form_fields was mistakenly using Central’s form field parsing rather than HQ’s version

  • Fixed a bug in q2 upgrade where an IP address was the last entry in the upgrade list

Changed

  • q2_sdk.hq.http.post_to_hq now takes in a response class, allowing overriding of the response shape handling. Defaults to HqResponse as before

  • q2_sdk.hq.models.hq_response.HqResponse now takes a requests.Response object as the first parameter rather than a raw_response string to allow passing metadata. Raw response strings will still work for backwards compatibility

  • Updates the SDK Proc Execution Audit Action to disable PolicyJudge requirements by default

v2.11.1 - 2019-07-30

Added

  • Provide tecton connected hook for setting initial values and triggering tecton functions

v2.11.0 - 2019-07-26

Added

  • Tecton inspect endpoints now respect following the CONFIG_FILE_NAME attribute in the handler

  • q2_sdk.hq.api_helpers now has a get_frequency_bit_flags endpoint for use with AddRecurring* modules in HqApi

Fixed

  • parse_form_fields in hq_handler now http escapes %5B%5D ( [] ) automatically

  • InvalidateHQ both from CLI and programmatically now defaults to NavNodes and UserPropertyDataElements instead of just NavNodes. This could cause Central to be unresponsive until an overnight bounce

Removed

  • TectonConfig table writes have been removed. Running services will now provide their frontend assets directly through a public facing CDN

v2.10.0 - 2019-07-24

Added

  • It is now possible to pass a form field from the frontend with [] in the name to treat it as a list in self.form_fields

  • Adds get_by_short_name method to UserData DbObject

  • Adds q2 db get_user_data_by_short_name CLI entrypoint

Fixed

  • Fixes a bug preventing VendorConfig installation using DbPlans

  • Fixes an IE11 ES6 related issue with buil in Q2Tecton template

Changed

  • Email DbObject will now raise an Exception if bad input is passed rather than killing the python process

  • Better type hinting on MessageTemplate DbObject return

  • Better type hinting on Product DbObject return

Removed

  • The incomplete back button support implementation in the q2_form template has been removed. If you were relying on this, please reach out and we can give you the source code to implement it yourself

v2.9.1 - 2019-07-17

Fixed

  • Fixes a bug with Q2BaseRequestHandler.get_ui_text where an empty string in the database would be returned as a None in python

  • Fixes a bug that would appear in new SDK repos where .antilles/entrypoints would never be created

Changed

  • If an installed extension does not inherit from Q2BaseRequestHandler, q2 check will error (as before), but will now give a helpful error message as opposed to a stack trace

v2.9.0 - 2019-07-15

Added

  • Add server-side rendering with Tecton

Fixed

  • Fix issue with back button

  • Fixes a bug with tab completion for inputs with no valid completions.

Changed

  • q2 bounce_hq is now q2 bounce_stack. This should not be needed for platform versions 4.4 and above.

  • Tutorial is now separated into legacy (pre-4.4) server side-rendering, post 4.4 server-side rendering, and client side.

  • Examples added for integrating Angular and React with client-side rendering.

v2.8.0 - 2019-07-11

Added

  • ArdentHandler based extensions will now generate a db_plan with data_feeds in it (to register it with Ardent on deploy). If you have an existing ArdentHandler extension, you will need to update your db_plan manually.

  • TectonHandler based extensions will now generate a package.json file with parcel to build the dist directory

  • TectonHandler based extensions will now generate a .babelrc file

  • q2 invalidate_hq_cache now has a host of new options (listed in the help)

Removed

  • q2 create_extension will no longer show LegacyRequestHandler as an option. Any code built referencing the LegecyRequesthandler will continue to work

Changed

  • OUTBOUND_WHITELIST error messages were rewritten to be more clear

  • q2 update_installed_form was refactored for greater testability

Fixed

  • Bugfix in Q2Vault class’s get_hq_creds function for cases where HQ_URL was not present in the stored vault value

  • Bugfix for q2 insight get_preferred_hq_list for cases where no HQs are returned

v2.7.1 - 2019-07-03

Changed

  • q2 run will now monitor for changes to typescript (.ts) files as well

  • Adds .lock and package-lock.json files to non-monitored Frontend files list

  • q2 create_extension with Tecton frontends will now put the q2-tecton-sdk reference in package.json rather than the index.html file

Added

  • q2 upgrade will now allow for updating of Tecton versions in frontend directories. Works with both package.json references and hardcoded html references

Fixed

  • Fixes a bug where a newly created repo would throw a NoRootError on any q2 command

  • Fixes a bug in api_helpers where primary_cif was referring to social_security_number. It will now prefer the primary_cif field if available, falling through to using SSN if it’s not

Removed

  • git_hooks will no longer be installed by default. This is now handled by our autodeploy CI process

v2.7.0 - 2019-06-27

Added

  • Adds a MessageTemplate DbObject for getting data from the q2_MessageTemplate* tables in the Q2 Database

  • Adds the USE_SLASH_FOR_INSTALL_PORT setting boolean for Tecton rerouting in the shared dev box. Should be set automatically

  • Adds an @mfa_validation_required decorator for TectonHandlers

Fixed

  • Fixed a bug where node_modules directories would be monitored for file changes when q2 run started

Changed

  • Generating a Tecton powered extension will now use the latest tecton version every time

v2.6.0 - 2019-06-18

Added

  • Adds q2 insight entrypoint with several subparsers for use inside the Q2 network

  • All InsightAPI calls are callable from Python and can be embedded inside extensions

  • Adds the self.central_user property to the Q2CentralRequestHandler class. Central extensions now have easy access to user attributes.

Changed

  • OUTBOUND_WHITELIST will now strip off protocol from whitelisted patterns (http/https). This was leading to confusion in several cases.

v2.5.0 - 2019-06-12

Added

  • Adds capability to Broadcast a secure message to a list of users with an optional attachment

  • Adds a SecureMessage DbObject

  • UserLogon DbObject’s get_login_by_name now takes an optional Admin boolean to change the type of user returned

  • UserLogon DbObject’s get_login_by_id now takes an optional Admin boolean to change the type of user returned

Changed

  • q2 db unlock_user now uses HQ’s ChangeEndUserPasswordStatus endpoint instead of relying on SDK bespoke logic

Fixed

  • Cleans up default generated Q2Tecton form html

  • Fixes a bug where a NOMAD_SECRETS directory might be present without a VAULT_TOKEN, leading to a breaking startup condition

v2.4.0 - 2019-06-05

Fixed

  • Fixes a bug introduced in 2.3.1 where VAULT_KEY was not defined in default_settings.py

  • Fixes a bug where non valid Form shortnames could make it into the database (with spaces)

  • Fixes a bug where Account.MaskedCifInternal could be interpretted as non-text

  • Fixed a bug where q2 create_coreflow would generate a non valid extension.py

Added

  • Adds Vault mocking (Docs under Advanced Features)

v2.3.1 - 2019-05-30

Fixed

  • Fixes a bug where a certain dev flow could cause the SDK package to be built without the HQ api included

v2.3.0 - 2019-05-30

Added

  • Adds initial support for SmartAPI integration

  • Adds a self.smart property to OnlineHandler

  • Adds a get_smart_token method to Vault object

  • Adds AccessCode DbObject for gathering EndUserAccessCodeTargets from our database

  • Adds command line helper for AccessCode q2 db get_access_code_targets

  • Better type hinting on GetEndUserAccessCodeTargets HQApi call

Changed

  • q2_request calls will now detect if they are being invoked from a testing suite and return mock responses rather than make real network calls if appropriate

Fixed

  • Fixes a bug with the /inspect endpoint which would not match extensions with - in the name

v2.2.0 - 2019-05-24

Added

  • CLI Tab completion is now more flexible in where the q2 binary is installed. No longer has to be in a virtualenvironment

  • Adds a new Email DbObject

Changed

  • DOCS Better documentation on setting up VSCode as your IDE

Fixed

  • Fixes bug with q2 add_to_nav which would fail to remove under some conditions

v2.1.4 - 2019-05-13

Changed

  • Updates help text on q2 get_installed_forms to be more clear

Fixed

  • Fixes a condition by which multiple frontend building processes could be started simultaneously

Added

  • Better type hinting on ObjectGroup DbObject

v2.1.3 - 2019-05-09

Fixed

  • Fix Caliper Deployment Manager internal function call

  • Fix bad reference error in q2 db add_nav_node that was missed with the 2.0 upgrade

  • Fixes template bug with BaseMapper in q2 create_coreflow

  • Better detect root of repo for cli tab completion

Changed

  • q2 test will no longer show deprecation warnings

v2.1.2 - 2019-05-02

Fixed

  • Fixes backwards incompatibilities with Windows since 2.0.0 release

  • Updates short_name property in sdk_UpdateUiText Stored Procedure to be consistent with DB length

v2.1.1 - 2019-05-01

Fixed

  • Fixes a bug where if q2 binary was installed at a system level it could cause zombie processes to accumulate, overwhelming the system process table

  • Fixes a bug where a custom form shortname could cause a bad URL endpoint when deployed into the Q2 datacenter

  • Fixes a bug where ‘Installed Extensions’ line would be shown twice during q2 run

v2.1.0 - 2019-04-26

Added

  • q2_sdk.hq.db.user_logon.UserLogon now has get_login_by_name, get_login_by_id, and get methods’

  • Adds q2 db get_user_logon cli entrypoint for quickly looking up user logons

Fixed

  • Fixes InstallSteps in the DbPlan for GtDataElement, ReportInfo, and UIConfigPropertyData

  • Fixes bug with q2 create_extension --minimum-only which would generate a non viable import path for the inherited Handler,

  • Fixes a bug with q2 db <entrypoint> calls which would serialize ‘’ database columns as a null character, confusing the terminal column output”

Changed

  • q2_sdk.hq.db.logon.LogonData now inherits from q2_sdk.hq.db.user_logon.UserLogon rather than having two classes with similar functionality

  • en-US.json file in Tecton frontend folders now starts out blank, inheriting from the default

Deprecated

  • q2_sdk.hq.db.logon.LogonData has been deprecated and will be removed in the future. Please move to using q2_sdk.hq.db.logon.user_logon.UserLogon directly

v2.0.0 - 2019-04-23

Added

  • Introduces Tecton: A robust offering for integrating frontend assets with your SDK extensions (Q2 Online >=4.4 currently)

  • New q2_sdk.core.http_handlers.Q2TectonOnlineRequestHandler handler

  • Introduces the OUTBOUND_WHITELIST variable in settings file. In debug mode, any q2_requests calls will fail if the domain is not whitelisted. This is to encourage frontloading the “please allow this through the Q2 firewall” networking step.

  • Adds TectonError exception type

  • Adds BlacklistedUrlError exception type

  • Adds RunServerError exception type

  • q2 install_form reworked to include Tecton questions

  • q2 remove_form reworked to include Tecton pieces

  • q2 run hosts frontend assets behind a static file server

  • q2 run introduces the —-no-build-assets flag, which disables building frontend assets automatically

  • q2 run will now prompt for killing an existing server on port if detected

  • Adds TectonConfig dbObject for working with Tecton information in the database

  • Adds UserPropertyDataRow type hinting completion class for UserPropertyData DbObject

  • Adds .cache and node_modules to generated .gitignore file

  • Extension name is prompted for in q2 create_extension if omitted

  • New q2_sdk.ui.forms.Q2TectonForm class for server side rendered forms with Tecton powered frontends

  • Adds get_list_by_name method to Product DbObject

  • Adds PhoneNumber DbObject

  • Adds q2 db get_phone_number entrypoint

  • Adds AJAX support into Q2Form powered OnlineHandlers. More docs In the AJAX Support page under Advanced Features

Changed

  • Tornado dependency changed from 5.1.1 to 6.02

  • VPN detection is now automatic and will no longer prompt

  • Moves q2_sdk.core.install_form.get_my_ip to q2_sdk.tools.utils.get_my_ip

  • Signature changes:

    • hq_credentials is now a required parameter for all HqApi WedgeOnlineBanking modules’ ParamObj objects

      • i.e. ActivateAuthToken.ParamsObj(logger, hq_credentials...

  • Renames:

    • q2_sdk.core.dynamic_imports.ExecuteStoredProcedure is now q2_sdk.core.dynamic_imports.api_ExecuteStoredProcedure

    • q2_sdk.hq.db.user_account_attribute.UserAccountAttributes is now UserAccountAttribute to more closely match the singular name pattern of other DbObjects

  • Import Path changes:

    • All HqApi modules are now fully qualified imports

      • i.e. from q2_sdk.hq.hq_api import q2_api; q2_api.ActivateAuthToken will no longer work. It must be from q2_sdk.hq.hq_api.q2_api import ActivateAuthToken

    • All DbObjects are now fully qualified imports

      • i.e. q2_sdk.hq.db.Customer is now q2_sdk.hq.db.customer.Customer

    • q2_sdk.core.http_handlers.* paths have changed:

      • Q2BaseRequestHandler is now base_handler.Q2BaseRequestHandler

      • Q2HqRequestHandler is now hq_handler.Q2HqRequestHandler

      • Q2ArdentRequestHandler is now ardent_handler.Q2ArdentRequestHandler

      • Q2CentralRequestHandler is now central_handler.Q2CentralRequestHandler

      • Q2OnlineRequestHandler is now online_handler.Q2OnlineRequestHandler

      • Q2LegacyRequestHandler is now legacy_handler.Q2LegacyRequestHandler

    • q2_sdk.hq.models.* paths have changed:

      • Account is now account.Account

      • AccountList is now account_list.AccountList

      • AccountRights is now account_rights.AccountRights

      • FormInfo is now form_info.FormInfo

      • HADE is now hade.HADE

      • HqCommands is now hq_commands.HqCommands

      • HqCredentials is now hq_credentials.HqCredentials

      • HqResponse is now hq_response.HqResponse

      • OnlineSession is now online_session.OnlineSession

      • OnlineUser is now online_user.OnlineUser

      • PasswordPolicy is now password_policy.PasswordPolicy

      • SecureMessageAttachment is now secure_message_attachment.SecureMessageAttachment

      • SecureMessengerType is now secure_message

      • find_with_default is now xml_helper.find_with_default

    • q2_sdk.models.* paths have changed:

      • account is now card

    • q2_sdk.models.cores.mappers.* paths have changed:

      • BaseMapper is now base_mapper.BaseMapper

      • BaseDemographicInfoMapper is now demographic_info.BaseDemographicInfoMapper

      • BaseCardListMapper is now card_list.BaseCardListMapper

      • BaseUpdateDemographicMapper is now update_demographic_info.BaseUpdateDemographicMapper

    • q2_sdk.models.cores.models.* paths have changed:

      • CoreUser is now core_user.CoreUser

      • CoreResponse is now responses.CoreResponse

    • q2_sdk.models.cores.queries.* paths have changed:

      • BaseQuery is now base_query.BaseQuery

      • BaseRestrictedQuery is now base_restricted_query.BaseRestrictedQuery

    • Install steps are now fully qualified imports

      • i.e. from q2_sdk.core.install_steps.DbPlan is now from q2_sdk.core.install_steps.db_plan import DbPlan

  • If UserPropertyData InstallStep in DbPlan matches more than one Product, it will not install for all matching products

  • Adds q2 ardent refresh_cache entrypoint for use with 4.4 stacks

  • Ardent RefreshCache will automatically be called on q2 add_to_nav if appropriate

Removed

  • Removes DISABLE_BROWSER_LINK flag in settings file

  • Removes USE_SCSS flag in settings file

  • q2 run removes the --disable-browser-link flag and capabilities to auto refresh frontend assets in a pre-Tecton manner

  • Removes BrowserLink built-in extension

  • Removes redirect_route and destination parameters from q2_sdk.ui.modals.ModalAction class in favor of external_route and internal_route

  • Removes q2_sdk.ui.script_appenders.BrowserLinkAppender class

Fixed

  • Faster entrypoint loading

  • Fixes a bug with hq_api changes not being tracked

  • q2 upgrade now matches alpha version string

  • q2 upgrade coloration in shared dev machine

  • q2_sdk.tools.utils.get_repo_root will no longer have the side effect of changing the working directory

  • Fixes a backwards incompatibility bug with sdk_AddApiStoredProc SQL Stored Procedure

  • Fixes a bug with HQ Api calls that took child parameters called ‘int’ and mistakenly serialized them as ‘integer’

v1.89.1 - 2019-04-17

Fixed

  • Fixes a startup bug with the recent get_certificate code under certain datacenter conditions

  • Fixes a bug with q2 add_ui_text command line entrypoint

v1.89.0 - 2019-04-16

Added

  • Adds GTDataElement DbObject and associated InstallStep

  • Adds q2_sdk.core.vault.get_certificate method for working with client certificates

  • Adds a q2 add_new_account entrypoint for working with account data from the CLI in dev

  • Adds q2 db get_gt_data_elements, q2 db add_gt_data_element, and q2 db remove_gt_data_element entrypoints

  • Adds q2 db get_host_account_elements entrypoint

  • Better type hinting on Prodct and User DbObjects

Fixed

  • Fixes a bug that prevented removal of navigation nodes in staging/prod environments

v1.88.1 - 2019-04-12

Added

  • q2 check will now ensure DEBUG=True has not been hardcoded in the settings file

v1.88.0 - 2019-04-09

Added

  • ApiStoredProc DbObject now takes an audit_action shortname

Fixed

  • Fixes styling issue with index.html template provided with q2 create_extension

  • Fixes a bug where certain production deployments of HQ were not compatible with WedgeOnlineBanking calls

v1.87.0 - 2019-04-02

Added

  • Adds MessageRecipientGroup DbObject

Fixed

  • Fixes import path in generated create_extension outputs

v1.86.0 - 2019-03-29

Changed

  • q2 create_extension will now generate jinja templates for index and submit pages rather than using q2_sdk.ui.fields variants

Added

  • q2 upgrade will now prompt for installing sql scripts after the upgrade completes. INFO This will only work if the version you are upgrading FROM is this one or later

v1.85.0 - 2019-03-27

Fixed

  • Fixes a bug where add_nav_perms would fuzzy match prefixes allowing for the wrong property to be updated

  • Fixes a bug where older db_versions could not be updated with q2 setup_db

Added

  • Adds an update method to the UiText dbObject

  • Adds a q2 db update_ui_text entrypoint

  • Adds a get method to the WedgeAddress DbObject

  • Adds a q2 db get_wedge_addresses entrypoint

  • Better type hinting on q2_sdk.hq.models.OnlineUser.demographic_info

Changed

  • WARNING SQL scripts have been updated. Please run q2 setup_db to ensure you are up to date

v1.84.0 - 2019-03-19

Added

  • Adds a q2 db reset_password which will reset a password for a given login name

  • q2 create_coreflow now takes a –core-name and a –operation parameter

Fixed

  • Fixes a bug with q2 check that would fail to test importability of CUSTOM_CORES

  • Fixes a bug with q2 check that would cause a failure if certain older versions of q2-cores were installed

  • Fixes a bug with q2 check which would cause a failure if ONLY CUSTOM_CORES were installed with no q2-cores

  • Fixes a bug with q2 test where node_modules wasn’t properly ignored

  • Fixes a bug with q2 generate_config which was not properly discovering Q2OnlineRequestHandler as the parent class

  • Fixes a bug with q2 generate_config which was not working proeprtly with CUSTOM_CORES

  • Fixes a bug with the DemographicInfo class which was not properly filtering out None items

Changed

  • q2 db create_online_user no longer preselects group 1

v1.83.0 - 2019-03-13

Fixed

  • Fixes a bug with ZSH tab completion if an entrypoint has a / in the description

Added

  • Adds a q2 create_online_user entrypoint for use in dev environments

  • q2 setup_db now differentiates between HQ versions and installs appropriate sql

  • q2 setup_db now has a --db-version flag to lock down instead of autodiscover db version

  • q2_sdk.hq.api_helpers now has a ``generate_user_logon_password` function which will create a random password

  • NavNode dbObject now takes in a route_parameters for 4.4 environments

  • Adds ConfigPropertyID and UiSource to UiConfigPropertyData dbObject cli output

  • UiConfigPropertyData now has a .update method

  • Created a hq.models.PasswordPolicy object for use with the generate_user_logon_password function

v1.82.2 - 2019-03-06

Added

  • Enables apispAddAccountAssociation stored procedure by default which is used for certain account linking workflows

Fixed

  • Fixed a bug in the clone_from_gitlab script on the shared dev box that caused newly cloned repos to fail running the q2 binary

v1.82.1 - 2019-03-04

Fixed

  • Fixes a bug where default port was not detected in q2 install_form

  • Fixes a bug where the Form’s form_name was used instead of short_name in the q2_wedge_address table

  • Fixes a bug where group_ids passed on the command line were not cast to integers appropriately for q2 install_form

v1.82.0 - 2019-03-01

Fixed

  • Fixes a bug where passwords were not always masked if embedded in a JSON blob

  • Fixed a bug where trying to install a form with 0 groups selected would raise an exception

Added

  • Adds a q2 invalidate_hq_cache entrypoint for >=4.4 stacks, facilitating live NavNode reloads without a full HQ bounce

  • Creates a WedgeAddress dbobject

  • Adds Type hinting on UiText dbobject return shapes

Changed

  • AddToNav will now use InvalidateCache if appropriate

  • q2 test will now ignore ‘node_modules’ directory if it exists in preparation for upcoming front end development focused release

  • Removes the sdk_InstallForm.sql file and splits it into more targetted sdk_AddWedgeAddress and sdk_AddForm

  • Warning Please run q2 setup_db to get the latest DB changes

  • q2 get_ui_text’s language parameter is now optional (--language)

  • q2 generate_hq_api will now generate an init file with relevant deprecation warnings inside

v1.81.0 - 2019-02-25

Changed

  • Splits Q2RequestHandler into several smaller handlers

  • Code is backwards compatible, though we will deprecate the use of Q2RequestHandler in the future and prefer the newer ones

  • Updates q2 check with knowledge of new RequestHandler types

  • q2 create_extension will now prompt for RequestHandler type, defaulting to the backwards compatible version

Added

  • Adds Q2HqRequestHandler

  • Adds Q2ArdentRequestHandler

  • Adds Q2CentralRequestHandler

  • Adds Q2OnlineRequestHandler

  • Adds a --minimum-only flag to q2 create_extension to remove unnecessary boilerplate

  • Adds a get_data_by_value method to UserData dbObject

v1.80.0 - 2019-02-13

Added

  • Adds File DbObject for interacting with the Q2_File table

  • q2 install_form now takes a -y or --accept-defaults flag to not prompt for db_configurations changes

  • User DbObject now has a set_profile_update_flag method and CLI command

  • Customer DbObject now has a get_logins_by_customer method and CLI command

  • DataFeed DbObject get method can now gather more details if a specific short name is provided

Changed

  • q2 install_form prompts for DbConfig Lists now default to False, meaning “Do not edit” easier user interaction flow

Fixed

  • Fixes a bug which broke Core imports in older versions of q2_cores

v1.79.1 - 2019-02-11

Changed

  • Updates for faster start times running q2 command and subcommands

Deprecated

  • from q2_sdk.hq.hq_api import q2_api; q2_api.ModuleName is now deprecated in favor of from q2_sdk.hq.hq_api.q2_api import ModuleName

v1.79.0 - 2019-02-07

Added

  • Adds UserData DbObject

  • AuditRecord DbObject now has a .create method for ease of use

  • Better type hinting on DbObject.hq_response property

  • Adds get_users_under_customer method to User DbObject

  • Adds update_by_id method to UserPropertyData DbObject

  • WARNING Please run q2 setup_db to install the latest stored procedures for new functionality

Changed

  • Q2SingleSignOn object now hides Q2’s built in submit button using CSS rather than javascript

v1.78.0 - 2019-02-05

Added

  • Adds Product DbObject

  • Adds ProductType DbObject

  • Adds support for Product and ProductType columns in UserPropertyData DbObject/install steps

v1.77.0 - 2019-01-29

Added

  • Updates HQ Api bindings to 4.4.0

Fixed

  • Fixes a bug with bash completion where user aliases could affect completion results

  • Fixes the name parameter mismatch in q2 db add_third_party_data_element

  • Fixes the name parameter mismatch in q2 db remove_third_party_data_element

Changed

  • ThirdPartyDataElement.delete will now remove all related ThirdPartyData rows first to avoid foreign key constraints

  • NOTE To take advantage of this, please run q2 setup_db to update your db scripts

v1.76.0 - 2019-01-24

Added

  • q2 create_extension now has a –register flag to auto register in the settings file

  • Adds a Customer DbObject

  • Adds the ability to search the User DbObject by SSN, PrimaryCif, or both

  • Adds the ability to search UserPropertyData DbObject by UserRoleID

  • Failures in Stored Procedure calls that didn’t technically fail at the HQ layer will now print the Sproc error message to the logs

Fixed

  • Fixes a bug with UserDemographicData not serializing correctly if there are emails

v1.75.1 - 2019-01-18

Added

  • q2 add_to_nav now takes a -f/–form-id parameter

Changed

  • q2 remove_form –form_id has become –form-id

  • q2 remove_form –short_name has become –short-name

Fixed

  • Fixed a bug preventing q2 update_installed_form -c from truly accepting a dictionary input

  • Fixes a bug where calling .text on a non-existent xml element in self.account_list would throw an error. Now returns ‘’ instead

  • Fixes a bug in q2_form that prevented forward UUX versions from accurately hiding the double submit button

  • Fixes a backwards incompatibility bug with putting q2_cores.CoreName in the settings file as CORE

v1.75.0 - 2019-01-15

Added

  • Adds User DbObject

  • Adds q2 db get_user entrypoint

  • WARNING Please run q2 setup_db to install the latest stored procedures for new User functionality

v1.74.0 - 2019-01-11

Added

  • Adds the State DbObject (q2_sdk.hq.db.state)

  • Adds the q2 add_dependency entrypoint for installation of of third party dependencies

  • q2 run_db_plan now takes a –file (or -f shortform) parameter to run using a seed file

  • Adds a .element attribute to q2_sdk.hq.models.HADE which will have the raw xml object pre parsed

Fixed

  • Fixed a bug where entrypoints ending with the letters p or y would not load correctly

  • Fixed a backwards incompatibility with CUSTOM_CORES. Upgrades from prior versions using the custom core idea will now have a clean upgrade path

v1.73.1 - 2019-01-07

Fixed

  • Fixes logging filter bug where a tuple message would cause a stack trace in the logs

  • Further cleans up incoming xml auto type discovery in regards to floats, strings, integers, and booleans

v1.73.0 - 2019-01-03

Added

  • Lists and dictionaries are now supported in the wedge address configs with command line install

Fixed

  • zero value floats and integers will no longer be evaluated to blank strings in account details and account data elements

v1.72.5 - 2018-12-19

Changed

  • HealthCheck is now more performant

Fixed

  • Don’t print extraneous nav perms warning when using from CDM

v1.72.4 - 2018-12-18

Changed

  • Moved Paden Rose to the Caliper Team section of the Authors

  • add_nav_node improvements in staging and prod deployer tool

  • performance improvements populating the hade_dict for accounts

v1.72.3 - 2018-12-17

Fixed

  • Fixes a BIG performance bug with logging filters

  • Fixes a bug with VaultInfo InstallStep when being called by /inspect

  • Performance improvements in Log Filtering RegEx expressions

  • Performance improvements in self.account_list object instantiation

Changed

  • WARNING self.logging_filters is now the LOGGING_FILTERS static attribute in the class handler

Added

  • DemographicInfo object emails will now filter out invalid emails (based on test@test.com) pattern

v1.72.2 - 2018-12-13

Fixed

  • Tweak vault info install step to work with the CDM

  • Fix backwards compatibility of deprecated kwargs in modal actions

Changed

  • Allow configurable vault prefix

v1.72.1 - 2018-12-12

Fixed

  • Fixes bug with /logging endpoint to more effectively run behind a load balancer

v1.72.0 - 2018-12-06

Added

  • Adds insight_features to db_plan to allow stored_procedures registered outside of the sdk to be installed as part of form installation

  • Adds VaultInfo InstallStep to seed Vault with key value pairs on form installation

  • Adds insight_features related checks in q2 check command

  • Adds better type hinting on GetAccountDetailsById Q2Api method

Fixed

  • Cleans up InstallStep discovery in install_form code

  • Fixes bug with Core registration in settings.py file

Changed

  • It is no longer necessary to reference q2_cores supplied Core objects as ‘q2_cores.Corename’ in settings.py. It is sufficient to say just ‘Corename’. Old versions will remain backwards compatible.

v1.71.0 - 2018-12-03

Added

  • Adds ApiStoredProc install step for use with DbPlan

Fixed

  • Fixes bug where null HQCredentials passed to a CoreMapper would raise an exception rather than using the Q2Api version of the call

v1.70.3 - 2018-11-30

Fixed

  • Fixes a bug with UserPropertyDataElement InstallSteps for automated deployment

v1.70.2 - 2018-11-28

Fixed

  • Fixes a bug with HQResponse object where Error responses without a description were coming back as success

v1.70.1 - 2018-11-28

Fixed

  • Fixes bug with q2 check where certain failures would not result in a non-zero exit code (for git hook integration)

Added

  • Splits BaseMapper.execute into _run_queries and ``_parse_responses` to allow for more specific overrides

v1.70.0 - 2018-11-27

Added

  • SendAccountList, SendAccountDetails, and WedgePayloadStoredProc are now supported in q2 get_installed_forms -f <id> and q2 get_installed_forms -e <name> commands

  • SendAccountList, SendAccountDetails, and WedgePayloadStoredProc are now supported in DbPlan, which will flow through to q2 update_installed_form and q2 install_form commands

  • Adds Uninstall ability for ThirdPartyDataElement DbObject

  • Adds Uninstall ability for UiConfigPropertyData DbObject

  • Adds Uninstall ability for UserAccountAttribute DbObject

Removed

  • Removed PfmClassification DbObject

  • Removed PfmProduct DbObject

Changed

  • WARNING UpdateInstalledForm, GetInstalledForms, and InstallForm sql has changed. Please run q2 setup_db to seed the database with the latest stored procs

v1.69.6 - 2018-11-20

Fixed

  • Ensures optional_db_configs are in /inspect endpoint

v1.69.5 - 2018-11-19

Fixed

  • Fixed a bug with wedgeOnlineBanking API calls that referenced a non-existent variable

v1.69.4 - 2018-11-16

Added

  • Adds type hinting on GetAccountListByExternalCif HqApi call

  • Auto cleanses q2_sdk.models.demographic.DriverLicense input

Fixed

  • Custom Created Dynamic Cores will now display in q2 install_form and q2 update_installed_form entrypoints

  • Custom Created Dynamic Cores will now display at /inspect/extension_name endpoint

v1.69.3 - 2018-11-14

Fixed

  • Fixes DbObject calls after last release

v1.69.2 - 2018-11-14

Fixed

  • Fixes bug with VerifyMicroDeposit HQAPI call

Changed

  • Introduces a .execute method on all HqAPI methods that will call either .get_soap or .get_json for you. This is just for convenience to keep the interface consistent.

v1.69.1 - 2018-11-09

Fixed

  • Autodiscovers new VPN octet in Q2’s network

  • Auto cleanses SSN input in q2_sdk.models.demographic.DemographicInfo class

Added

  • Adds OPTIONAL_WEDGE_ADDRESS_CONFIGS to address a situation where stale database configurations could break extension upgrades

v1.69.0 - 2018-11-08

Added

  • q2 test now has a --coverage option that will show testing code coverage

  • A failed core response mapping will now show the raw core response in an ERROR level log

Changed

  • q2 setup will no longer prompt for ABA. This is now handled on the Q2 side at deployment configuration time

Security

  • Updates mistune, pytest, pytest-asyncio, and python-dateutil packages to the latest versions

v1.68.0 - 2018-11-02

Added

  • Adds NotificationType DbObject

Fixed

  • Fixes bug with CLI tab completion if called from a non root directory of the repo

  • Fixes bug where NULL HqAuthTokenTypeID in the database installation would cause the online_form response to fail

Changed

  • Changes signature of q2_sdk.ui.modals.ModalAction. redirect_route is now called external_route. destination is now called internal_route. If you previously used keyword parameters, this is backwards compatible. If you w Previous keywords are deprecated but still available

v1.67.1 - 2018-10-31

Security

Changed

  • Updates minimum tornado version to 5.1.0

v1.67.0 - 2018-10-29

Added

  • Upgrades to Python 3.7 base

  • Adds a /logging endpoint via which you can temporarily change the LogLevel of your running service

Changed

  • WARNING Clients in the Shared Dev cloud machine must update to this version by running the command upgrade_to_python3.7 in their shell

v1.66.2 - 2018-10-26

Added

  • Introduces a self._account_model_proxy property on Q2RequestHandler class to allow overriding of the Account Model for specific FIs

v1.66.1 - 2018-10-25

Security

  • Built in Password filter better handles JSON objects with password string in them

Fixed

  • Ensures several fields on Account model are strings (aba, acct_desc, acct_label, acct_number_internal, acct_number_internal_unmasked, acct_number_external_unmasked, cif, cif_internal, cif_internal_unmasked)

v1.66.0 - 2018-10-23

Added

  • Added support for use and compilation of SCSS files

v1.65.0 - 2018-10-16

Added

  • Adds disclaimer_id_to_skip parameter to HqCommands to support Disclaimer postpone

v1.64.2 - 2018-10-15

Changed

  • Updates default event loop such that up to 128 max connections can be made to external services (rather than 5 * CPU cores as default)

Fixed

  • Handles a situation where OnlineUser SSNs starting with 0 were not appropriately masked

  • Fixes a regression in sdk_InstallForm that set URL to 100 characters instead of 256

v1.64.1 - 2018-10-12

Fixed

  • Fixed a condition where a missing .style.yapf file could cause errors on q2 create_extension call

  • Fixed a communication bug with HQ calls that use Enum type variables

  • Above fixes ClientStartup, CreateAlertByHadeCurrencyNotification, CreateAlertByOnlineActivity, CreateAlertByPostedTransaction, SendNotification3, SendNotification3WithHtml, SendNotification4, SendNotification4WithHtml, SetLoggingLevel, and UpdateReportRun endpoints

v1.64.0 - 2018-10-09

Added

  • Adds –output (-o) flag to q2 generate_hq_api to override the default output directory

  • Adds -e flag to q2 run_sql command for consistency across other CLI entrypoints

  • Adds self.ssn attribute to q2_sdk.models.account.Card class

  • Adds uninstall capability to the AuditAction InstallStep (for use in dev only)

Fixed

  • Correctly handles boolean HqAPI Parameter Object types

v1.63.1 - 2018-10-09

Fixed

  • Log an error if settings.CORE is unimportable rather than failing silently on q2 run

  • Fixed a bug that prevented WedgeOnlineBanking calls from reusing the existing HQ and Token passed in on the request

  • Will now only rotate HQ creds if the last failure one tried is in the list of options stored in settings.HQ_CREDENTIALS (Does not affect requerying Vault for updated creds in the event of failure)

  • Fixes a bug where exceptions from the Core were not being reported as error_messages in HqResponse objects

v1.63.0 - 2018-10-04

Fixed

  • Adds a Global PasswordFilter to mask CsrPwd and UserPassword nodes in the logs

  • Fixes a bug where missing initial HQ credentials under some conditions not refresh from subsequent vault calls

Changed

  • Disclaimer DbObject, InstallStep, and SQL has been completely rewritten. This now takes less parameters, handles more cases, and type hints more effectively

  • self.aba, self.hq_url, and self.hq_auth_token are now removed, refer instead to self.hq_credentials.aba, hq_url, and auth_token variants

Added

  • Adds Disclaimer.get_disclaimer_form_data method for associating DisclaimerFormDataIDs with Disclaimer runtime calls

v1.62.0 - 2018-10-03

Added

  • Added gitattributes file to handle line ending mismatches between linux and windows

Fixed

  • Ignore /inspect calls in logs

  • Allow https form urls

  • Handle empty hq urls with rotating hq feature

v1.61.1 - 2018-10-02

Fixed

  • Fixes a bug where html tags were being cleaned off of central reports in error

  • Fixes a bug where upgrading q2-cores would also upgrade q2-sdk

v1.61.0 - 2018-10-01

Deprecated

  • settings.ABA/CSR_USER/CSR_PWD/HQ_URL have been deprecated in favor of settings.HQ_CREDENTIALS object with the same properties

Fixed

  • Fixed a bug that would prefer ABA as VAULT_KEY over a provided VAULT_KEY environment variable if both were present

  • Fixes a bug where rotating vault token from NOMAD was not being respected

  • Fixed a bug where forms installed without a custom_name could cause q2 get_installed_forms to raise an exception

Changed

  • settings.VAULT_CLIENT no longer the source of truth for if vault is used for a given service. Now self.USE_VAULT_FOR_CREDS is used

  • q2_sdk.core.vault:get_client() will now give a fresh vault client each time (Used to reuse existing connection)

  • Updates all built in HqApi classes to use settings.HQ_CREDENTIALS instead of individual HQ_URL/CSR_USER/etc properties

Added

  • Adds ability for HQ_URL to be defined as a comma delimited list, either as an ENV variable, or in VAULT

  • Updates q2_sdk.hq.models.HqCredentials to support multiple HQs (hq_url_list property), and rotation logic between them

  • Adds logic for rotating through provided HQ connections when an HQ begins throwing an error

  • Adds hq_list information to both inspect endpoint (/inspect) and entrypoint q2 inspect

  • Adds a default logger for DbObjects

v1.60.1 - 2018-09-25

Fixed

  • Fixes bug with q2 db update_nav_node which made unrunnable

  • Fixes a bug with toggleable command line list selection after the first page (such as group selection on install_form)

v1.60.0 - 2018-09-24

Added

  • Q2RequestHandler will now automatically detect and parse Central Form PostData and RoutingKeys

Changed

  • Cleans up logic for valid version detection in q2 check entrypoint

  • Non responsive cache endpoints will now log errors to the server log

Fixed

  • Fixes a bug where a non responsive cache endpoint could kill an entire request

v1.59.1 - 2018-09-12

Fixed

  • Fixed a bug where self.cache.incr and self.cache.decr would throw errors

Added

  • /inspect endpoint will now display settings.DEBUG value

v1.59.0 - 2018-09-06

Security

  • Greatly refactored all the sql stored procedures behind the scenes

  • Added audit actions on all stored procedures

  • Added Error logging for all stored procedures

Changed

  • UserPropertyData rows now default to NULL UiSource rather than OnlineBanking

v1.58.0 - 2018-08-30

Fixed

  • Fixes a bug where certain q2_request errors would cause AppDynamics business_transactions to be closed twice

  • Fixes a bug with any HqAPI calls that took an xml_payload input.

  • WARNING If you are using any existing versions of this call (SendSecureMessageAsXml, AddCustomer, AddUser, AddUserLogon) you should update to using q2_sdk.hq.hq_api.q2_api version

Added

  • q2 add_nav_perms now has a –form-id (-f) and a –short-name (-e) flag for ease of use

  • Header generated as part of form.Q2Form now has an html id (q2-form-header)

Changed

  • Add UserPropertyData now defaults to NULL instead of OnlineBanking

  • Install Form URL field now handles URLs up to 256 characters (up from 100)

  • sdk_UnlinkAccount stored procedure is now only available in dev

v1.57.0 - 2018-08-27

Added

  • DataFeed InstallStep now has an uninstall feature which will be run on q2 run_db_plan --reverse

  • Vendor InstallStep now has an uninstall feature which will be run on q2 run_db_plan --reverse

Changed

  • TaxIDFilter is now on by default, which will log Social Security Numbers and TaxIDs as xxx-xx-1234

Fixed

  • Fixed a bug where Modals with newlines in their messages would cause an exception

v1.56.3 - 2018-08-22

Fixed

  • Fixes a missed reference to AdapterPassThru in core base_query.execute

v1.56.2 - 2018-08-22

Fixed

  • Fixes a bug where dev only stored procedures were not installed with q2 setup_db

v1.56.1 - 2018-08-14

Fixed

  • Fixed a bug where the builtin hq_api bindings would not be pulled down with the source distribution

v1.56.0 - 2018-08-13

Fixed

  • Better handling of Nested objects in generated HqAPI methods

  • Fixed a circular import regarding the RecursiveEncoder object

  • Fixed a circular import with the UniqueStack object

Changed

  • A generic form of the HqAPI bindings now live with the SDK module. Accessible via q2_sdk.hq.hq_api

  • As per the above, it is no longer necessary to run q2 generate_hq_api to get access to the HqAPI python bindings

  • q2 generate_hq_api will no longer write to an hq_api directory in the current directory, but rather hq_api_overrides. This was done for backwards compatibility

  • All builtin entrypoints (q2 install_form, q2 db get_groups, etc) now use the generic HqAPI python bindings

Added

  • HqAPI bindings now have better type hinting. In the instance of ExecuteStoredProcedure for instance, a SqlParam’s DataType is now an enum accessible via ExecuteStoredProcedure.DataType.{VarChar,Int,Bit} etc

v1.55.4 - 2018-08-13

Fixed

  • Fixes a bug with q2 update_installed_form to handle dynamic core configurations

Security

  • Moves potentially destructive SQL Stored procs into a dev_only subfolder so they will not accidentally be seeded into a production database

v1.55.3 - 2018-08-07

Fixed

  • Fixes a bug where an OnlineUser’s zipcode would lose leading zeros

v1.55.2 - 2018-08-06

Fixed

  • Fixes a problem with backwards incompatibility in the UserPropertyDataElement DbObject

v1.55.1 - 2018-08-02

Fixed

  • Fixes AppD remote service call details

v1.55.0 - 2018-08-01

Added

  • Adds CreditCardFilter to built in logging filters

  • Adds bt_handle parameter in call_hq to allow AppDynamics tracking in HQ calls

v1.54.1 - 2018-07-31

Fixed

  • self.get_ui_text will now correctly discover the current HQ token if applicable

v1.54.0 - 2018-07-25

Added

  • Adds the concept of OPTIONAL_CONFIGURATIONS alongside REQUIRED_CONFIGURATIONS. These will behave in the same manner, but will not stop the webserver from starting if omitted

Changed

  • Updates q2 install_form to prompt for OPTIONAL_CONFIGURATIONS if appropriate

  • Updates q2 update_installed_form to prompt for OPTIONAL_CONFIGURATIONS if appropriate

  • Updates ```q2 generate_config`` to prompt for OPTIONAL_CONFIGURATIONS if appropriate

v1.53.1 - 2018-07-23

Fixed

  • Fixed a bug where an empty WedgePathName in the database would cause subsequent Install Form calls to fail

v1.53.0 - 2018-07-19

Added

  • UserDemographicData DbObject now has a .get method

v1.52.7 - 2018-07-18

Fixed

  • Fixed a bug where an empty form_field could result in broken xml

  • Fixed q2 upgrade entrypoint on Windows

v1.52.6 - 2018-07-16

Fixed

  • Fixes a bug where Windows would not detect ip with q2 update_installed_form --my-ip in some cases

Added

  • q2 db get_nav_nodes now returns FormID if applicable

v1.52.5 - 2018-07-13

Fixed

  • Add to nav perms now sets source id correctly

v1.52.4 - 2018-07-11

Fixed

  • Fixes a bug where a navigation node installed without a UiSource was unable to be removed

v1.52.3 - 2018-07-09

Fixed

  • Fixed a bug where calling q2 without parameters would result in an error

v1.52.2 - 2018-07-06

Fixed

  • Fixed a bug with the command line interface not taking parameters for anything except q2 test

v1.52.1 - 2018-07-06

Fixed

  • Fixes a circular import (under some conditions) in q2_sdk.core.__init__.py

Added

  • q2 test now takes arbitrary parameters. Any params not handled by the SDK will be passed through to pytest

v1.52.0 - 2018-07-06

Added

  • Togglable Menu items (such as selecting groups) now support ‘a’ and ‘b’ for all and none respectively

  • Adds ReportInfo DbObject with Add, Create, Update, and Delete functionality

Fixed

  • Fixes a bug with the builtin TaxIDFilter where dict types in logs would raise an exception

  • Fixed a bug with q2 setup_db --print where SQL scripts without newlines at the end would generate syntacticaly incorrect SQL

v1.51.1 - 2018-07-05

Fixed

  • Fixes a bug where an outside service could not call the add_to_nav function

Added

  • Adds a --strict flag to q2 db get_user_property_data for backwards compatibility. Leaving this off will show properties for all users

  • Adds clearModal as a builtin function to the Q2Form template

  • Adds IDE completion information for the GetAlertTypeDetailIDs Hq call

Changed

  • Correctly sets --category as an optional parameter for q2 db add_user_property_data_element

v1.51.0 - 2018-07-02

Added

  • Modals can now have up to three custom action buttons, up from a max of 1. The keyword argument “modal_actions” now accepts a list of ModalAction objects.

  • Added audit record as a DB object

  • Add CLI management for new audit record DB object

Fixed

  • Correct issue causing custom extension filters to not function as intended

v1.50.0 - 2018-06-28

Added

  • q2 run_db_plan now has a -y option to accept all defaults

  • Created UserPropertyDataElements InstallStep

  • Built UserPropertyData and UserPropertyDataElements InstallStep uninstall functionality for local dev

Changed

  • UserPropertyData and UserPropertyDataElements DB Objects were given an overhaul for more flexibility

  • UserPropertyData and UserPropertyDataElements sql scripts were rewritten

v1.49.3 - 2018-06-27

Fixed

  • Fixes non-link-by-cif functionality of q2 db add_linked_account

  • Fixes bug with q2 db update_nav_node implementation which could lead to “duplicate node” errors in the db

  • Fixed javascript error that would be logged to the console regarding inputmask on a nonexistent phone field

Changed

  • Defaults self.use_style_fixes to False until more conditions are tested. This was causing double submit buttons to appear in some environments

Removed

  • q2 get_nav_nodes is removed in favor of q2 db get_nav_nodes

Added

  • Adds command line flags to q2 db get_nav_nodes, q2 db remove_nav_node, and q2 db update_nav_node

v1.49.2 - 2018-06-21

Fixed

  • Fixed a bug with q2 check introduced in 1.49.0

v1.49.1 - 2018-06-21

Fixed

  • Fixes an edgecase where classes with overridden call methods could not be used as routes

v1.49.0 - 2018-06-20

Added

  • ModalAction: Added support for redirection to an internal extension route via the keyword argument “destination”.

  • Improvements to nav node DB tools

Removed

  • Removed an assertion preventing a routing_key from being set on Q2Form when hide_submit_button is True

v1.48.1 - 2018-06-12

Fixed

  • Fixes a condition where a malconfigured dynamic core configuration breaks the error logging

v1.48.0 - 2018-06-12

Added

  • If Certificate and Key paths are provided in settings, will also run server over https

  • If VERIFY_HQ_CERT is set to False in settings, will ignore certificate errors for HQ communication

  • Can now skip the allow_default_settings check in q2 run using either the -d or –allow-default-settings flags

v1.47.0 - 2018-06-08

Added

  • Routing framework now handles non async methods

  • q2 db update_nav_node now also handles Route type nodes (This can be used to create parent menu items)

Fixed

  • Fixed a bug with q2 db update_nav_node updating non DirectLink type nodes

v1.46.2 - 2018-06-07

Changed

  • Clearer issue resolution message when creating_coreflow

Added

  • Warning message now appears if running q2 run from a location other than the root of the repo

v1.46.1 - 2018-06-06

Fixed

  • Fixes reordering of nav nodes query with q2 db update_nav_node

  • Fixes bug with leaving a SelectMenu prompt blank while using a default value

  • Fixes a bug with using q2 upgrade to change q2-cores versions on the shared dev environment

v1.46.0 - 2018-06-04

Added

  • Creates the CoreUser model for instantiating Core models. This is a combination of self.online_user and self.account_list

Fixed

  • Core configurations can now accept complex data types (list, int, float) rather than just str

Deprecated

  • If q2-sdk is updated without updating q2-cores, will throw a deprecation warning when self.core is called prompting update

v1.45.2 - 2018-06-01

Fixed

  • Adds self.return_as_html on q2_sdk.core.web.Q2RequestHandler in the event a handler wants to turn off that functionality

v1.45.1 - 2018-05-30

Fixed

  • Fixes a bug where an empty NavigationNode.Order would cause get_nav_nodes to throw a stack trace

  • Fixes a bug where the /cache endpoint would fail to load if running behind a load balancer

Changed

  • q2_request calls will now log the URL on error in addition to the response

  • self.get_template will now only log what directories it is searching if it fails to find the template

v1.45.0 - 2018-05-25

Added

  • q2_sdk.core.cli.cli_tools.MenuOption now has functionality for toggling style menus

  • Creates FormToGroup dbObject

  • Adds q2 db get_form_to_group, q2 db add_form_to_group, q2 db remove_form_from_group commands

Changed

  • q2 update_installed_form now prompts for group membership

Fixed

  • Fixed a bug where the /cache endpoint’s materialize.css file would sometimes not make it into the built package

  • Fixed a bug with production server cookie generation

v1.44.8 - 2018-05-22

Fixed

  • Fixed another Byte Order Mark use case for html local asset loading

v1.44.7 - 2018-05-21

Fixed

  • Fixed a bug where looking up a vault key by a deprecated name would cause the service to not start

Added

  • q2 check will now search for usages of self.WEDGE_ADDRESS_CONFIGS where self.wedge_address_configs should be used instead

  • ``q2_sdk.models.demographic.Phone.build_from_str will now autodetect extensions”

v1.44.6 - 2018-05-17

Fixed

  • Apply SSO form styles to non theme-q2 themes

Added

  • Persist cookie through server reloads for faster development

v1.44.5 - 2018-05-15

Added

  • Added a ‘use_viewport-height’ keyword argument to Q2SingleSignOn form that will stretch the SSO content area to the height of the browser window (desktop only).

  • Add “db unlock_user” command to the CLI

Fixed

  • Phone style fixes for SSO form

v1.44.4 - 2018-05-14

Fixed

  • Removes Byte Order Mark from locally expanded template files

v1.44.3 - 2018-05-09

Fixed

  • Reverted get_template always returning bytestrings. Caused too many backwards incompatibilities

v1.44.2 - 2018-05-09

Fixed

  • Fixes encoding issue which caused Q2Forms to stack trace on return

  • Fixes encoding issue which caused Central Forms to stack trace on return

Changed

  • q2 remove_form no longer bounces HQ

v1.44.1 - 2018-05-09

Fixed

  • Fixed bug where certain builtin jinja templates didn’t make it into the package

Added

  • Now correctly handles post requests from Central for Reports

v1.44.0 - 2018-05-08

Added

  • Adds support for locally referenced JS and CSS files. Write your html as you usually would, referencing a filename in the templates folder, and it will be replaced inline

  • Adds ?format=json to /inspect endpoint

Changed

  • self.get_template will now always return bytes instead of a raw str

Fixed

  • Fixes Q2SSO whitespace issue with floating headers at top of phones

v1.43.0 - 2018-05-03

Added

  • Makes a new /cache endpoint which allows for deletion of recently queried cache keys from memcache

Fixed

  • Fixed a bug with editable prompt count incrementing during db_plan installation

v1.42.0 - 2018-05-02

Added

  • Adds ability to navigate from one OnlineForm to another using q2_sdk.ui.fields.FormLink

  • Adds q2_sdk.hq.db.Group object with get/create/delete available both through python code and the cli (q2 db get_groups)

Deprecated

  • Deprecates q2 get_groups entrypoint in favor of q2 db get_groups

v1.41.0 - 2018-05-01

Added

  • Adds initial hooks for AppDynamics integration

v1.40.1 - 2018-05-01

Fixed

  • Inspect endpoint now shows ui_text_prefix info

  • Fixed a bug with deploying db_plans with an internal web interface

  • Cleans endpoint.asmx off of HQ_URL if it exists

  • Cleans up VAULT interaction to allow for specifying a key other than ABA

v1.40.0 - 2018-04-26

Changed

  • q2_sdk.core.vault will now handle both HQ_URL and URL keys in Vault equally

Added

  • UiText is now installed with a prefix listed in DbPlan

  • UiText now has multi language support

  • Relevant UiText for an extension is available from a RequestHandler with await self.get_ui_text()

v1.39.0 - 2018-04-24

Changed

  • Refactored the entire db changes during install portion

  • DbPlan objects consist of one or more InstallSteps, which are populated with InstallStepAttributes. More information in the Advanced Features section of the documentation

  • q2 check ensures INSTALL_VARS references are changed to DB_PLAN

Deprecated

  • q2_sdk.core.web.Q2RequestHandler.INSTALL_VARS is deprecated in favor of q2_sdk.core.web.Q2RequestHandler.DB_PLAN

v1.38.2 - 2018-04-24

Security

  • Changes from PyCrypto to the more modern and maintained cryptography package

v1.38.1 - 2018-04-20

Fixed

  • core_configuration_options in /inspect/extension_name endpoint now shows None as a possibility

v1.38.0 - 2018-04-19

Added

  • Cache will now compress data by default. Toggleable in settings file as CACHE['COMPRESS_DATA'] = False

  • Cache can now encrypt information if pycrypto is installed. Off by default. Toggleable in settings file as CACHE['ENCRYPTION_KEY'] = 'YOURKEYHERE'

v1.37.0 - 2018-04-17

Added

  • Adds BaseRestrictedQuery for non executable core queries

  • Adds Transaction model to q2_sdk.models.online_transaction

Fixed

  • Fixes bug with q2 get_installed_forms where a missing CustomName would raise an exception

  • Fixes a bug where certain network interfaces could interfere with VPN detection on q2 update_installed_form --my_ip

  • Fixes unhandled error condition where missing database creds when running q2 run_sql would raise an ugly exception

  • Fixes edgecase where an import error in an extention would throw the wrong warning when invoked with q2 update_installed_form

  • Handles routing key in non-soap form requests (from curl, postman, etc)

  • Fixes incompatibility with pip 10.0.0 when invoking q2 upgrade

v1.36.3 - 2018-04-16

Fixed

  • Fixes CLI readline error on Windows

  • Fixes bug with default tests generated as part of q2 create_extension

Added

  • Adds None as option when using DYNAMIC_CORE_SELECTION=True for some scenarios

v1.36.2 - 2018-04-12

Fixed

  • Fixes a bug with readline support for Windows development

  • Fixes bad argument names for q2 db get_third_party_data

v1.36.1 - 2018-04-11

Fixed

  • Remove ES6 from SSO form for IE11 compatibility

  • Fix typing issue with numerical logon names

  • Fix add to nav duplicate names issue

v1.36.0 - 2018-04-09

Added

  • Adds additional ToType and FromType options for q2_sdk.hq.api_helpers.build_secure_message_xml

Fixed

  • Fixes attachment bug with q2_sdk.hq.api_helpers.build_secure_message_xml

  • Fixes bug where Core queries would not be logged while in debug mode

v1.35.0 - 2018-04-05

Added

  • All command line inputs now have readline support (arrow keys, home, end, etc)

  • q2_sdk.hq.models.Account now has can_deposit, can_view, and can_withdraw properties which return booleans

Fixed

  • Made install_form stored proc a bit more robust

v1.34.0 - 2018-04-03

Added

  • self.account_list is now an object with search_by_id capability

  • Added a routing system to better support multi-step workflows. See tutorial step “Routing” for full details.

  • Added an InternalLink UI Field for creating anchor tags that will link to a route inside your extension

  • Added an ExternalLink UI Field for creating anchor tags to call an external URL

Fixed

  • Fixed a bug where running q2 install_form without settings INSTALLED_EXTENSIONS would lead to a nasty stack trace

  • Fixed a bug where running q2 lint before creating an extension would fail

Changed

  • q2 create_extension now creates a basic extension using the new routing schema. The old default methods of handle_initial_call() and handle_form_fields() are replaced by routes named default() and submit().

  • q2_post() now handles routing requests and should not be implemented on Q2RequestHandlers if routing is to be used.

  • self.form_fields now supports multiple fields with the same names as a list. i.e. self.form_fields = {'key_name': ['1', '2']}

v1.33.1 - 2018-04-02

Fixed

  • Fixed a bug where entrypoints could report ExecuteStoredProcedure not installed under some conditions

Added

  • Added a CacheMock class in q2_sdk.tools.testing.models

v1.33.0 - 2018-03-29

Fixed

  • Reverted change that preferred .execute over get_json/get_soap.

Added

  • DbObject now takes in an HqCredentials object to use HQToken if possible allowing for multitenant DBobject access

v1.32.4 - 2018-03-28

Deprecated

  • Newly generated hq_api bindings will prefer .execute over .get_soap or .get_json. Deprecation warnings at runtime will prompt changing to the newer version

Fixed

  • DemographicInfo object now scrubs emails, phones, and addresses for uniqueness

Added

  • Adds a testing helper for Q2RequestHandler in q2_sdk.tools.testing.mock_handler_mixin

v1.32.3 - 2018-03-26

Fixed

  • self.db_config is now more efficient

  • q2 lint will no longer throw exceptions on code you didn’t write

  • Fixed a bug where updated pip versions would show up when running q2 upgrade

Added

  • /status endpoint now takes an optional format==json query parameter

Changed

  • Upgrades to jinja2 version 2.10

v1.32.2 - 2018-03-22

Changed

  • q2 test and q2 lint now run on all code, not just INSTALLED_EXTENSIONS

v1.32.1 - 2018-03-21

Fixed

  • Tab completion is now cross platform compatible

v1.32.0 - 2018-03-19

Added

  • Three new command line input validators (FloatValidator, ListValidator, BooleanValidator)

Changed

  • WEDGE_ADDRESS_CONFIGS now handles Boolean, Integer, Float, and List types in addition to strings

  • It is now possible to install a form multiple times with different names using q2 install_form

v1.31.2 - 2018-03-16

Fixed

  • Accidentally added hq_api into the package, which would ignore locally generated ones

v1.31.1 - 2018-03-15

Fixed

  • Fixed a typing bug with REQUIRED_CONFIGURATIONS

Changed

  • self.core now has entire hq_credentials set rather than just the token

v1.31.0 - 2018-03-13

Changed

  • Updates minimum required python version to 3.6 (Clients are unaffected by this change. You are already using 3.6)

  • Switches to Python3.6 style type hinting on generated hq_api modules

Added

  • Adds VendorConfig DbObject

  • Adds .pytest_cache to the generated .gitignore file on q2_setup

Fixed

  • Fixes a bug where configurations in an extensions configuration/.py file would not be available at runtime unless they were in the REQUIRED_CONFIGURATIONS block. Now throws a warning instead

  • Better error handling on q2 update_installed_form

  • Fixes a bug where the SDK would log a line to the effect of “Checking to see if HQ creds have updated” once/minute

v1.30.1 - 2018-03-09

Fixed

  • Fixed a bug where create_coreflow would not show Base as an option after q2-cores package installed

  • Improves speed and cpuload of bash/zsh completion (NOTE Run q2 install_completion to ensure update)

  • Fixed a bug where empty Config column in Q2_WedgeAddress table would cause stacktrace in q2 update_installed_form

  • Fixed a bug where q2_on_finish would be called after q2_post even when response was 500

  • Fixed a bug preventing install_vars to process correctly on q2 install_form

v1.30.0 - 2018-03-07

Added

  • Adds q2_sdk.core.web.Q2RequestHandler.q2_on_finish method for background processing after an http request is returned

  • pre-commit git hook now has help text for how to temporarily ignore hooks on failure

v1.29.1 - 2018-03-06

Fixed

  • Fixed a template file name for linting

v1.29.0 - 2018-03-06

Added

  • q2 lint entrypoint will lint code according to Q2 standards

  • Git hooks installed on q2 setup to faciliate automated linting and testing

  • Better detection of vpn vs ethernet in local Q2 development

  • --my-ip flag added to q2 update_installed_form to detect automatically

v1.28.0 - 2018-03-02

Added

  • Creates q2 db update_nav_node entrypoint

Fixed

  • Fixed a bug where nested wedge_address_configurations (such as with DYNAMIC_CORE_SELECTION) would not update appropriately with q2 update_installed_form

v1.27.0 - 2018-03-01

Added

  • Adds NavNode db Object (q2_sdk.hq.db.NavNode)

  • Adds NavigationStyle db Object (q2_sdk.hq.db.NavigationStyle)

Fixed

  • Fixed a bug where q2 upgrade was not working correctly in the shared-dev environment

v1.26.0 - 2018-02-21

Changed

  • Added CSS to handle the UUX mobile header in Q2SSO template

v1.25.0 - 2018-02-20

Fixed

  • Configuration errors now write to STDERR instead of STDOUT

  • Missing wedge_address_config data in the database will now throw an appropriate error with logged help text on form submission

Added

  • Added self.online_session object to Q2RequestHandler. Contains information relating to the current user’s session, including a boolean representing if it a CSR Assist session

  • Added self.form_info object to Q2RequestHandler. Contains information relating to the currently submitted form

  • Enhances q2 check entrypoint to support non standard settings configuration paths

Changed

  • q2 update_installed_form will now prompt for a required DB configuration in a key/value prompt manner similar to install_form

v1.24.2 - 2018-02-15

Fixed

  • Corrected Vault Error messaging for vault key problems

  • Fixed a bug with install_form and install_vars missing to_json method

v1.24.1 - 2018-02-14

Fixed

  • Fixed a bug where calling to_json() on Card would not return anything

v1.24.0 - 2018-02-14

Changed

  • q2 update_changelog is now q2 update

Added

  • Adds account_holder_name and address to models.account.Card

  • Adds .to_json method to models.account.Card

  • Adds sso_url parameter to ui.forms.Q2SingleSignOn

v1.23.1 - 2018-02-14

Fixed

  • Adds static versions of AdapterPassThru HQ call to fall back upon if the user has not generated overrides in the repo

  • Fixed a bug where calling api_helpers.build_update_demographics_by_logon_name_xml while the onlineUser does not have any phones would throw a stack trace

Added

  • Adds q2 db get_countries to CLI

  • Adds q2_sdk.hq.db.Country model for interacting with the table via python script

  • Adds code completion for GetAccountListByCif call

  • Allows OnlineUser to be instantiated without providing an XMLNode, then filled in with data later

v1.23.0 - 2018-02-13

Changed

  • Changed property core.online_user to core.configured_user

Added

  • Added the ability to create repository-level changelogs

  • Added language property to self.online_user

  • Added update_configured_user method on BaseCore, which can be used to make Hcore calls against a user other than the online user

v1.22.0 - 2018-02-09

Added

  • q2 generate_hq_api

    • Respects Optional flag coming back from HQ

    • Warning Will Potentially generate files with arguments in a different order than before, with optional arguments at the end. Be sure to check your extensions if generating a new HQ API

    • Removes unnecessary imports from generated files

  • q2 test

    • New entrypoint

    • Runs tests on installed extensions if present

  • q2 create_extension

    • Generates tests as part of creation

    • Adds no-register parameter to bypass the settings registration prompt

v1.21.2 - 2018-02-07

Fixed

  • Fix python 3.5 compatibility for sdk

v1.21.1 - 2018-02-07

Fixed

  • Bugfixes for upgrade entrypoint

v1.21.0 - 2018-02-06

Added

  • Add ‘q2 upgrade’, an automated way to update a repo’s installed q2-sdk or q2-cores version

Changed

  • Calendar field can now be set as not required for form submission

v1.20.1 - 2018-02-05

Changed

  • Updates CalendarField to respect required boolean

  • Changed Account.hade_list to Account.hade_dict, keyed by the HADE.name

Fixed

  • Fixes a bug with q2 check where if q2-cores was not installed the error was inappropriate

v1.20.0 - 2018-02-02

Added

  • Adds a DYNAMIC_CORE_SELECTION to RequestHandler

    • Defaults to False

    • Setting this to True will prompt for core configuration information on install_form

    • If True, will not read configuration from the settings file

    • This allows for multi tenant implementations of extensions that require core connectivity

  • Account objects now have a self.hade_list attribute filled with HADE objects

    • These are accessible as self.account_list[0].hade_list

  • Added a better __repr__ to Account: (<Object Account: host_acct_id>)

  • q2 check

    • Adds cores version match check

    • Adds DYNAMIC_CORE_SELECTION integrity check

  • q2 create_extension

    • Added docs for Core hinting in PyCharm

    • Changed self.request_as_obj to self.request_name_elem in the docs

v1.19.1 - 2018-02-01

Added

  • Adds support for jinja filters

v1.19.0 - 2018-01-30

Added

  • Add the first iteration of a universal SSO template, invoked by returning a forms.Q2SingleSignOn as a q2 POST response.

v1.18.19 - 2018-01-30

Added

  • Add Nickname to Account model

    • Accessible as account.nickname for account in self.account_list

Fixed

  • Suppress all logs from /status endpoint

v1.18.18 - 2018-01-25

Added

  • Deployer install support for customer created flag in database

v1.18.17 - 2018-01-25

Added

  • Adds Is Customer Created information to Inspect entrypoint

  • Adds is_customer_created key to /inspect and /inspect/<extension_name> endpoints

Removed

  • Removes 2 second connection timeout

    • This was causing unforseen side effects in local development with slow to response HQs

v1.18.16 - 2018-01-24

Added

  • Improves Bash and ZSH completion

    • Adds definitions into top level ZSH entrypoints

    • Adds handling for commands with subparsers (q2 db)

    • To get these updates, run q2 install_completion then restart your shell

v1.18.15 - 2018-01-24

Added

  • Improves support for form modals

    • Adds a warning modal

    • Exposes Close button as a togglable item

  • Adds ObjectGroupData class to access data in the Q2_ObjectGroup table

v1.18.14 - 2018-01-23

Added

  • Healthcheck endpoint (/status) now shows detailed information on dependent services

  • Adds HQ, Vault, and Memcached health information

  • After a successful healthcheck, will cache the results (per service) for 60 seconds

  • Can bypass the result cache by passing no_cache=true (/status?no_cache=true)

  • Can access a prettier markdown version of the page by passing format=md (/status?format=md)

  • If HQ creds fail to login and vault is active, adds a refresh_hq_creds function that will pull them from vault

    • This means if HQ creds change while the service is running, the very next call the service should be updated with the new info

  • Updates to tornado >=4.5 (from >=4.4)

v1.18.13 - 2018-01-22

Added

  • Adds q2 db get_logon_by_user_id entrypoint

  • Adds q2 db get_user_property_data_by_value entrypoint

v1.18.12 - 2018-01-17

Added

  • Adds a install_completion entrypoint to facilitate easy install of the bash and zsh completion scripts

  • Fixes a bug where a malformed settings file could cause q2 run to fail silently

  • Adds a “built_by_q2” check on q2 setup for internal tracking

v1.18.11 - 2018-01-16

Added

  • Adds global and extension level filtering capabilities

  • Usage instructions exist in the documentation under Logging menu

v1.18.10 - 2018-01-10

Added

  • Defaults Demographic AddressType to HOME from RESIDENTIAL in the q2 system

  • Adds a UserDemographicData object in q2_sdk.hq.db for ease of use demographic info updates

  • Adds a helper for building update demographics xml shape

  • OnlineUser class’s postal_code, home_phone, work_phone, customer_primary_cif, and user_primary_cif attributes are now strings

  • OnlineUser class now has a demographic_info attribute for easily passing all relevant object data to another object

  • PhoneType class now has a country attribute

  • AddressType class now has HOME, OTHER, BUSINESS, and BILLPAYEE attributes

  • Address class now has country and province attributes

  • Adds apispUpdateDemographicsByLogonName_RT install to setup_db to facilitate demographic info update

v1.18.9 - 2018-01-05

Fixed

  • Fixes a bug where metacharacters in the text of a SpanField could cause it not to render appropriately

v1.18.8 - 2018-01-04

Added

  • q2 run_sql now has an optional print argument to print the SQL directly to stdout

v1.18.7 - 2018-01-03

Changed

  • q2 run will now default to the port stored in the ANTILLES_SERVER_PORT environment var, falling back to 1980 if unset

v1.18.6 - 2018-01-02

Added

  • q2 create_extension now prompts for registering the newly created extension in the configuration/settings.py file

  • Adds q2 update_changelog entrypoint to facilitate tracking human readable changes in extensions

  • Adds git repo existence check to q2 check

  • Adds /changelog endpoint to view CHANGELOG.md files inside individual extension folders

v1.18.5 - 2017-12-28

Added

  • Generating HQ API helpers from static file is now supported on Windows

v1.18.4 - 2017-12-27

Added

  • Integration with Vault secret store updated to fit with the rest of Q2’s usage.

  • Adds an additional fallback layer of xml parsing logic in the initial POST request handling if Content-Type header is unset

v1.18.3 - 2017-12-21

Added

  • Adds request guid to q2_post calls in the event of an unhandled stacktrace Changed

  • q2 install_form entrypoint now defaults account_rights_bit_flag to 0 (all accounts visible) instead of 7

v1.18.2 - 2017-12-21

Added

  • Adds query_params to DEBUG level q2_requests logging

  • Adds HQ Session to INFO level extension logging

v1.18.1 - 2017-12-18

Added

  • Adds several helpers to communicate with the database through StoredProcedures including:

    • UserPropertyData

    • UserPropertyDataElements

v1.18.0 - 2017-12-13

Added

  • Adds the ability to add a form to the top level navigation menu

  • If a form is added to top level nav, a prompt will appear asking for which icon should be displayed

  • Adds the q2 bounce_hq entrypoint to bounce hq on demand without needing to install/remove a form first

  • ACTION REQUIRED: Run q2 setup_db to add new sql scripts to the database

v1.17.10 - 2017-12-12

Added

  • Slight edits to default settings file to ensure ABA can be overridden locally with an environment variable while still allowing for a hardcoded FI default

  • q2 setup now prompts for an ABA in the event the repo is only being developed for a single FI

  • This is bypassable with either the aba flag and specifying an ABA or the no-aba flag to ignore the check

  • Adds the ability to mock failures on core query responses. BaseQuery object now takes an optional mock_failure parameter. Defaults to False. This will ONLY be respected in DEBUG mode. Otherwise will be ignored.

  • To code against this, instantiate your Query with mock_failure=True. Alternatively, take an already instantiated query and set it’s mock_failure attribute to True before executing it. The response that comes back after calling .execute() on the corresponding Mapper will have a failure set in it’s response. Here an example:: mapper = await self.core.build_demographic_info() mapper.list_of_queries[0].mock_failure = True await mapper.execute() hq_response = mapper.list_of_queries[0].core_response_obj.hq_response is_success = hq_response.success if not is_success: error_message = hq_response.error_message

v1.17.9 - 2017-12-11

Changed

  • Improves Wedge converter script

  • Brings Vault integration in line with current best practices in Q2 environment

v1.17.8 - 2017-12-07

Added

  • Better error handling on LinkedAccount.add and LinkedAccount.delete

  • Cache connection to memcached has been given more sane defaults

    • An initial connection time longer than 1 second will be treated as a cache miss

    • A get/set call longer than 1 second will be treated as a cache miss

  • Q2RequestHandler introduced a self.wedge_address_configs property, which is a more readable reference to self.db_config

  • Q2Form can now accept the keyword argument “custom_template”. HTML strings passed as “custom_template” will render as form content

  • Q2Form can now accept the keyword argument “hide_submit_button”. This will, unsurprisingly, hide the submit button

  • q2 inspect now displays information about the cache settings

  • /inspect endpoint now displays information about the cache settings

v1.17.7 - 2017-12-04

Added

  • Adds a add() method to q2_sdk.hq.db.LinkedAccount

Fixed

  • Fixes a bug with delete() method of q2_sdk.hq.db.LinkedAccount

v1.17.6 - 2017-12-04

Fixed

  • Fix a bug with hq.db.LinkedAccount.delete()

v1.17.5 - 2017-12-01

Changed

  • q2 install_form now cleanses extra leading http:// and leaves off form_install_port if it’s 80

v1.17.4 - 2017-12-01

Added

  • Adds print flag to q2 setup_db entrypoint. Will print sql to stdout instead of running it against the active DB

v1.17.3 - 2017-11-30

Added

  • Adds support for unicode payloads

  • Adds type hinting for GetAccountDetailsByIdWithUserLogon

  • Adds type hinting for GetAccountHistoryById

Changed

  • Reorganizes logging of q2_request.* functions such that meta information on the request is printed before the call happens

  • Turned off auto generate_hq_api call during q2 setup

Fixed

  • Fixed a bug where hq_dir was not auto created in generate_hq_api call

v1.17.2 - 2017-11-29

Added

  • q2_sdk.core.q2_requests functions now take an optional session parameter to facilitate reusing session vars (cookies, headers, etc) in a standard way

  • Command line interface to q2 db * entrypoints turned most optional named parameters into required positional ones.

v1.17.1 - 2017-11-28

Added

  • Adds lots of doc strings to hq_api modules

  • Adds type hinting for hq_api.q2_api.GetPasswordPolicy module

v1.17.0 - 2017-11-28

Added

  • generate_hq_api will now format output files according to our style guide

  • Type hinting!

    • If an example output exists in the repo for a type of call, appropriate type hinting classes will be added in the generated output file. Currently only GetUserAccountList has this built in. More will be added in subsequent releases.

  • A local version of an example HQ WSDL was added into the repo

  • generate_hq_api will be run as part of q2 setup now

  • generate_hq_api now takes additional parameters

    • -a will limit generation to a single endpoint (i.e. -a GetUserAccountList)

    • -d will download wsdl from configuration.settings.HQ_URL. This used to be the default

    • no-format will bypass the pep8 formatting that happens by default on generated files now

  • Added default logging

  • ACTION REQUIRED: Any references to q2_requests.* functions now take a logger:

    • q2_requests.get(’http://www.url.com’) is now q2_requests.get(self.logger, ‘http://www.url.com’)

    • Logger parameter can be set to None, which will disable logging

  • Fixed a bug with type hinting incompatibilities with python 3.5.1

v1.16.5 - 2017-11-21

Changed

  • Upgrades to q2 check command

    • Better handles malformed configuration.settings file

v1.16.4 - 2017-11-20

Added

  • Adds a q2 check command to ensure your extensions are ready for deployment. Checks the following:

    • Does configuration/settings.py file contain all required variables?

    • Does INSTALLED_EXTENSIONS in configuration/settings.py contain at least one extension name?

    • Are all INSTALLED_EXTENSIONS importable?

    • Are there any syntax errors in any INSTALLED_EXTENSIONS?

    • Does requirements.txt exist?

    • Does version of q2-sdk in requirements.txt match the currently installed version?

    • Is WEDGE_ADDRESS_CONFIGS a dictionary?

    • Is INSTALL_VARS an instance of q2_sdk.core.install_vars.BaseInstallVars?

    • Do all REQUIRED_CONFIGURATIONS exist in appropriate extension level settings file?

  • Defaults Q2RequestHandler.INSTALL_VARS to an instance of q2_sdk.core.install_vars.BaseInstallVars instead of []

Removed

  • Removes postgres folder from q2 create_extension autogenerated files

    • Postgres is still supported as a database backend, but as it is very rarely used, it is no longer assumed in the creation

v1.16.3 - 2017-11-17

Added

  • Add capability to get linked accounts

v1.16.2 - 2017-11-15

Added

  • Add author information to install_form

  • ACTION REQUIRED: Adds a parameter to a stored procedure. Rerun q2 setup_db

Fixed

  • Inspect endpoint no longer accept credentials (CORS fix)

v1.16.1 - 2017-11-13

Added

  • Adds a condition for SOAP requests posted via non-HQ means

v1.16.0 - 2017-11-13

Added

  • Adds self.custom_javascript to Q2Form constructor

  • Adds IS_CUSTOMER_CREATED variable to default_settings.py. This will be passed through to the resulting logger and preface log lines with ‘CUST’ if set to True and ‘Q2’ if set to False. Defaults to True

Changed

  • Change q2_sdk.ui.forms.BaseForm to q2_sdk.ui.forms.Q2Form

  • ACTION REQUIRED: References to the above must be changed

v1.15.2 - 2017-11-09

Changed

  • Moves SHORT_NAMES out of Q2RequestHandler and into q2_sdk.core.BaseInstallVars.required_forms

  • Upgrades get_installed_forms to show group ids for which each form is installed. This is backwards compatible, but will require rerunning q2 setup_db to get the new features

  • Upgrades the /inspect endpoint to allow CORS from localhost

v1.15.1 - 2017-11-08

Changed

  • Built in Inspect Endpoint now takes an additional /extension_name component to the URL to get install vars information dumped as a json blob. We will use this on our end for ease of deployment

v1.15.0 - 2017-11-08

Fixed

  • Fixed several bugs with install_vars on form install

  • ACTION REQUIRED: References to q2_sdk.core.install_vars.BaseInstallVars.vendors_to_create are now q2_sdk.core.install_vars.BaseInstallVars.vendors

v1.14.5 - 2017-11-06

Added

  • Added UserAccountAttributeData endpoints (Add, Update, Delete, Get)

v1.14.4 - 2017-11-06

Added

  • Added rate limiting capabilities

    • Q2RequestHandler now has a self.rate_limiters which defaults to an empty list

    • By overriding this in your init function with a list of q2_sdk.core.RateLimiter instances, you can control who is allowed to see your extension and how often

v1.14.3 - 2017-11-02

Added

  • Added Update to ThirdPartyData

  • Added Delete to ThirdPartyData

v1.14.2 - 2017-11-02

Fixed

  • Fixes bug where install_form would fail due to malformed directory structure

  • Fixes encoding bug with hq responses

  • Updates bootstrap grid sizing tools to work better with smaller devices

v1.14.1 - 2017-11-01

Fixed

  • Fixes a bug where production coreflows were not encoded correctly

v1.14.0 - 2017-10-31

Changed

  • Install form is refactored for backwards compatibility

  • ACTION REQUIRED: DB_CONFIGS is now referred to as WEDGE_ADDRESS_CONFIGS for greater clarity

v1.13.1 - 2017-10-30

Added

  • Adds LinkedAccount object with unlink ability

  • Requires run of q2 setup_db to install

  • Example:: from q2_sdk.hq.db import LinkedAccount LinkedAccountObj = LinkedAccount(self.logger) host_account_id = self.account_list[0].host_acct_id await LinkedAccountObj.delete(self.online_user.user_id, host_account_id)

v1.13.0 - 2017-10-30

Added

  • Creates a more consistent interface for interacting with the database through stored procedures

Changed

  • Renamed q2_sdk/db folder to q2_sdk/sql_scripts

  • ACTION REQUIRED: Any references to q2_sdk.entrypoints.db should be updated to the appropriate q2_sdk.hq.db module

v1.12.11 - 2017-10-29

Changed

  • Updates update script

v1.12.10 - 2017-10-27

Added

  • Added a filter on tornado logs to suppress the /status call from the logs

  • Moved default_logging.conf into a logging subdirectory

v1.12.9 - 2017-10-26

Added

  • Adds helpers for easy asyncronous web requests with the Requests library

  • Adds documentation on three types of Web Requests supported by Caliper

v1.12.8 - 2017-10-24

Added

  • Added new db entrypoints “get_third_party_data” and “add_third_party_data”

v1.12.7 - 2017-10-19

Changed

  • Logging Level value at command line is now case insensitive

  • Logging Level can also be set by an environment variable (Q2SDK_LOGGING_LEVEL)

v1.12.6 - 2017-10-18

Added

  • Adds required keyword to Input and Select fields for accessibility purposes

v1.12.5 - 2017-10-17

Fixed

  • remove_from_nav now handles an edgecase where multiple UserProperties named the same thing were installed

v1.12.4 - 2017-10-17

Fixed

  • Fix a bug with install_form where old style forms couldn’t be installed with the new installer

v1.12.3 - 2017-10-17

Changed

  • Inspect entrypoint now shows ABA if configured

  • Install Form entrypoint adds the longform form_url option to the -u flag

  • Built in Inspect endpoint now shows ABA

  • Built in Inspect endpoint now shows SDK version

  • Built in Inspect endpoint now also displays at the root of the server (”http://localhost:1980/”)

v1.12.2 - 2017-10-13

Changed

  • Better error messaging if user forgets to set HQ_URL during setup

v1.12.1 - 2017-10-13

Changed

  • q2 install_form now has support for many optional install variables. Future releases will see the buildout of tooling around these variables

v1.12.0 - 2017-09-27

Changed

  • Conform generate config to dynamic core import, add data_attrs to q2cores/Symitar, add last step to core flow tutorial.

v1.11.4 - 2017-09-12

Changed

  • q2 update_installed_form will provide a default config in the event that it doesn’t exist

v1.11.3 - 2017-09-11

Changed

  • Adds SHORT_NAMES list to Q2RequestHandler. If populated, will install one form for each ShortName. This allows for some extensions (like PFM) to have multiple entry points through the Q2 Online UI.

  • Updates q2 install_form for new SHORT_NAMES logic

  • Updates q2 remove_form for new SHORT_NAMES logic

  • Updates q2 get_installed_forms for new SHORT_NAMES logic

v1.11.2 - 2017-09-10

Changed

  • run_sql entrypoint was given a prefix parameter (-p, prefix) to only run specific files

  • run_sql entrypoint was given a dry_run parameter (-n, dry_run) to print out what will be run without actually doing it.

v1.11.1 - 2017-09-06

Added

  • Adds Vault integration for encrypted secret sharing

    • Simply export ABA, VAULT_ADDR, and VAULT_TOKEN to query vault at runtime

Changed

  • Generated configuration/settings file will now inherit from default_settings by default

v1.11.0 - 2017-09-05

Changed

  • Updates both ZSH and Bash tab completion scripts.

    • Moves them to /bin folder.

    • Adds generated hidden .antilles folder at root level of project to hold cached information, including completion indexes

    • ACTION NEEDED: Change your bashrc or zshrc to point to appropriate new completion script in /bin (Either antilles_completion.zsh or antilles_completion.bash)

    • ACTION NEEDED: Add .antilles folder to your .gitignore to avoid checking it in

v1.10.7 - 2017-08-31

Added

  • Adds update_installed_form entrypoint to alter the Url, AccountRightsBitFlag, and Config fields of already installed forms

v1.10.6 - 2017-08-29

Added

  • Adds a -f parameter to get_installed_forms for detailed information about a specific form

v1.10.5 - 2017-08-25

Changed

  • Linting style changes only

v1.10.4 - 2017-08-24

Added

  • Added Demographic details to core/demographic

v1.10.3 - 2017-08-22

Changed

  • Q2RequestHandler.hq_commands now accepts a force_success_response parameter that defaults to False

v1.10.2 - 2017-08-21

Changed

  • get_json calls will now appropriately set application/json Content-Type header

v1.10.1 - 2017-08-21

Added

  • Creates add_nav_perms entrypoint to specifically set Q2_UserPropertyData on demand

Changed

  • Add to Nav will no longer update the Q2_UserPropertyData table unless Debug mode is also set to True in Settings

  • Adds helpful guidance text to add_to_nav for production use

v1.10.0 - 2017-08-17

Added

  • Added the capability to create custom entrypoints inside extensions

  • Documentation for this added to the tutorial

v1.9.6 - 2017-08-15

Added

  • RequestHandler.wrap_soap_response method was created to allow for extension level override of the soap response

Removed

  • RequestHandler.use_ardent_response and corresponding code have been removed. These were in place for a specific internal extension and do not belong in the core code

v1.9.5 - 2017-08-08

Fixed

  • HqResponse model will now behave appropriately whether it is given str or bytes

v1.9.4 - 2017-08-08

Fixed

  • Fixes bug for edgecase of online_user not being parsed causing other fields to not be parsed

v1.9.3 - 2017-08-07

Added

  • logging.conf is no longer the implied default configuration file

  • New default lives in q2_sdk.core.default_logging.conf

  • Logging.conf is overrideable given LOGGING_CONF key in configuration/settings.py

  • Logging object is now shared among entrypoints and will respect supplied logging-level from command line

  • Configured logging file is logged out at startup of q2 run

v1.9.2 - 2017-08-03

Fixed

  • Fixed a bug where nested LXML Elements would throw an error in json deserialization for get_json calls

v1.9.1 - 2017-08-03

Added

  • Added missing timer stop to the generated get_json() methods.

v1.9.0 - 2017-08-02

Changed

  • RequestHandler.cache is a bit easier to use. Returns a string instead of bytes if possible. Stores JSON dicts natively if possible.

v1.8.7 - 2017-07-25

Added

  • Added self.aba and self.hq_url as attributes of the RequestHandler. These are taken from the online POST attributes.

Changed

  • HQ methods now set a header to ensure the same response shape regardless of HQ version.

v1.8.6 - 2017-07-18

Fixed

  • Fixes an async bug with internal convert_wedge entrypoint

v1.8.5 - 2017-07-13

Added

  • Adds -e, -o, and -p flags to the add_to_nav entrypoint

    • -e: form_name

    • -o: Order

    • -p: Parent ID

  • If any of the flags are left off, the user will still be prompted for them

v1.8.4 - 2017-07-12

Added

  • Adds the get_groups entrypoint to print all groups from the Q2_Group table

v1.8.3 - 2017-07-12

Changed

  • Behind the scenes work to make entrypoints easier to program

v1.8.2 - 2017-07-10

Changed

  • Removes q2-cores as a hard dependency package

  • Adds base core and model information directly into this package

  • Interfaces remain the same. If you are importing q2_cores in your package, no change should be required.

v1.8.1 - 2017-07-10

Changed

  • Settings path is now overrideable. It will use the first match of the following:

    • Module specified in the Q2SDK_SETTINGS_MODULE environment variable

    • configuration.settings in the present working directory

    • q2sdk.core.configuration.default_settings

  • q2 run will log the settings file determined by the above logic.

v1.8.0 - 2017-06-27

Added

  • Adds deployment server capabilities internally. To be deployed with the tool, extensions must be based off at least this version.

  • Adds extension flag to inspect entrypoint for extension specific information

  • Makes install_form a bit smarter to avoid duplicate installations

  • Adds installed_extensions to run_server logging

v1.7.1 - 2017-06-27

Added

  • get_execute_request_as_xml_response now has the ability to expire and reload Account information during a loaded session

  • Creates HqCommands class to facilitate the account reload mentioned above

v1.7.0 - 2017-06-23

Changed

  • Q2_RequestHandler now has a DB_CONFIGURATIONS attribute which can be used to install config information with q2 install_form

  • Q2_RequestHandler now has a self.db_config property which can be used at runtime to reference the configuration dict defined using DB_CONFIGURATIONS

  • Install form respects DB_CONFIGURATIONS of extensions and prompts for overrides on install

  • ACTION REQUIRED: To use the new DB_CONFIGURATIONS piece on install_form, sql stored procedures must be reinstalled in the database. Luckily this is simple. run q2 setup_db.

v1.6.2 - 2017-06-21

Changed

  • Updates to lxml 3.8.0 to increase python3.6 MacOS compatibility

v1.6.1 - 2017-06-20

Changed

  • Allow for javascript payloads returned from ExecuteRequestAsXML requests

v1.6.0 - 2017-06-19

Added

  • Adds Group choosing into install_form entrypoint

    • -g flag takes a comma delimited list of group_ids for which to install the form

    • Leaving the -g flag off results in an interactive menu prompt which queries the DB for possible group IDs and names

    • Will require reinstalling sql scripts (q2 setup_db)

v1.5.4 - 2017-06-15

Removed

  • Removes -c option from install_form, run_server, and run_sql entrypoints

v1.5.3 - 2017-06-15

Added

  • Improve extension of base core using create-coreflow entrypoint.

v1.5.2 - 2017-06-15

Changed

  • q2 add_to_nav now queries installed forms from the database rather than assuming that matches what’s in the settings file.

  • Updates help text on the remove_form, remove_from_nav, and add_to_nav entrypoints

v1.5.1 - 2017-06-14

Added

  • Add internal tool for handling version bumping of q2-sdk library.

v1.5.0 - 2017-06-13

Changed

  • Breaking change:

    • CORE in configuration/settings.py is now a string that will be dynamically imported the first time self.core is called in a RequestHandler. This fixes a circular import bug in this and downstream repos

    • References like CORE = q2_cores.UltraData.core.Core should be changed to CORE = 'q2_cores.UltraData'

  • Adds Core to the Inspect entrypoints

  • Adds Core to the builtin /inspect endpoint

v1.4.10 - 2017-06-13

Added

  • Introduces lazy importing of entrypoints to better handle runtime dependencies

v1.4.9 - 2017-06-13

Added

  • Updates bash_completion script in tools/bash_completion with file path completion for convert_wedge_extension

  • Adds zsh completion at tools/zsh_completion

v1.4.8 - 2017-06-12

Added

  • Added self.request_name_elem to Q2RequestHandler. This is a convenience attribute to avoid having to call self.request_as_obj with an xpath to find the inner request

v1.4.7 - 2017-06-08

Added

  • Adds ardent response handling

  • Adds self.use_ardent_response to Q2RequestHandler. Defaulted to False, but if set to true will respond back with an Ardent shape, regardless of whether the initial call was ExecuteRequestAsString or ExecuteRequestAsXML

  • Adds self.hq_response_attrs dict. Defaulted to empty, if filled will append key value pairs as attributes to the response’s interior node.

v1.4.6 - 2017-06-08

Changed

  • Allow install_form to be run with optional command line parameters for programmatic usage.

v1.4.5 - 2017-06-08

Changed

  • Updates convert_wedge_extension command to handle hq imports, xml building. deserialization, and a few smaller pieces.

v1.4.4 - 2017-06-07

Changed

  • Change create_coreflow to use CamelCase classnames.

v1.4.3 - 2017-06-06

Added

  • Added a convert_wedge entrypoint for Q2 Internal team to transform existing wedge code into sdk compliant variant.

v1.4.2 - 2017-06-01

Added

  • Added a create_coreflow entrypoint intended for making extensions that serve to make custom core requests. Added tutorial.

v1.4.1 - 2017-05-30

Added

  • Added a new formatter to logging.conf. To take advantage of this, remove your current logging.conf and run :code:q2 setup to generate a new one.

  • Will log in UTC time if in Debug mode=False (In production). Otherwise will continue to log in local server time

  • Log out Debug mode True/False when the server starts

v1.4.0 - 2017-05-26

Changed

  • q2.core.cache now uses the pymemcache library instead of the q2-cacheflow library to interact with memcached

  • Extensions that previously implemented caching which used self.cache.get_shared or self.cache.set_shared_with_expiry will have to switch to using self.cache.get and self.set(key, value, expire=int) format.

  • q2 setup now adds caching configuration information to the settings.py file

v1.3.18 - 2017-05-25

Added

  • By default, an /inspect endpoint is included that displays the URL of the HQ instance a server is configured to use.

v1.3.17 - 2017-05-25

Changed

  • The config file generated by the generate_config entrypoint now features alphanumerically sorted keys and pretty printing of nested lists and dictionaries.

v1.3.16 - 2017-05-23

Changed

  • The run_sql entrypoint now honors inheritance, allowing for overridden extensions to take advantage of ancestors’ sql install directories

Fixed

  • Fixes a bug where the scripts in run_sql endpoint were not guaranteed to run in sorted order

v1.3.15 - 2017-05-23

Changed

  • The cache module (q2_sdk.core.cache) no longer spams the logger when a memcached server is unavailable Web

  • The request handler in web.py got an update to the get_template function.

  • It will prefer the calling extension’s templates folder, but then honor inheritance as well, allowing for overridden extensions to take advantage of ancestors’ templates directories.

v1.3.14 - 2017-05-19

Changed

  • The cache module (q2_sdk.core.cache) now reuses the same memcached connection regardless of how many times get_cache() is called.

v1.3.13 - 2017-05-11

Added

  • Adds .gitignore file on q2 setup

v1.3.12 - 2017-05-08

Added

  • Adds api_helper for building a secure message

v1.3.11 - 2017-05-04

Removed

  • Removed dockerize entrypoint. We will be handling this through an internal process