Changelog for Caliper SDK
Current Version: [2.295.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.295.0 - 2025-10-31
Added
- Adds a - q2 send_msg_to_buscli entrypoint for msg bus testing
Fixed
- Fixes hashes on non-dev only - get_ui_sourcesproc
v2.294.0 - 2025-10-30
Added
- Adds ability to override serializer/deserializer in the - Q2CacheClient
Changed
- EnrolledEntityDbObject’s primary cif is now optional
- sdk_GetUiSourcesis no longer dev only
v2.293.0 - 2025-10-27
Added
- Moves - remove_edv_detail_by_edv_profile_idmethod of- EdvDetailDbObject out of- dev_only
- Moves - createmethod of- HostAccountDbObject out of- dev_only
- Moves - createmethod of- HostAccountDataElementDbObject out of- dev_only
- Moves - createmethod of- HostAccountDataDbObject out of dev_only
v2.292.0 - 2025-10-23
Added
- Adds - ZoneWedgeAddressConfigDbObject.
- Adds - get_zone_wedge_address_configs_by_zone_id,- get_zone_wedge_address_configs_by_wedge_address_idand- get_zone_wedge_address_configentrypoints on- ZoneWedgeAddressConfigDbObject
- Adds tutorial documentation for Q2Console extension type. 
- Adds documentation for changes to caliper_admin script and its usage. 
Fixed
- Fixes backwards incompatibility with - AuditRecordRowBaseclass
v2.291.0 - 2025-10-10
Added
- Tecton handlers now have a - self.incoming_contextvariable to more easily access the id and value passed from the frontend when appropriate
- VendorConfig.config_valueis now editable in the InstallStep
- Q2Vaultobject now respects the- VAULT_NAMESPACEenv var for interacting with Enterprise Vault
Fixed
- AuditRecord’s- .SessionId,- .ErrorReturnText, and- .ErrorReturnCodeare now serialized as the correct types
- Fixes - q2 testand- q2 linton windows native
- Fixes bug with - q2 setup_dbthrough the websocket
- Fix misspelling on - NavNodeRow’s- DynNavWindowFeaturesID
- Fixes empty strings getting installed into wedge config if the config dict is empty on EDV Handlers 
v2.290.0 - 2025-10-02
Added
- Adds decorator - @routefor setting up routes on HQ request handler.
- Fetching Navigation nodes now also returns - NavigationTypeIDcolumn.
Fixed
- detailsvariable in- AuditDetailsmodel is now defaulted to None instead of an empty string.
- Links the correct python version requirements of the q2_sdk with the packaging of q2_sdk. 
v2.289.1 - 2025-09-29
Fixed
- Fixes a bug with Central/Console installer which put “” instead of NULL in the database for - wedge_payload_stored_proc
- Fixes bug with - AuditDetailswhere- start_date_timeand- end_date_timewere not nullable
Added
- Adds Pinion guide to docs 
v2.289.0 - 2025-09-25
Added
- Adds the - set_errorfunction to- Q2Span
- Allows - q2 setup_dbto run through dev socket even when a Q2 employee. (use- --no-websocketflag to disable)
- RepresentationRowsno long matter on DbObjects.- TableRowsare actual objects with appropriate inheritance.
Changed
- Defaults to sandbox Holocron url in local dev 
Fixed
- Improves logic to hide UUX submit button in newer versions of the product 
- Fixes a bug where Tornado server would not auto restart on Windows 
v2.288.0 - 2025-09-18
Added
- Handle keyword only parameters in Opentelemetry (OTEL) spans 
- Adds new - LogonDisclaimerAcceptanceDbObject for getting disclaimer acceptance dates by user
- Improves Tecton error handling for CSR Assist related errors 
Fixed
- Fixes a bug on - EstatementRowwhere- HasBeenReportedwas being serialized as a Int instead of a Bool
- AuditDetailsnow works with both- audit_idand- audit_uuid
Changed
- VendorConfigInstallStep’s- config_valuefield is now editable
- Update Pinion and Firebase urls in settings/docs to point to new AWS based urls 
v2.287.0 - 2025-09-15
Added
- Adds ability to manage public flag in Tecton CLI 
- Create default language files for alternate languages and update localization docs 
- Adds - self.smart_tsproperty to access Smart Trait Store
- Adds - NavigationTypeDbObject with- .getmethod
Changed
- Improves Vue template boilerplate to use hash routing 
- Adds NavigationEvent and ActionEvent to AuditAction blacklist 
Fixed
- Fixes a bug (since 2.285.0) where HQ could return a 404 and the SDK would swallow the response 
Security
- Upgrade base dependencies: - cryptography 44.0 → 45.0 
- hvac 0.10 → 2.3 
- jinja2 3.1.3 → 3.1.6 
- mistune 2.0 → 3.1 
- opentelemetry 1.32 → 1.36 
- prometheus-client 0.7 → 0.22 
- pyjwt 2.8 → 2.10 
- pymemcache 3.2 → 4.0 
- pytest-asyncio 0.18 → 1.1 
- pytest 7.1 → 8.4 
- python-dateutil 2.8 → 2.9 
- q2msg 1.30 → 1.33 
- requests 2.20 → 2.32 
- ruff 0.9.7 → 0.12.8 
- setuptools 70.0.0 → 80.9.0 
- tornado 6.0 → 6.5 
 
- Removes references to deprecated - pkg_resourcesand replaces with modern equivalents
v2.286.2 - 2025-09-09
Fixed
- Fix for Console CSR forms to ensure Console recognizes them as tecton based 
- Makes WedgePayloadStoredProc nullable in Form Installer 
- A few CLI naming fixes in the q2 tecton entrypoint 
- Cleaner InstantPayments model type hinting 
- Clean up some logic in Q2Config template generation 
v2.286.1 - 2025-09-03
Fixed
- Adding extensions to dropdowns with tecton CLI no longer generates an invalid action property 
- Fix issue with q2 install with relative pathing of tecton config 
- Fix issue with q2 update_installed with relative pathing of tecton config 
- Update Tecton CLI docs 
v2.286.0 - 2025-09-02
Added
- Add - minimal_loggingboolean parameter to ArdentFS- uploadand- upload_from_filemethods
- Introduces a method of registering custom checks to - q2 check. Docs added under Code Quality -> Custom Checks
- Adds - GetCustomerDetailsByIdHq Endpoint
- Adds - RestrictedEntitlementModeDisableHq Endpoint
- Adds - RestrictedEntitlementModeEnableHq Endpoint
- Adds - RestrictedEntitlementModeEnableByUserIdHq Endpoint
- Introduces - @create_auditdecorator so as not to overload- @mfa_validation_required. Docs added under Performance and Security -> Audit
v2.285.1 - 2025-08-28
Fixed
- Fixes a bug where AuditDetails Handlers would break if an errorReturnCode was not passed 
v2.285.0 - 2025-08-27
Added
- Adds - hydra_error_return_code,- hydra_error_return_code_description, and- hydra_exception_messageproperties to- HqResponse
- Adds - http_responseproperty to- HqResponseto preserve original raw http response object from HQ
v2.284.0 - 2025-08-18
Added
- Adds a new - HqSessionCacheDbObject
- Adds the - q2 db get_hq_session_cacheCLI command
- Adds the - q2 db update_system_property_dataCLI command
Fixed
- Fixes a bug with non-nested vendor configs in the - AccountHistoryAdapter 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_numberto- HostAccountDbObject
- PropertyLongNameis 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 enablefor optional- reply_parent_request_typesand- external_transaction_type_idfields
- Fixes bad join in - ZoneSystemPropertyrelated tables
- Fixes bug where CIFs in - ExternalAuth’s Check Password route should be Optional
Changed
- Cleans up - sdk_AddAdapterInterfaceSQL
v2.281.0 - 2025-07-29
Added
- Add a - q2 sandbox treasurycommand 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 tectoninheritance structure
- Changes - SendAccountDetailsin 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.13command
- caliper_adminscript updated to reflect python3.13 additions
v2.279.0 - 2025-07-22
Added
- Adds - IsoCodeA2to- Address.get()response
- GeneratedTransactionsDbObject 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 - UiConfigPropertyDataInstallStep
- Properly handles JSON data field in EDV requests 
v2.278.0 - 2025-07-14
Added
- q2 create_online_usernow 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 
- VendorIdis accessible on- NavNodeRow
- UserPropertyDataElement,- ApiStoredProcand- CentralNavNodenow have RepresentationRows
- TableRownow properly supports- setattrand- setitem
- Improves error handling in - Q2ConfigRequestHandlerbased extensions
- Improved Type hinting on all objects that take - Q2Logger(now hinted as- Q2LoggerType)
- Allows passing a - primary_cifon- EnrolledEntity.create_user
Changed
- Performance improvements on - Form.get
Fixed
- Correct - AccountAddress- AddressTypetype hint in RepresentationRow
- self.coreno longer blows up when called from- CaliperAPIhandlers
v2.277.1 - 2025-07-07
Changed
- q2 insightcommand now operates on new AWS based instance by default
Added
- Adds - is_dev,- is_staging, and- environmentproperties to Q2 Insight DbRows
- Whitelists new SDK Corporate AWS environment for - q2_requestcalls
v2.277.0 - 2025-07-03
Added
- Adds - get_by_user_idmethod to- UserPropertyDataDbObject
- Adds - get_by_customer_idmethod to- UserPropertyDataDbObject
- Adds - deletemethod to- AddressDbObject
- Adds - get_by_address_idmethod to- AccountAddressDbObject
- Adds - q2 db get_account_address_by_address_idCLI entrypoint
- Moves - ExternalAuthstored procs out of dev_only
- Adds fields to - AdminUserLogon.getresponse
- 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 - @cachekey naming
- Fixes a bug with - message_bus.encryptand- message_bus.decryptif calling- message_bus.CIPHER.calc_hmacdirectly
Changed
- Internal organization of - q2 tectonentrypoint
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 - HostAccountClickTypeDbObject.
- Adds - create,- updateand- deletemethods on- HostAccountClickTypeDbObject.
- Adds - add_or_update_third_party_datacli entrypoint to- ThirdPartyDataDbObject.
- Adds - add_or_updatemethod to- ThirdPartyDataDbObject.
- (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 - --levelflag to q2 vault cli
- Adds accounts related extension outlets to tecton CLI. 
- mock_q2_requestdecorator now provides- enable_soap_wrapper,- enable_api_wrapper, and- version_numberhelper params
- UiConfigPropertyData InstallStep now has context of - is_centralto 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 - getmethod to- GtFlavorDbObject.
- Adds - get_gtflavorscli parser to- GtFlavorDbObject.
v2.272.0 - 2025-06-09
Added
- Adds a - q2 sandbox transaction_datefor 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_compressvariable which when True now automatically zlib compresses the message if it’s size >- MIN_ENCRYPT_SIZEbytes
- Adds - SystemPropertyDataWithReferencesDbObject.
- Adds - HostAccountDataElementWithReferencesDbObject.
- Adds - ZoneSystemPropertyDataWithReferencesDbObject.
- Adds - extension_namevariable 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_cifparameter to update method of User DbObject.
- Officially moves EDV, Instant Payments, and External Auth out of beta 
- Adds a - HostTranCodeGroupInstallStep into DbPlan
- Add indexes to the - sdk_OAuthTokentable
- 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 setupon 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_nameto- mfa_validation_requireddecorator.
- External MFA extensions now include a - self.mfa_infoobject, 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_cachemethod.
- q2 create_extensionno 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_ipsmethod no longer returns empty list when invalidating hq cache.
- q2 add_dependency —searchnow handles error.
- q2 insight loginnow stores token.
v2.267.0 - 2025-05-07
Added
- Adds - link_vendor_to_producton- ProductDbObject which allow- Account Detailsextension work as sso.
- Adds support for setting service base URL from environment variables for - Q2configtype extensions
- Adds - authenticatemethod to Insight API login wrapper to get more details from the response
Fixed
- Installing - AuditActionextension type for- ExecuteWedgeRequestis now not allowed
- Fixes - q2 test -—coveragewhen no python modules are found
- Improves startup time on - q2 run
- Fixes implementation of - get_tracermethod in- Q2TracerProvider
- q2 add_to_naventrypoint 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_ACTIONSfield which allows adding list of custom audit actions.
- Adds overpanel display options to - q2 tectoncli 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 - ChangeUserLoginNameand- ChangePasswordactions
- EDVRequestnow also tracks- is_prelogon_session,- is_csr_assist_session, and- audit_idif available from HQ
v2.265.0 - 2025-04-09
Added
- Adds - with_recipient_idboolean parameter to- get_ach_detailsmethod 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 - overpanelReadyproperty from tecton entrypoint
v2.264.0 - 2025-04-07
Added
- Adds caching to - self.vault
- settings.DEPLOY_ENVis now an enum of the environments (DEV/STG/PROD)
- Errors on customer creation from - EnrolledEntitywill be logged at the exception level along with returned in the response to the caller
- Adds - GTFlavorIDfield to- GeneratedTransactionsRowDbObject
- Adds - get_by_id,- add, and- updateto ObjectGroup DbObject
Fixed
- Fixes lingering issues with cache scoping 
- Fixes issue with - q2 update_installedaround- q2_configextensions
- Updates - HolocronURLs to default to AWS versions
- Handles bug where unescaped data might show up in - AuditDetailshandler input
- Fixes bug with - q2 checkand newer- q2-tecton-sdkversion strings
- Cleanup and testing on the builtin jinja, html, and javascript templates generated by the SDK 
v2.263.0 - 2025-03-28
Added
- Adds - ttlYearsto ArdentFs endpoints for long term storage
- Adds - change_account_productmethod to- HostAccountDbObject
Fixed
- Fix syntax error with generated - package.jsonintroduced in 2.262.0
Security
- Adds stack/service/session level scoping to self.cache (for parity with - @cachedecorator)
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_planentrypoint 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_formwith undefined variables
v2.260.0 - 2025-03-06
Added
- Adds - require_token_if_not_suspectto add method of- EDVDetailDbObject.
- Adds - **kwargsfor- call_hqmethod signature in DbObject
Fixed
- Fixes default value of - token_life_in_minutesto 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_asyncmethod 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
- OnlineUsernow 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 
 
- addmethod on- LinkedAccountDbObject 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_recipientson- RecipientDbObject 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_credswill now include the- env_stackif available
- Adds a - get_system_notificationsmethod to- MarketingPageNameDbObject
- Adds an - updatemethod to- DatafeedDbObject
Changed
- Instant Payments now handles - allow_expiry,- require_expiry,- allow_requested_execution,- allow_amount_modification, and- require_amount_modificationas properties of the handler, used at install time, rather than in the- q2 sandboxsubcommand
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.cssto- main.cssagain (since 2.255.0)
- Changes to allow multiple addresses to be associated to an account using the - account_addressdb 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_coreflowtutorial
- Documentation string improvements on - self.get_tecton_form
- Adds - delete_all_for_vendormethod to- ThirdPartyDataDbObject
- Adds a new setting - INCLUDE_QUERY_PARAMS_IN_LOGSto toggle this behavior
- Adds a new environment variable - Q2SDK_INCLUDE_QUERY_PARAMS_IN_LOGS
- Adds a - main.cssfile to SSR frontend directories
- Central handler Description field adds appropriate attributes on install 
Fixed
- Updates - q2 sandbox external_mfacommand 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 - AdminUserLogonDbObject 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 - EdvProfileDbObject.- get_edv_profile_by_profile_id
- get_edv_profiles
 
- Adds new cli entrypoints: under - EdvDetailDbObject- add_edv_detail
- get_edv_detail
- remove_edv_detail
 
- Adds new method - update_groupto- GroupDbObject.
- 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.pinionproperty on the handler
- Adds - self.cacheproperty 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 - Addressand- AccountAddressto 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_dataon- AdminUserPropertyDataDBObject.
- Adds new method - get_all_group_propertieson- AdminUserPropertyDataDBObject.
Fixed
- Fixes bug with blank text value on - NavNodeDbObject.
- External MFA adapter now checks for “product_type_id” and installs properly. 
- local-dev-apinow handles query params escaping.
- Fixed - package.jsontemplates 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 - Emailobject in- DemographicInfowith- is_sac_targetboolean
- DemographicInfonow accepts- Emailobjects 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 - AcceptIncomingRealTimePaymentTransactionto 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_idis now returned with UserDemographicData DbObject’s- getmethod
- Adds - get_by_loginto- AddressDbObject 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=Truein 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_installednow shows InstantPayment handlers even if not in the current repo.
v2.247.0 - 2024-11-14
Added
- Adds - q2 sandbox external_mfacommand (referenced in tutorial)
- Adds - --patchand- --forwardflags to- q2 insight get_db_listcommand to show more environment keys
- Adds - SSOIdentifierfilters in- PolicyDataDbObject
- Adds flush layout support for Tecton Server Side Rendered extensions through the PAGE_PADDING boolean in the handler 
- UiConfigPropertyData.createadds an- is_centralparameter to pass the BackOffice UiSource type
Fixed
- Fixes a bug - GeneratedTransactions.get_transactions_by_date_range_with_gt_datawhen 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 insightcli 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_notificationon Notification DbObject.
- Adds - get_notification_statuscli entrypoint on NotificationStatus DbObject.
Changed
- well_known_urlis now deprecated on- Oauth2Configexternal auth hq model.- jwks_urlis used instead.
Fixed
- audienceclaim is now exposed on ExternalAuth adapter.
- Adds support for zoned wedge address configurations. 
- Tecton Handler now properly extracts MFA information. 
- Update operation on - ProductDbObject now checks when VendorID is None.
- DebtorAgentand- CreditorAgentare 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_datafor further performance gains
- Adds - get_category_by_shortnameto- UserPropertyCategoryDbObject
- OpenTelemetry will now receive a ServerStart from the SDK on boot 
Fixed
- Less summary log spam for /inspect and /status endpoints 
- Improves performance of - GeneratedTransactionDbObject database calls
v2.242.0 - 2024-10-15
Added
- Adds - updatemethod to- ProductDbObject
- Adds - q2 db update_productCLI 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 - isLogonnode to- Falsein- create_loginand- create_userexternal auth routes
- FxRatesmock endpoint on- local-dev-apinow 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_adminas 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_loadeddecorator in- q2_sdk.hq.db.db_object_factorywhich allows lazy loading dbobjects through- self.db
- Adds new cli endpoint - update_customer_dataon- CustomerDataDbObject.
Fixed
- Fixes an issue with the online_installer where is_mfa can possibly be unbound 
- Fixes duplicate results when using - get_ach_detailsmethod of Transactions DbObject.
v2.240.1 - 2024-09-27
Fixed
- Fixes missing - External Authenticationfrom 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: - AdminLogonsand- CsrNote
- Adds new cli entrypoints: - get_csr_note- create_csr_note- delete_csr_noteunder CsrNote DBObject.
- Adds new cli entrypoint - get_admin_logonsunder 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.instrumentnow warns if the attribute length is longer than the one assigned to- OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITenv 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_dependencynow has a- --searchflag
- Adds q2msg>=1.26 as a dependency of the SDK itself 
Fixed
- q2 checknow checks for- picklelibrary import.
- q2 lintnow rewrites pyproject.toml more efficiently
- get_recipientsmethod no longer errors out when we retrieved using customer_id.
- Fixes bug when installing - deposit_item_imageextension 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 - ExternalAuthDbObject
- Adds new - q2 sandbox external_authsubcommand
- Adds pyjwt to SDK dependencies 
Fixed
- Fix pipeline to handle - q2-sdk[sso]==x.x.xsyntax in requirements files
- Only check datafeed on q2 run for unauthenticated extension 
Changed
- Updates existing - q2 sandbox auth_tokento pass- --use-symantecfor Symantec type auth tokens
v2.236.0 - 2024-09-03
Added
- Adds - IsOpenBankingcolumn to- UserDbObject 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_GetCustomersByCreateDatePaginatedstored procedure
- Fix - q2 upgradecommand’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_namecli entrypoint argument name.
v2.234.0 - 2024-08-20
Added
- Adds - get_by_request_type_namemethod 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_paymenthave been renamed to- instant_paymentscli 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 disablenow 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.deletefor use in production
- Adds - IsOpenBankingattribute to the- UserRoleget 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_listendpoint 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 formatentrypoint to facilitate quick code formatting across the entire codebase
- (Internal Q2 Devs) Adds support for Holocron - an internal Q2 configuration database 
- Adds - IS_UNAUTHENTICATEDto the running server’s inspect endpoint
Fixed
- Fixes a bug with Customer DbObject’s - move_many_to_groupwhere customerId was cast as the wrong type
- Passing in - User-Agentto q2_requests headers will override the default (python-q2-requests/<sdk_version>)
v2.231.0 - 2024-07-26
Added
- (Beta) Adds - RequestForPaymentResponserequest type which stores response for- RequestForPaymentrequest.
- q2 setupnow has functionality to set multitenant flag to True.
- Adds new method - get_pending_transactionsto- GeneratedTransactionsDBObject.
- Adds - AuditCategoryInstallStep.
- Adds - GtFlavorInstallStep.
- Adds new subparser - gt_flavorto- sandboxcli entrypoint.
- Adds - AuditCategoryDBObject.
- Adds - GtFlavorDBObject.
Fixed
- get_ach_detailsmethod of- TransactionsDbObject now returns- RecipientIDin the result.
- NavNodeDBObject now allows adding and editing- available_for_landingvalue.
- `get_pending_by_customer - method ofCustomer- DBObject now properly converts customer ids toint``.
Changed
- NOTE (Beta) - RealtimePaymentRequesthas been renamed to- RequestForPaymentRequest.
v2.230.0 - 2024-07-22
Added
- HostAccountDataDbObject’s- .getmethod now has a- overlay_rt_tableparameter which defaults to True. If enabled, will overlay data from the- Q2_HostAccountDataRTtable
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_installedno longer causes error when adding groups to a Form if the value of UserPropertyData is False for that group.
- Adding - Q2Span.instrumenton route no longer causes error.
- Moving many customers will no longer error out if deleted date is null 
- UserDBObject- getfunction now properly handles missing parameters
v2.228.0 - 2024-07-12
Added
- Adds - .store_in_hqand- .from_externalmethods 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_dbnow has a- --no-websocketflag 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.dbsupport to entrypoints for easy access to instantiated DbObjects
- Adds - .get_accounts_by_productmethod to HostAccount DbObject
Fixed
- Eliminates charset normalizer warning message showing up in the logs on every HQ call 
- Fixes - q2 upgradecompatibility with- pipversions >=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 - UpdateCustomerWithAccountEditendpoint to BackOffice endpoints.
Fixed
- SSOSessionobject now has a- session_idattribute so that now- self.session_cachecan be used on- Q2SSORequestHandlertypes.
- Opentelemetry tracing is now enabled on entrypoints when - Q2SDK_ENABLE_OPEN_TELEMETRYenvironment 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_planwith exit code -9 will log OOM exceptions appropriately
- Testing - clean_environmenthelper 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.12command
- caliper_adminscript updated to reflect python3.12 additions
Changed
- Removed dependency on - samlpackage. It is now embedded in the SDK itself.
v2.223.0 - 2024-06-11
Added
- Adds - filter_out_deletedand- group_idfilters to- Customer.search_by_create_datemethod
Changed
- Increase default Vault connect timeout from 1 to 3 seconds 
Fixed
- Adds - TECTON_BETAinto the Q2TectonBaseRequestHandler
v2.222.0 - 2024-06-06
Added
- RealtimePayment Adapter now sends q2msg in response if - application/q2msgis present in request headers.
- Adds new subparser - push_notificationto- sandboxcli entrypoint.
- Server type online extensions now has - TECTON_BETAfeature.
v2.221.0 - 2024-05-29
Added
- Adds - use_session_cacheparameter 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_CONFIGSblock
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 checkwill validate only a single lockfile exists per extension
- HostAccountRow now has a - .ProductNameand- .ProductNickName
- SSOAcount now has a - .aba
- HostAccountDataElementDbObject adds a- createmethod
- Adds a - host_account_data_elementsInstallStep that can be used in DbPlans to create them on install
Fixed
- Customer - get_pending_by_customermethod now property decodes the utf8 string in the response
- Fixes a bug with - DbPlanCustomInstallSteps 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
- NavNodeDbObject 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. 
- UserPropertyDataDbObject adds a- .get_by_group_with_idmethod to get UserPropertyData Rows related by group
Fixed
- Fixes a bug with - q2 setup_dbthrough local dev api websocket that wouldn’t install dev only stored procs
- UserPropertyDataElementinstallstep 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 tectoncommand prompts.
v2.216.1 - 2024-04-25
Fixed
- Backofficetype 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 sandboxcommand now has a- realtime_paymentmenu
- q2 sandboxcommand now has a- q2msgmenu for integration with Q2’s internal security signing package
- Adds a dev_only - updatemethod to- SystemPropertyDataDbObject
- New Backoffice HqApi endpoints: - GetAllGeneratedTransactionsForProcessing 
- GetDataSet 
- GetDataSetFiltered 
- GetGeneratedTransactionsForProcessingById 
- GetGeneratedTransactionsForProcessingByProcType 
- GetGeneratedTransactionsForProcessingByTranType 
- GetGeneratedTransactionsForProcessingByTranTypeWithMax 
- ProcessGeneratedTransactions 
 
Fixed
- Fixes for - add_policy_data_to_entitymethod for- Datanode case
- Fixes for - PolicyData.setmethod 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_cacheadds 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 - omittedsection on the GroupMoverResponse returned from the- move_many_to_groupmethod
- Adds an - omit_pendingboolean to the- move_many_to_groupparameters to facilitate moving as many customers as possible while still retaining a list for later debugging
- Adds a - get_pending_by_customermethod to- CustomerDbObject 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_localis False but the- VAULT_LOCAL_DIRis defined,- Q2Vaultwill no longer try to use local
- DisclaimerDbObject’s- .createwill properly detect if a disclaimer already exists after being installed with newer Form PropertyID method
Changed
- caliper_adminscript will no longer allow creation of repos directly in the home directory without a parent directory
- q2 create_extensionnow 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 sandboxCLI 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 
- SSOUserobject (self.online_user in SSOHandler types) now has a- self.user_guidproperty
- Docs: Improvements to the parameters and samples for the most common HQ endpoints section 
- Docs: Improvements to the - Customer.move_groupand- Customer.move_many_to_groupdocstrings for clarity
Changed
- q2 db enable_symantec_tokens_for_useris now- q2 sandbox enable_auth_token
- q2 db disable_symantec_tokens_for_useris 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_idmethod to the- UserPropertyDataElementDbObject
- 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_headersnow correctly expects a session_id positional param
- q2 loginnow works from zerostate again (no username yet configured)
Changed
- WedgeAddress.deletemethod is no longer dev_only
v2.211.0 - 2024-03-11
Added
- Adds a new - @cachedecorator in- q2_sdk.core.cacheto handle caching a function level
- Adds aws datacenter URLs to the - invalidate_hq_cachemethod
- Adds - AdminUserPropertyDataElementInstallStep (for BackOffice based DbPlans)
- Adds - FeatureGroupUserand- FeatureGroupto- UserPropertyFeatureEnum
- DB update to - oauthscripts to alias Expiry column to an appropriate name
- Docs: Added - Secure Code Reviewsection to- Review and Deploymentdocs
Fixed
- Fixed a bug with - q2 uninstalland- q2 removed_from_navthat could find a missing UserProperyData row due to order of operations
- EstatementDbObject now correctly serializes ProcessedDate as a- StringElement(rather than- IntElement)
- Fixes a bug in - calculate_urlmethod 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 - NotFounderrors 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
- RecipientDbObject adds a- get_recipientsmethod
- Adds - q2 db get_by_recipient_idCLI entrypoint
- Adds - q2 db get_recipients_by_customerCLI 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_dbinstalling- 10-remove_user_property_data_element.sql
- Enums are now able to be passed to - HqApicalls when appropriate
- CurrencyExchangeRateDbObject can now be serialized as a RepresentationRow Table object
- q2 loginnow works if you type in a capital letter in your email address
v2.209.1 - 2024-02-22
Fixed
- \xa0byte (non breaking space) is now replaced with a space in Tecton forms
- q2 developer services_statusis now callable from the CLI without a stack trace
v2.209.0 - 2024-02-15
Added
- Adds - deletemethod on- HostAccountDataDbObject.
- Adds - delete_all_property_datamethod on- UserPropertyDataDbObject.
Fixed
- Fixes bug with sqlalchemy when installing SDK. 
- Fixes bug with retrieving all the currency codes with - IsValidForIntWiresvalue True.
- self.flush is now supported through local-dev-api. 
- caliper_adminnow prompts (y/n) before installing frontend dependencies.
v2.208.1 - 2024-02-07
Fixed
- Outgoing - q2_requestscalls now has accurate version of- q2-sdkattached in the- User-Agentheader.
- Fixes timestamps on - saml_responseto 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 - DbConfigsupport on Adapter handlers.
- q2 run_db_plannow has an option to force update the uitext value.
- Adds - InitializeDatalifecycle 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 changelogwill now generate a version.txt file compatible with the gitlab phoenix pipeline
- UserDataDbObject’s- get_by_short_name_paginatednow accepts a list of short names to query many at once
- UserDataDbObject now has a- get_by_short_name_countmethod
Fixed
- q2 insightCLI command now serializes columns with correct spacing like other DbObjects
- self.db.host_account_data.getno longer returns an empty dataset if data is indeed available
v2.206.0 - 2024-01-10
Added
- Adds - get_customer_host_accountsmethod on- HostAccountDbObject.
Fixed
- Fixes bug on - EnrolledEntitywhen checking for existing values.
- Fixes bug on - inspectand- statusendpoints to respect- Acceptheader.
v2.205.0 - 2024-01-02
Added
- caliper_adminnow 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 - EnrolledEntityDbObject.
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
- GeneratedTransactionRightspolicy_data objects now grab- RuleDatafrom HQ
- Introduces - q2 developersubcommand with initial support for logging in and getting services
- Improves logging on - CustomerDbObject’s- move_many_to_groupmethod
Fixed
- Fixes a stack trace on - HostAccountDataDbObject’s- getmethod if no data is returned
- Fixes an uninstall bug in OnlineInstaller when called from an outside service (such as Caliper Deployment Manager) 
- Formnow 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_usernow 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_usernow has a- .user_guidproperty for guaranteed uniqueness, useful in multitenant setups
- q2 db get_audit_actionsnow shows- BeforeActionWedgeAddressIDand- AfterActionWedgeAddressIDcolumns
- 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 checkcommand in version- 2.201.1.in the- check_no_dangerous_codecheck
v2.201.1 - 2023-11-21
Fixed
- caliper_adminwill now create a new git repo even when starting a branch new project
- Fixes bug with - AuditDetails’s- populate_from_hqmethod 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 runrequires- q2 loginas a prerequisite
- q2 runwill now properly monitor for changes to .nvmrc to trigger rebuilds
- q2 runwill now properly generate a- .build_hashfile on frontend build again
- EstatementDbObject now properly serializes OptIn property as a Boolean
v2.201.0 - 2023-11-13
Added
- Adds a - USER_PROPERTY_DATA_ELEMENTvariable on form and sso extensions to set custom user_property_data_element name.
Fixed
- Fixes circular import error when - Productdbobject is imported.
- The groups associated to a Form are now correctly retrieved if - PropertyValueis True on that related UserPropertyData table.
- Fixed a thread safety bug where - self.cache.get_asyncwould 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_URLis set.
- q2 run:- nvm installcommand 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-apinow uses database creds from q2developer.com when running- q2 setup_dbthrough the websocket
- Adds - pyproject.tomlfile 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) 
- PhoneNumberDbObject now accepts- extensionparameter in- add_phone_number
Fixed
- GetHostAccountByExternalNumber now handles empty strings as external number 
- q2 get_installedno 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-blockto- q2 runcommand. If enabled, only your originating IP address will be allowed to call back to your server.
- Introduces the - q2 create_lifecycle_scriptsentrypoint for convenient hooks on server startup/shutdown
- Formand- VendorDbObjects add a- with_groupsboolean to the- .getmethod
- vault.get_certificate now works in a multitenant context 
- Adds support for - Q2_ZoneSystemPropertyDatatable by adding a- ZoneContextparameter to- SystemPropertyData.get()
- Adds the new - ZoneDbObject for querying the- Q2_Zonetable
- Adds the - q2 db get_zonesCLI command
- Adds the - --zone,- --zone-by-group, and- --include-zonesflags to the- q2 db get_system_property_dataCLI command
- UserLogon.get_login_by_name()now has an- include_deletedboolean flag which defaults to- False
Fixed
- Substantially speeds up - q2 install,- q2 uninstall,- q2 get_installed, and- q2 update_installedcommands by only querying for group associations when asked
- q2 remove_from_navnow 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_usernow prefers- .as_demographic_infoto- .demographic_infofor clarity of intent
- AuthTokenHandlers now have a- self.incoming_requestwith information about the logged in user
- PhoneNumberDbObject now has an- .update_customer_phonesmethod
- EnrolledEntityDbObject’s- .grab_customer_datanow supports international addresses
Fixed
- UserLogon’s- get_login_by_namenow properly handles deleted users
- Empty DbPlans no longer result in account lists not being sent from HQ 
- Fixes a bug with - CustomerDbObject’s- .update_customer_addressthat was not setting the City
Deprecated
- self.online_user.demographic_infois 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_rangemethod
- Estatement DbObject adds - add_or_updatemethod
- The - /inspectendpoint 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 
- CustomerDbObject adds the- update_customer_addressmethod
Fixed
- UserDemographicDataDbObject’s- validate_addressestakes 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 checkwill catch another form of HQ_CREDENTIALS hardcoding in the settings file
v2.195.0 - 2023-09-22
Added
- q2 invalidate_hq_cachenow also invalidates- UiTextBundles
- q2 installnow also invalidates UiTextBundles from hq cache
- UserLogonDbObject’s- validate_passwordmethod now accepts a ZoneData object, adding Zone support
Fixed
- HQ_CREDENTIALSwill now always be present in the settings file when running tests (more pipeline failures)
v2.194.1 - 2023-09-20
Fixed
- self.hq_credentialsno longer retuns None on- q2 dbentrypoint.
v2.194.0 - 2023-09-19
Added
- q2 add_dependencynow has- --devflag to add dependency to requirements_dev.txt instead of requirements.txt
- q2 testnow has- --no-frontendand- --no-backendflags to limit testing.
- q2 create_extensionnow 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 testnow 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_CREDENTIALSvariable 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_requestswould not upload files through ArdentFS (since 2.190.1)
- Better type hinting on ArdentFS file upload function 
- caliper_adminscript improvements for Q2 VPN network
- Q2Cache’s- flush_allfunction only attaches to memcache in DEBUG mode
- Q2Spandecorator 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
- BackOfficeParamsObjwill now use the reported_hq_url from the incoming request unless specifically overridden
- BackOfficeHqCredentialsnow handle- LoginPasswordStatusExpired,- AdminTokenRequired, and- AdminTwoTokensRequirederrors explicitly
Added
- Adds sdk.error_type OpenTelemetry tag to capture exceptions raised by the SDK code at runtime 
Changed
- Calling - get_backoffice_credentialson an already existing- BackOfficeHqCredentialsobject will now raise an exception to just use the object
v2.192.1 - 2023-08-31
Fixed
- Fixes bug on - session_cachewhen retrieving keys.
- Fixes timeout issue on local dev. 
v2.192.0 - 2023-08-25
Added
- HostAccountDbObject now has a- .update_account_rightsmethod
Fixed
- FxRate Adapter Handlers no longer generate with a unimported datetime module 
- caliper_adminswitch_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 
- AddressDbObject 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_LIMITproperty in settings to control the split threshold
- Periodic Jobs now respect log filters 
- q2 add_to_navnow 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 checkwill no longer break on embedded strings that contain the substring ‘print’
- Calling - get_tecton_formmultiple 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_requestscalls will now log all kwargs, including files
- Form updates through dbplan now correctly set AccountRightsBitFlag 
- Form.updatenow 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_credsnow 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_userno longer requires a group_id parameter
- Stored Procedure names will only be logged in - q2 runrather than all entrypoints
v2.189.1 - 2023-07-31
Fixed
- UuxUserPropertynow automatically invalidates cache on install.
- Ardent type extensions now support logging - fi_numon multitenant extensions.
- Fixes bug while updating Ardent type extensions. 
v2.189.0 - 2023-07-14
Added
- q2 create_extensionclient side rendered option will now prompt for- Integrate with Vue
- CSR generation with - Integrate with Vuewill now generate- vite.config.jsfile.
- Groups can now be added during sso extension type installation. 
Fixed
- Adds default value for - FRIENDLY_NAMEon handler.
- Handles type casting of - expiryargument on- add_oauth_tokencli endpoint.
- Handles historic repos with - q2_coresin the- COREvariable in settings.py file
- Tecton version is now available for all extension types. 
v2.188.0 - 2023-07-10
Added
- Adds - get_by_userand- get_by_idmethods on- OAuthLookupDbObject.
- Adds - UserPropertyCategoryDbObject.
- Adds - create_user_property_categoryand- get_user_property_categorycli endpoints to- UserPropertyCategoryDbObject.
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_NAMEnow falls back to vendor name if it is not set on SSO extension.
v2.186.0 - 2023-06-27
Added
- Adds - get_user_emailmethod on- EnrolledEntityDbObject.
- Adds - get_list_of_associated_logonson- UserLogonDbObject.
- Adds - search_userscli endpoint on- UserDbObject.
- Adds ability to create new extension type - Caliper API Custom Endpoint.
- Adds - CaliperApiCustomEndpointsDbObject.
- Adds - get_caliper_api_custom_endpointsand- get_caliper_api_custom_endpointcli endpoints on- CaliperApiCustomEndpointsDbObject.
Changed
- Multiple extension types are now bundled together in create_extension entrypoint 
Fixed
- Fixes logging endpoint to reset log level after 5 minutes 
- q2 checknow fails on a missing core configuration file.
- Empty - GTValuesare now excluded when retrieving user data using- get_by_short_name_paginatedon- UserDataDbobject.
- caliper_adminnow prompts to provide a name for virtual environment.
- Fixes bug on setting - REPO_NAMEenvironment variable when repo_name is passed as a cli argument during- q2 run.
v2.185.0 - 2023-06-20
Added
- q2 inspectnow 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 - q2command 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_numinside summary_line message.
- Adds - EStatementDbObject.
- Adds - get_e_statementcli endpoint to- EStatementDbObject.
Changed
- Refactors - q2 cacheendpoint.
Fixed
- Fixes return rows type on - GeneratedTransactionDbObject.
v2.183.0 - 2023-06-05
Added
- Adds - get_by_property_idmethod- UserPropertyDataDbObject.
- Adds - get_host_account_datacli endpoint to- HostAccountDataDbObject.
- Adds - updatemethod to- HostAccountDataDbObject.
Changed
- q2 installwill now use- PropertyIDcolumn of Q2_Form table instead of Q2_FormToGroup when appropriate.
Fixed
- Fixes bug to handle - LookupErrorduring 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_dictmethod to PolicyData object
- q2 checkcan 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_userscli endpoint on- UserDbObject.
- Adds - get_account_related_usersand- get_manymethods on- UserDbObject.
- Adds method - seton- PolicyDataDbObject.
v2.180.2 - 2023-05-12
Fixed
- Fixes bug with wsl not returning results on - which ifconfig.
Changed
- REPLAYlogs no longer shows up when- Q2SDK_LOCAL_DEVis set to True.
v2.180.1 - 2023-05-05
Fixed
- Home directory alias - ~will now be expanded in local vault operations
- q2 setup_dbnow works again through the local dev websocket
Added
- caliper_adminwill now offer to update the repo’s SDK version on clone
- caliper_adminwill now detect and update your git configuration if missing
v2.180.0 - 2023-05-03
Added
- CustomerDbObject adds a- searchmethod
- CurrencyExchangeRateDbObject adds a- createmethod
- UserDataDbObject adds a- get_by_create_date_rangemethod
- UserDataDbObject adds a- get_by_short_name_paginatedmethod
- New CLI entrypoint - q2 db search_customers
Fixed
- Very large files can now be transfered through the local dev api websocket connection 
- caliper_adminscript will no longer say memcached started successfully if it didn’t
v2.179.0 - 2023-04-27
Added
- GeneratedTransactionsDbObject now has a- get_transactions_by_date_range_with_gt_datamethod
- Adds - CurrencyExchangeRateDbObject 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_multimethod to UserData DbObject
- Adds - q2 db get_user_data_allCLI command
- Adds - q2 db get_customer_data_allCLI command
- Adds - get_active_users_sincemethod to UserLogon DbObject
- Adds - q2 db get_active_users_sinceCLI command
Changed
- UserPropertyDataElement.uninstallwill 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 - UUXPayloadInstallSteps that could lead to javascript errors on the front end
- CacheMock class no longer breaks if - kwargsis- 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.11command
- caliper_adminscript 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 
- /loggingendpoint now has an input to toggle response logging temporarily for debugging purposes
Fixed
- Fixes a bug with - q2 cachewhich could lead to local cache corruption
- q2_sdk.core.cache.get_cachewill automatically detect if running in test mode
Changed
- q2 testcalls 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_rangemethod
v2.173.0 - 2023-03-26
Added
- Adds - add_phone_numbermethod to- PhoneNumberDbObject.
- Adds - add_phone_numbercli endpoint.
- Adds - q2 cachecli entrypoint which has options to- get,- set,- delete,- --viewand- --clearcache.
Fixed
- q2 uninstallnow handles when- db_planis not present.
- Fixes bug while retrieving - PasswordPolicydata with group_id.
- Fixes bug ‘emails’ being referenced before assignment on - EnrolledEntityDbObject.
- Fixes bug to allow serving assets when calling extension on mobile app. 
v2.172.0 - 2023-03-22
Added
- UserPropertyDataElementDbObject adds the- .updatemethod for changing descriptions
- Adds - q2 db update_user_property_data_elementcli command
- CustomerDbObject adds- get_manymethod to retrieve multiple at once
- CustomerDbObject adds- move_many_to_groupmethod to efficiently call GroupMover for multiple customers
- Adds - PasswordPolicyDbObject with- getfunctionality
- UserLogonDbObject adds a possible- group_idto the- generate_passwordmethod
- GeneratedTransactionsDbObject adds a- get_by_create_date_rangemethod
- 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_userentrypoint
- Adds the - q2 db disable_symantec_tokens_for_userentrypoint
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_detailsmethod 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_sincemethod 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 checknow checks for print statements with additional spaces.
- SSO extensions now respect - FRIENDLY_NAMEvariable during installation.
v2.168.1 - 2023-02-22
Fixed
- Fixes datatypes in - SecAlertUserPrefDbObject while adding data.
- Limits size of data being added to that present in table while creating - UserData.
- Fixes - installstep on- UUXPayloadwhen- Q2_SECURITY_SECURITY_THIRD_PARTY_HTML_BLOCKis 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 checknow checks for print statements.
- Adds - from_jsonmethod to- DbPlanclass.
v2.167.3 - 2023-02-08
Fixed
- q2_requestsnow sends the- 500status when there is no response.
- local_dev_apiproxy now allows multiple simultaneous requests.
v2.167.2 - 2023-01-30
Fixed
- q2 bounce_stackno 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.2are 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 lintby switching to Ruff linter (https://pypi.org/project/ruff/)
- q2 checkwill 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_logonnamemethod
- Adds - q2 db change_user_logon_nameCLI entrypoint
- Insight DbList rows now have support for multiple customer keys in line with Insight API upgrades 
Changed
- pylinthas been replaced everywhere with- ruff
- VSCode helper files have been updated to prefer Ruff 
Deprecated
- pylintis 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_sincecli endpoint to- UserLogonDbObject.
- Adds - get_by_idmethod on- GroupDbObject.
- Adds documentation on webhooks. 
Fixed
- Fixes bug with deleting phone numbers using - delete_phone_numbercli endpoint on PhoneNumber DbObject.
- validate_is_treasuryand- validate_is_companynow work with deleted groups in the system.
- TableRow DbObject now treat booleans as booleans. 
v2.165.0 - 2023-01-13
Added
- Adds - MarketingPageNameDbObject.
- Adds - get_marketing_page_nameand- add_marketing_page_namecli endpoints.
- caliper_adminnow has- sync_system_certsoption for better certificate management using WSL.
- caliper_adminnow has- verify_connectivityoption to check for connectivity issues.
- UserPropertyDataElementDbObject now has- get_user_property_data_elements_by_categorycli endpoint.
- Adds - get_by_category_namemethod to- UserPropertyDataElementDbObject.
- /inspect/<extension_name>endpoint now shows- marketplace_features.
Fixed
- Fixes bug with setting HqCredentials properties from a passed in InsightCustomerKey. 
- hq_credentials.get_build_numbernow uses WedgeOnlineBanking GetHqVersion if possible
- Fixes type hinting of - HostTranNumberon- GetAccountHistoryByIdand- GetAccountHistoryByIdWindowedresponses
- Fixes type hinting of - Cif,- CifExternaland- CifInternalon- GetAccountsresponse.
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_DEVsetting 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
- HqCredentialsnow have- db_schema_nameand- env_stackproperties
- self.hq_credentialswill automatically be populated with- customer_key,- database_name,- db_schema_name, and- env_stackin HqHandler type extensions
- It is now possible to rate limit individual functions with the - q2_sdk.core.rate_limiter.rate_limitdecorator
- RateLimitercan 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_extensionCLI command to efficiently remove an extension from your codebbase
- q2 run_db_plannow takes a- --custom_onlyparameter to only run custom install steps
Fixed
- dist directory will be property created for server side rendered extensions on - q2 create_extension
Changed
- /dbplanendpoint will run custom install steps only by default (overrideable by passing in- run_all_install_steps=trueas a query parameter
v2.161.0 - 2022-12-19
Added
- Adds - EnrolledEntityDbObject.
- 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_typemethods on- EnrolledEntityDbObject
- Adds logging to - Q2AdapterRequestHandlerto 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_CONFIGSnot showing up in cli during- q2 installand- q2 update_installed.
- Refactors code for setting span attributes for opentelemetry. 
- Fixes bug on - addmethod of- LinkedAccountDbobject which now checks for datatype of parameters.
v2.160.0 - 2022-12-13
Added
- AccessCode.create_targetswill now validate the type is Voice, Sms, or Email
- Adds - PasswordHistoryDbObject
- Adds - q2 db get_password_historyCLI entrypoint
- NavNodenow returns CssClass column for Central Nav Nodes
- Adds - WireDomesticDbObject
- Adds - q2 db get_wire_domesticCLI entrypoint
- Adds - WireInternationalDbObject
- Adds - q2 db get_wire_internationalCLI entrypoint
Removed
- Removed cruft of - wedge_payload_stored_procin the dbPlan in favor of the newer- payload_stored_proc
Fixed
- UUXPayloadwill 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 - FEATUREkey set to- None
- Older Tecton versions (<1.11.0) now correctly work with - q2-radioelements
v2.159.0 - 2022-12-07
Added
- DbPlanattributes 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_featureguide.
- q2_requestsnow has option for- minimal_loggingto prevent large requests from filling up the logs.
- Q2BaseRequestHandlernow has attribute- sdk_session_identifierwhich can be accesses using- self.
- Adds documentation for - Hydra Product Type.
- Adds - HydraProductCodeshq 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_UNAUTHENTICATEDvalue 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_HANDLERequal to your own class in urls.py
- q2 inspectnow has a- --my-iptoggle to print the machine’s address according to the SDK
- Adds - q2 db get_account_address_historycli entrypoint
- Adds - get_historyto- AccountAddressDbObject
Changed
- q2 bounce_stacknow polls for the stack to become healthy again
Fixed
- Fixes bug with - q2 update_installedand Client Side Rendered extensions that would expect- HQ_AUTH_TOKEN_TYPEto be defined in the extension
- Fixes bug with - q2 db remove_date_feed
- HostTransactionHistorynow works with BigInt as transaction_id
- Fixes bug with - AccessCodeDbObject 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 - FundsTransferDbObject.
- Adds - get_funds_transfer,- get_funds_transfer_by_customer_id,- get_funds_transfer_by_user_id,- get_funds_transfer_by_account_idon- FundsTransferdbobject.
- Adds documentation for - GetAccountHistoryByIdWindowedand- Transactions.
- Adds - Q2SDK_ARDENTFS_URLinside- caliper_admin.
- Unauthenticated extensions( - IS_UNAUTHENTICATED = True) are now inserted into DataFeed table and- HqAuthTokenis ignored.
Changed
- Q2 Caas is no longer supported and - q2_caasmodule is removed.
Fixed
- Fixes default values for - HQ_AUTH_TOKEN_TYPEand- AUTH_TOKEN_LIFE_IN_MINUTES.
- Fixes type of - Q2REQUESTS_DEFAULT_CONNECT_TIMEOUTand- Q2REQUESTS_DEFAULT_TIMEOUTto 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 - HqAuthTokenTypeDbObject
- Adds - q2 db get_hq_auth_token_typeCLI command
- HQ_AUTH_TOKEN_TYPEand- AUTH_TOKEN_LIFE_IN_MINUTESare now configurable on the handler
- Adds - audit_http_headersproperty to self.db helper
- Q2SamlResponsenow has issuer and status_code properties
- q2 checknow 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 tectonnow 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 uninstallagainst 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_actionon- AuditActionDbObject.
- Adds method - update_after_action_waon- AuditActionDbObject.
- Adds new cli entrypoint - get_wedge_addresses_tied_to_auditson- WedgeAddressDbObject.
- Adds method - get_wa_tied_to_audit_actionson- WedgeAddressDbObject.
- Adds advanced DBConfig types for dynamic default values. 
Fixed
- Fixes reset password bug on - UserLogonDbObject by adding missing HQ credentials to- ChangeEndUserPasswordparams.
- 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 Certoption)
v2.154.0 - 2022-11-07
Added
- Adds - AuditHTTPHeadersDbobject.
- Adds - get_session_http_headerscli endpoint on- AuditHTTPHeadersDbobject.
- 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_idnow send a BigInt to match the database schema
- Fixes a bug where hardcoding - FORK_REQUESTSin the settings file but not setting the environment variable would cause the server to not start
Changed
- AuditRecord’s - get_audit_sessionnow returns a list rather than a single record
Added
- svgfiles 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_extensionwith React frontend now provides better IDE hinting helpers
v2.153.0 - 2022-10-28
Added
- Adds - AdminUserDbObject.
- Adds - update_infomethod to- AdminUserDbObject.
- Adds - set_password_status_as_acceptedmethod on UserLogon DbObject.
- Adds - get_users_created_oncli endpoint on- UserDbObject.
- Adds - search_by_create_dateon- UserDbObject.
Fixed
- Fixes bug on - AdminUserLogondbobject while retrieving invalid logins.
Changed
- Refactored backend of - UserLogonDbObject.
- 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 
- HqCredentialswill 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 - createand- deletemethods
- Adds - q2 db create_uux_user_propertyand- q2 db delete_uux_user_propertyCLI commands
Fixed
- Periodic Entrypoints will now use the appropriate log formatter 
- Bugfix for - Customer.move_groupwhich 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_requestcalls do not specify headers
- q2 checkno longer tries to validate non-python files for blocking code
- PasswordPolicy.populate_from_hqmethod will no longer blow up if no password_policies are set
Added
- UserDbObject now has a helper- .deletemethod to call the appropriate Hq endpoint
- Q2Vault.get_certificatemethod 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_finishfunction in fork mode.
v2.150.0 - 2022-10-18
Added
- Adds - delete_accesscode_targetmethod on- AccessCodedbobject
Fixed
- Fixes bug on - AdminUserLogondbobject by cleaning the- LastLogonand- LastFailedtimestamps.
- contains_markupparameter is now case-insensitive while creating UiText object.
- Updates - sdk_AddAdapterAddress,- sdk_AddAuthToken,- sdk_AddCentralForm,- sdk_AddDisclaimersql to confirm with new database structure
v2.149.0 - 2022-10-14
Added
- Adds - ExternalTransactionDbObject
- Adds - get,- get_by_customer_id,- get_by_user_id,- get_by_host_account_idmethods to the ExternalTransaction DbObject
- Adds cli support for the ExternalTransaction methods 
- q2 ceate_online_usernow automatically links accounts from default (retail0) user to the newly created user
- UserDemographicDatanow has a- validate_addressesmethod
- Phonemodel now has a- full_phone_numberfield
- UserDemographicDatanow has a- validate_phonesmethod
Fixed
- UserLogon.reset_passwordno 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 
- PolicyDataDbObject’s- .getwill 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_markupwill now pass it along appropriately to the stored procedure
- message_bus.pushin a live environment now returns the response rather than a coroutine to be awaited
- q2_requestcalls that pass an- oauth_clientnow appropriately retry if unauthenticated responses come back
v2.148.0 - 2022-10-06
Added
- Adds - AdminUserLogonand- PasswordStatusdbobject
- Adds - disable_admin_user,- enable_admin_user,- get_admin_user_logoncli entrypoints to- AdminUserLogondbobject.
- Adds - get_password_statuscli entrypoint on- PasswordStatusdbobject
- Adds check for powershell admin and an additional pip env var - PIP_TRUSTED_HOSTin- caliper_adminscript to improve the internal Q2 vpn setup experience
Fixed
- UserPropertyDatadbobject now accepts- product_idand- product_type_idinside- getmethod.
- Fixes type hint for - Q2SamlResponse.sign
- Fixes - caliper_adminscript to make powershell work on some wonky systems.
- Fixes the return shape of response for message_bus.push during dev. 
- HqCredentials.customer_keynow trims off unnecessary DEPLOY_ENV prefix
Changed
- Updates - vault.get_certificateto set different type hints
- Updates - apikeyfor the APILayer currency data api in the documentation
v2.147.0 - 2022-09-29
Added
- message_bus.pushnow accepts a- krayt_urlparam for overriding the default krayt_url configured with the service
Fixed
- HqResponse objects can now be built by extremely large compressed HQ responses 
- q2 tectoncommand 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- CustomerdbObjects for code clarity
v2.146.0 - 2022-09-20
Added
- CurrencyCodedbobject now has cli implementation via- get_currency_codes
- Adds - self.get_user_dobto- OnlineUser
Fixed
- q2_requestsnow handles non standard HTTP status codes in the response.
- message_bus.pushis no longer blocking in local dev.
- The - getmethod of- UserDemographicDatadbobject can now retrieve response with non-empty- date_of_birth
- The - getmethod of- UserDemographicDatadbobject now return response with Phone that has non-empty- LocalNumber.
- The - getmethod of- UserDemographicDatadbobject now return response with Address that has non-empty- StreetAddress1.
v2.145.2 - 2022-09-16
Fixed
- q2 db update_vendornow 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.deletenow returns a DeleteCustomerResponse instead of the less detailed HqResponse
v2.145.1 - 2022-09-13
Fixed
- Fixed datatype of - created_afterparameter within- search_by_create_datemethod of Customer dbobject
- Fixed - tax_idargument length from 12 to 100 on- getmethod of Customer dbobject
- Fixed circular import bug which occurred while getting updated wedge address url. 
v2.145.0 - 2022-09-07
Added
- VendorConfig.getwill now overlay zoned VendorConfig information if appropriate
- q2 update_installedwill 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_logproperty in each extension
- Customer DbObject now has a - search_by_create_datemethod
- Adds - q2 db get_customers_created_afterCLI 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
- HqCredentialsobject now has a- .database_nameproperty
- HqCredentialswill automatically populate the- database_nameproperty if set in Vault
- message_bus.pushnow allows extra headers to be passed through to KraytD
Fixed
- Fixes a bug with - UiText.createtreating contains_markup as an integer instead of a boolean
v2.142.0 - 2022-08-24
Added
- UiTextDbObject get operations now return ContainsMarkup boolean
- HqCredentialsobject now has a- customer_keyproperty
- Adds - PolicyDataDbObject for interacting with policies surrounding an entity (User/Customer/Group/UserRole/Company)
Changed
- Enabling of CanSubmitForms UserProperty now happens on - form_to_groupupdates 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.createto 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_installedwill prompt you to choose
- Form DbObject’s RepresentationRow now correctly sets - AccountRightsBitFlagas 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_rawno longer breaks if passing- Nonefor prefix
- Fixes import bug with - q2_sdk.models.adapters
v2.141.0 - 2022-08-03
Added
- Adds - q2_sdk.models.saml_response.Q2SamlResponseclass 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_adminsetup_q2_vpn target now works even if Powershell does not have ExecutionPolicy set correctly
v2.140.0 - 2022-07-27
Added
- q2 runnow has a- -n nameflag to override the repo name when using the websocket local dev connection
- Possible to override the websocket connection with - Q2SDK_REPO_NAMEas well
- Adds the - TransactionStatusDbObject to get data from the Q2_GeneratedTransactionStatus Db Table
- caliper_adminscript now supports internal Q2 dev stacks
- caliper_adminscript 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_adminwill no longer print out gross errors after successfully updating
- Fixes bug with - 10-get_user_property_data_by_group.sqlfile to support multiple installations
v2.139.0 - 2022-07-21
Added
- HostTransactionHistoryDataDbObject now has a- .create,- .update, and- .deletemethod
- caliper_adminscript will now offer to remember and autoenable created virtualenvironment on shell start
Fixed
- Fixes bug with - q2 tectoncommand that could raise an exception on multiple prompts
- Improvements to the - group moverfunctionality to handle corporate moves
Changed
- caliper_adminscript’s ‘Clone Git Repo’ changed to the more generic ‘Start New Project’
v2.138.0 - 2022-07-18
Added
- CustomerData DbObject - Adds - .get_by_valuemethod
- Adds - .get_by_short_namemethod
- Adds - q2 db get_customer_data_by_valueCLI entrypoint
- Adds - q2 db get_customer_data_by_short_nameCLI entrypoint
 
- UserPropertyData DbObject - Adds - get_by_groupmethod
- Adds - q2 db get_user_property_data_by_groupCLI entrypoint
 
Fixed
- UserDbObject’s TableRow was mistakenly matching- CreationDateinstead of- CreateDateas the column name
v2.137.1 - 2022-07-14
Fixed
- FORK_MODEwill no longer hold a PID open if an https endpoint is called over http
- q2 create_extensionwill 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 tectonwill now update the database if necessary after changes occur to an extension
- Adds - HostAccountDbObject
- Adds - q2 db get_host_account_by_idCLI command
- q2 checkwill now enforce marketplace enabled repos setting MULTITENANT=True in settings
- Documents - caliper_adminscript in setup docs
- caliper_adminscript now supports memcached on Mac
- caliper_adminscript 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_SOCKETfor 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_adminscript
v2.136.2 - 2022-06-29
Fixed
- Fix a bug with - ProductType.getthat 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 -hwas 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_requestscalls will now log the status code of the response
- Tecton based forms now have support for - q2-radio-groupShadowDom elements
- Adds a - HostTransactionHistory,- HostTransactionHistoryData, and- HostTransactionHistoryDataElementDbObject
- Adds - q2 db get_host_transaction_history_data_elementCLI command
- Adds - q2 db get_host_transaction_history_dataCLI 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 changelogthat would write a bad string into the settings file
v2.135.2 - 2022-06-14
Fixed
- AuditRecord.getno longer accepts and then throws away session_id
- caliper_adminscript creates- nomad_secrets_dirand- local_vault_directoryon initial setup now
- upgrade_python_versionscripts in Shared Dev now accurately update- gitlab.cipython version
Added
- caliper_adminnow has a- setup_q2_vpnfunction for internal Q2 dev in Windows WSL environments
Removed
- Removes - GetDbConnectionStringHQ 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 checkthat would not allow proper SSO ParameterBitFlag combinations
- caliper_adminwill now default to installing the latest SDK version if not specified, not the earliest
v2.135.0 - 2022-06-06
Added
- Adds - AdapterRequestTypeDbObject
- Adds - International WireAdapter type for- q2 create_extension -> Adapter
- Adds - ThirdPartyDataSharedDbObject for adding ThirdPartyData without a group_id
Fixed
- Updates recommended q2msg version to 1.10.2 
v2.134.1 - 2022-06-01
Fixed
- sdk_AddAdapterAddressstored 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 - HostAccountDataDbObject now correctly casts ids as integers in the CLI entrypoint
- Fixes a syntax error in the - caliper_adminscript
- caliper_adminand docker dev machine both install librdkafka to support new q2msg version
- clone_from_gitlabnow 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.10script
- Adds - upgrade_python_versioncommand to shared dev machine to autodetect desired python version and rebuild virtual environment
- Docker dev machine and - caliper_adminscript 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 changelogcan how concatenate multiple change files to create a single changelog
- q2 checkwill now warn if any UiTextElements in the DbPlan have descriptions longer than the Db max length
v2.133.0 - 2022-05-16
Added
- q2 lintnow has a- --changedflag to only check python files changed since last git commit
- caliper_adminscript 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 - /inspectendpoint
- Adds initial support for - AuthTokenRequestHandler(accessible via- q2 create_extension)
- Adds initial support for - FxRateRequestHandler(accessible via- q2 create_extension)
- Adds - AdapterAddressDbObject
- Adds - AdapterInterfaceDbObject
- q2 installnow works with the new Adapter type handlers
Fixed
- Better type hinting on - self.account_list(Will hint- SSOAccountfor SSOHandler and- Accountfor Online based handlers)
Removed
- Removes - SendSecureMessage2HQ endpoint. It did not work using the SDK and was a landmine.
v2.132.0 - 2022-05-06
Added
- Add ability for - changelogentrypoint to create change files in a changelog directory
- DBObjects can now be accessed through - self.db.*. Example: self.db.group.get()
- Added new DBObject - HostTransactionHistorywith cli parser- get_host_transaction_history
Fixed
- The - get()method of- ObjectGroupDataDBObject is explicit about duplicate column names
- Fixed logs to not filter Audit Ids 
- Fixed bug in - switch_projecton shared-dev to work with customers having multiple projects.
- Fixed bug on - get_sso_user_logoncli parser of- SsoUserLogonDbObject to correctly show the argument name- sso_indentifier.
v2.131.0 - 2022-05-03
Added
- Added a new variable - BALANCE_HADE_SYSTEM_PROPERTYwhich has ability to set- BalanceHADESystemPropertyIDin SSO extensions.
- Added options - Start Memcachedand- Install Frontend Dependenciesto caliper_admin(local dev) script.
Fixed
- clone_from_gitlabnow doesn’t show error related to- MarkupSafenot installed.
Changed
- Updated docs for VSCode setup for external developers. 
v2.130.0 - 2022-04-26
Added
- There is now a - MULTITENANTvariable in settings. Setting this to true will more closely emulate a multi-tenant deployment into the datacenter. More details on the guides/configuration page.
- LinkedAccountDbObject now has an- add_by_primary_cifmethod
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_EXTENSIONvariable. Allows serving frontend assets for another extension rather than the default (same extension)
Fixed
- q2 db add_access_code_targetswill now serialize the results appropriately
- _overridescustomer_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 - authorizeTransactionWithMfaaction
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_TIMEOUTand- Q2REQUESTS_DEFAULT_CONNECT_TIMEOUTvariables in Configuration guide.
Changed
- The - createand- updatemethod of NavNode Dbobject now accept- route_parametersup to 2048 characters.
v2.126.2 - 2022-04-11
Fixed
- Fixes a bug with - Disclaimer.accept_for_user_idthat would break if a disclaimer in the DB does not have any GroupIDs
v2.126.1 - 2022-04-08
Fixed
- Fixed bug with missing - customerKeyas part of cache key(when- customerKeyis available) in Ardent extensions
v2.126.0 - 2022-04-05
Added
- DisclaimerDbObject now has an- accept_for_user_idmethod to facilitate accepting disclaimers more easily from the SDK
- DisclaimerDbObject now has a RepresentationRow for- ret_table_obj=True
- Disclaimer.getnow returns more fields
- q2_sdk.tools.test.models.CacheMocknow has a- raise_remove_errorparameter, useful for some testing scenarios
- AuthTokenDbObject’s- .deletemethod now works in the datacenter
- Adds - q2 vault add_hq_credsfor 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_credsnow 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 lintcommand now works against frontend testing even with a missing .nvmrc
- q2 db update_wedge_addressnow 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_dataproperty.
- Changed documentation in Ardent tutorial to reflect the changes on using - self.get_dc_cookie()to generate cookie strings.
Fixed
- Fixed bug on - q2 lintand- q2 testcli endpoints that allows sourcing nvm.sh on shared-dev.
- Allows hardcoded - USE_INCOMING_HQ_URLin settings during q2 check.
- Allows to dynamically use WedgeOnlineBanking or Q2API version of GetHqVersion in SsoUserLogon. 
Added
- Added - Rebuild Python Versionoption in caliper_admin script which provides the download url to build python on mac.
v2.124.0 - 2022-03-17
Fixed
- Fixed - AttributeErrorbug while creating ClientSide extensions using react framework.
- Fixed widgets docs code sample on q2 frontend vs q2 tecton. - dashboard.account_groupis now- dashboard.account-group- dashboard.account_cardis now- dashboard.account-card
- Fixed bug with VaultInfo InstallStep that prevented it from installing if - basename_transformswas 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 - customerKeyas part of a cache key if it’s available.
v2.123.0 - 2022-03-10
Added
- The cli entrypoint - q2 frontendis changed to- q2 tecton.- q2 tectonnow has much more functionality and an improved user interface.
Deprecated
- @ajaxdecorator 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.deleteis now available in the datacenter, not just dev only
Changed
- q2 db remove_user_property_data_elementwill now remove all child UserPropertData rows (dev only)
- strictparameter on- UserPropertyData.deleteis now deprecated. Strict mode is always true. To remove multiple, create a loop (or use- q2 db remove_user_property_data_elementin dev)
Fixed
- Switching RENDER_IN_NEW_WINDOW’s value in an SSOHandler, then running - q2 update_installedon 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 - auditDayfrom the sdk_GetAuditSessionRecords stored procedure
v2.121.0 - 2022-03-02
Added
- Updated widget documentation for new url testing structure. 
- Added method - get_audit_sessionto AuditRecord DbObject
- Adds - q2 db get_audit_sessionCLI 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 - renderAppfunction inside react templates.
v2.120.2 - 2022-02-25
Fixed
- q2 installnow sets vendor_address correctly when using the local dev websocket
Added
- UserDbObject now returns UserRoleID at the CLI (if- --extendedset)
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_EXTENSIONSconfiguration 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 testnow 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_accountsmethod
- Adds - q2 db get_customer_linked_accountsCLI entrypoint
- Adds prerelease version type in - q2 changelogCLI entrypoint
- Adds - AddressTypeDbObject with- getmethod
- Adds - q2 db get_address_typeCLI entrypoint
Fixed
- q2 lintnow works with frontend testing repos that rely on a non-system level node using nvm
- self.vault.readwill now work in multitenant deploys by defaulting to the Institution level StorageLevel unless a Stack is provided
- Fixes a bug with - UserLogonDbObject’s- deletemethod 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_trafficis 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_notemethod to- GeneratedTransactionsdbobject.
- Added - session_cacheto 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_navwhich 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_extensionclient side rendered option will now prompt for React/VanillaJS
- q2 runand- q2 create_extensionwill 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 runwill 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.loggerwill 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 - AccountInformationswas 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_apiwill no longer error on newer HQ endpoints
v2.114.0 - 2021-12-22
Added
- Added - DisplayNameUiTextElementShortNameon Form DbObject
- Added - PropertyNameto 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.createmethod to DbObject
- Adds - q2 db get_auth_token,- q2 db create_auth_token, and- q2 db remove_auth_tokento the CLI
Fixed
- CLI will no longer respond with ‘success’ to - q2 db *calls that return 0 results
- /adminendpoint 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.cacheif originally configured with an environment variable (since 2.100.0)
Changed
- Behind the scenes added changes to improve Vendor DbObject’s - .updateapi
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 runwith 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
- HostAccountDbObject’s- search_by_external_numbernow matches HQ’s logic for using either- AccountNumberExternalor- AccountNumberInternaldepending 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_VendorAddressAddress column now accepts 256 characters instead of 100 to more closely match the DB schema
- UserDemographicDataDbObject 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_xmland- build_add_user_xmlin 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 - updatemethod to- Customerand- UserDbObject
- Adds - q2 db update_customerCLI command
- Adds - q2 db update_userCLI command
- Adds - q2 db update_vendor_configs,- q2 db delete_vendor_configs,- q2 db add_vendor_configsCLI 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.updatethat never awaited the coroutine
- Fixes secure_message guide page example code 
v2.109.0 - 2021-11-02
Added
- q2 update_installednow works with Central extensions
- UiTextDbObject can now specify UiSelection information on all methods
Fixed
- Fix more misspellings on - DateAlertDbObject 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- RemoveUserConfigmethods
- Adds - updatemethod to- WedgeAddressDbObject
- Adds - q2 db update_wedge_addressCLI command
- q2 update_installednow 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_dbwill 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 - WedgeAddressRowresponse object from TimeInMilliSeconds to TimeoutInMilliSeconds
v2.107.1 - 2021-10-22
Changed
- q2 add_to_navwill present the current repo’s extensions at the top of the list
- q2 update_installedfor SSO extensions now returns clearer output regarding changed VendorConfigs
Fixed
- Fix - q2 upgrade -p tectonbug that stripped out leading / in file paths
- Now possible to update an SSO from a codebase that’s not the original one 
- q2 update_installedfor SSO extensions no longer errors if TableRows are returned instead of lxml objects
v2.107.0 - 2021-10-18
Added
- Adds - q2 db update_vendorCLI 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_requireddecorator 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.OAuthClientclass. When passed to a q2_requests call, can allow easy/customized oauth token interaction
- q2 installwill now set add- HqAuthTokenTypeand- HqAuthTokenLifeInMinutesfor 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 checkhardcoded HQ credentials test
- Improvements for CLI completion combined with custom entrypoints 
- Generated gitignore file now specifies - __MACOSXinstead of the overly generic- __*
- Fixes a bug with - q2 run_sqlthat could run custom SQL multiple times in rare conditions with multiple extensions contained in the same file
- FORK_REQUESTSmode will no longer kill the server when entering backoff pressure mode
- Improves performance of - FORK_REQUESTSmode by switching to child signal handling instead of subprocessed- pscalls
v2.105.0 - 2021-10-05
Added
- Adds - RecurringTransactionDbObject with- getmethod
- Adds - q2 db get_recurring_transactionCLI command
- FORK_REQUESTSmode 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
- GeneratedTransactionsDbObject now has a- get_by_recurring_idmethod
- Adds - q2 db get_generated_transactions_by_recurring_idcli entrypoint
- FORK_REQUESTSmode will now log when memory is getting low in the container (controlled by the- Q2SDK_FORK_WARNING_MBenv var)
- FORK_REQUESTSmode will now stop accepting requests when memory is low enough to kill the container (controlled by the- Q2SDK_FORK_BACKOFF_MBenv var)
- It is now possible to pass - printkwargs through- q2_sdk.core.cli.textui.puts
Changed
- UDP Callback port is now randomized in - FORK_REQUESTSmode (rather than defaulting to 1983)
Fixed
- Improvements to - q2 install_completionto 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_variablesif present
- Fixes backwards compatible - closeparameter in- TectonModalto no longer treat- Falseas- None
Added
- GeneratedTransactionsDbObject now has a- get_by_idmethod
v2.103.0 - 2021-09-23
Added
- SecAlertUserPrefDbObject 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_dband- q2 run_sqlwill now work on Debian 11 (including the docker dev machine for internal Q2 stacks) by equally supporting pymssql and pyodbc
- Adds - AuthTokenDbObject with- .getmethod
- Adds - q2 db get_auth_tokenCLI 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_groupmethod to- CustomerDbObject
- Adds - Deletemethod to- CustomerDbObject
- Adds - q2 db move_customer_groupCLI command
- Adds - q2 db remove_customerCLI command
- q2 installwill now invalidate the DataFeed list when appropriate after installing Ardent extensions
Fixed
- textui.putsnow casts non-string inputs as strings when logging
- Hardcoding - FORK_REQUESTSin the settings file will no longer break the CLI for non- q2 runcommands
- Fixes an issue with - q2 testand- q2 lintwhen passing extra parameters and running from outside a virtual environment
v2.100.0 - 2021-09-08
Added
- SecAlertUserPrefDbObject now also returns- FirstName,- LastName,- EmailAddress,- PhoneNumber,- SmsNumber, and- Nickname
Fixed
- Q2CacheClientnow actually respects the logger you pass in rather than creating its own
- Fixes a bug with - q2 create_extensionand a few other entrypoints that did not accurately detect- configuration/settings.pyin the root of the repo
v2.99.0 - 2021-09-02
Added
- Adds - SecAlertUserPrefDbObject to interact with the- Q2_SecAlertUserPreftable
- Adds the - get_sec_alert_user_pref,- add_sec_alert_user_pref,- update_sec_alert_user_pref, and- remove_sec_alert_user_prefCLI entrypoints
- Adds the - GeneratedTransactionsDbObject to interact with the- Q2_GeneratedTransactionstable
- Adds the - get_generated_transactionsCLI entrypoint
- Docker Dev Machine now supports Vault secrets and certificate storage while testing 
Fixed
- If - NOMAD_SECRETS_DIRis undefined (only relevant in local development) will no longer prevent interacting with Vault stored certificates
v2.98.0 - 2021-08-27
Added
- HQ’s - AddRecipientxml_payload can now be generated with the- api_helpers.build_add_recipient_xmlfunction
- HQ’s - AddRecipientAccountxml_payload can now be generated with the- api_helpers.build_add_recipient_account_xmlfunction
- Adds - q2 db remove_user_datato the CLI
- SSOUserclass (- self.online_userin the context of an SSO extension) now has the- home_countryand- work_countryattributes
- 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_installedwhen 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 - /inspectendpoint
- q2 testnow 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_extensionfor Tecton Client Side Rendered extensions will no longer automatically put- --hrm-port 1982into 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_memcachedcommand for local dev
- Docker dev machine now has an - add_certcommand for cases where a company proxy captures outbound traffic
- OnlineUserobject now has an- is_companyflag 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_DBsetting) now implement- .pyvaland- .textfor more backwards compatibility with raw xml elements
- message_bus.push()method now supports overriding the topic with the- topicparameter
- Is it now possible to pass a content_type to Ardent File’s - uploadand- upload_from_filemethods (as well as at the CLI)
- It is now possible to pass - render_in_browserto Ardent File’s- get_public_download_urlmethod (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_textthat would raise an exception if- RETURN_TABLE_OBJECTS_FROM_DBwas True
- All CLI commands will respect - --logging-level(- -l) value as case insensitive (debug == DEBUG)
- User provided SQL in - install/sql_servercan now contain multiple commands with- GOin between them, rather than splitting it into multiple scripts
v2.94.2 - 2021-08-04
Fixed
- Fixes a bug with - q2 add_to_navintroduced in 2.94.0
- Fixes a bug with - q2 --versionintroduced in 2.94.0
- Fixes a bug with - q2 run_db_planthat didn’t handle empty input files
Added
- Docker dev machine will now run - container-prebuild-hook-dev.shon build if present
- GroupDbObject now works with- RETURN_TABLE_OBJECTS_FROM_DBconfig setting
Changed
- /dbplanendpoint 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 --printwould 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_installednow works with SSO extensions
- Insight.ValidateToken.validate()method now contains a .raw_response
Changed
- q2 update_installed_formis 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_RemoveEmailstored procedure that was specifying a bad column name in newer databases
v2.93.0 - 2021-07-26
Added
- OAuthLookupDbObject now has an- enableand- disablefunction
- Adds the - DateAlertDbObject with- .get,- .create, and- .updatemethods
Fixed
- SSOHandlerbased extensions will now work correctly with- self.corecalls
Changed
- q2 upgradewill now stream the output from the subprocessed- pipcommand rather than just pause and eventually finish
v2.92.0 - 2021-07-22
Added
- Adds - HostAccountMetaDataDbObject
- Adds - createmethod to- AddressDbObject
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 testagainst settings file items will now set test_mode correctly
v2.91.0 - 2021-07-08
Added
- q2 add_to_navnow 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_DBconfig setting
- Introduces a - q2 logincommand 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_extensionrunning after settings.py file has been manually deleted
- Very large HQ API responses are now automatically decompressed on the fly 
- VendorConfig, VendorAddress, and ThirdPartyDataElement - InstallStepswill now run after their corresponding deendencies on- q2 run_db_plan
Changed
- q2 lintwill now show warnings in yellow rather than red
v2.90.0 - 2021-07-01
Added
- Adds new DbObject - AccountAddresswith corresponding CLI commands
- EmailDbObject now has Update and Delete functionality
- MessageBus now supports Protobuf declarations from - q2msglibrary
Fixed
- q2 remove_from_navnow works with SSO extensions
Changed
- q2 db add_user_property_data_element’s optional parameters- allow_user_edit,- allow_user_view, and- allow_cust_vieware now toggles rather than keyword params
v2.89.1 - 2021-06-29
Fixed
- Fixes a bug where - q2 checkwould not work for non-tuples in INSTALLED_EXTENSIONS
- NavNode.updatewill 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
- /inspectendpoint 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 - /dbplanwill 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 checknow 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.9script
- Unsupported python versions can now be used anyway by setting the - Q2SDK_NO_VERSION_CHECKenvironment variable to 1
Changed
- Upgrades from pylint 2.4.4 -> 2.8.2 
v2.85.0 - 2021-05-24
Added
- Adds - GtCaseDecisionReasonDbObject for working with the- Q2_GTCaseDecisionReasontable
- Adds the - get_suspectmethod to the- TransactionsDbObject
- Adds the - q2 db remove_customer_dataCLI target
- Adds - DecideSuspectGtbackoffice HqApi module. For usage instructions, check out the new- BackOffice Callsdocumentation page.
- Adds - search_by_external_numberto- HostAccountDbObject
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 lintwill no longer ignore the- configurationdirectory
v2.84.2 - 2021-05-21
Fixed
- Fixes a bug with calling the - OnlineInstaller.installmethod 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.updatewould 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 runin 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_dbwill 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- kwargsargument 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 frontendwill now work correctly with extensions that live elsewhere than the root of the repo
- q2 update_installed_extensionwill 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_dbwill now properly install sql scripts into 4.5+ Databases
- q2 create_coreflownow 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_planif 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 - PropertyIDon the- NavNodeDbObject
Fixed
- Fixes a bug with - FormDbObject’s- get_by_namemethod that would sometimes return multiple rows. Manifested on- q2 add_to_navunder certain conditions as a stacktrace
- UserPropertyDataElement’s- get_onemethod will now properly raise a DatabaseDataError when there is not a match
Changed
- Trying to wrap an SSOHandler route in - @ajaxwill now raise a more targetted- NotExecutableErrorrather 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 - ExceptionSSOResponse ResponseType
- Q2SSOResponseobjects now have an- end_user_error_messageproperty which will update the user facing error message in the even of a failed response
- Q2SSOResponseobjects now have a- user_level_config_listparameter, which allows setting data in the database as part of the return response to HQ
 
- MessageBusextensions can now subscribe to more than one- message_type
- AuditRecordDbObject now has a- get_by_idmethod
- Adds the - LOG_RESPONSE_IN_DEBUGsettings variable for great log verbosity at dev time
v2.80.0 - 2021-04-23
Added
- UserData.get_by_short_namenow returns all datafields instead of just- UserID
- UUXPayloadDbPlan InstallStep now handles passing variables through JS with the- wedge_address_js_variablesproperty
Fixed
- Handles the condition on - q2 installthat the- UserPropertyDatarow for the group selection is true instead of True
- Fixes a bug with - FORK_REQUESTSmode 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_READfunctionality. If set to True, will read from new location, falling back to old one
- q2 vault addnow writes to more appropriate location if- VAULT_SCOPED_READis set to True
- q2 vault add_certnow writes to more appropriate location if- VAULT_SCOPED_READis set to True
- Adds - COMPRESS_RESPONSEsettings variable (and corresponding- Q2SDK_COMPRESS_RESPONSEenvironment 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 - OAuthLookupDbObject with- get,- get_by_value,- add_update, and- deletemethods
- EmailDbObject now has a- createmethod
- It is now possible to set a Phone as a SAC target without simultaneously being a SAC_SMS target 
- q2 ardent file_uploadcli command now takes a –timeout parameter
- q2 ardent file_downloadcli command now takes a –timeout parameter
Fixed
- VAULT_SCOPED_READwas 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_cachecommand
- 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_extensionCLI 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_fieldswhich would raise an exception if the body was empty
Added
- Ardent’s - upload,- upload_from_file, and- downloadmethods 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 - CurrencyCodeDbObject
- ArdentHandlers now capture both query parameters and post body parameters in- self.form_fields
Fixed
- Improves - q2 invalidate_hq_cacheto better discover Central HQs
v2.76.0 - 2021-03-24
Added
- Adds - TransactionTypeDbObject for use with the FundsTransfer related HqApi endpoints
- Adds - q2 db get_transaction_typescli command
- NavNodeDbObject will now return- NavigationIDfrom- .get()
Fixed
- HqApi endpoints that require currency_code will now correctly default to USD 
- ardent.file_upload.upload_from_filewill now include the encryption key along with the file_id in the return
Changed
- In - DEBUGmode, 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.updatewhich prevented it from working with SSO extensions
v2.75.0 - 2021-03-17
Added
- The - /dbplanendpoint now takes in a- form_idheader
- DbPlan objects now take in an optional FormId parameter on the - installmethod, allowing operations on the related form in custom install steps
- Ardent - Fileobject now has a- get_public_download_urlmethod, which will generate a link that is hittable from a browser for a limited time
- Docker dev machines will now pip install - requirements_dev.txtbefore requirements.txt if it exists
- Adds - .get_deletedmethod to- CustomerDbObject
- Adds - q2 db get_deleted_customersCLI entrypoint
- Adds - .get_deletedmethod to- UserDbObject
- Adds - q2 db get_deleted_usersCLI 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_READvariable to True in your settings file
- Extensions now have a - self.vaultproperty 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_objproperty. If set to True, will return a Certificate object, which has- .key,- .cert, and- .pathproperties for ease of use.
Fixed
- Fixed a bug where requests could close sockets prematurely in - FORK_REQUESTS=Truemode
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 checkto ensure frontend packages have a package-lock.json or a yarn.lock file
- Adds - GtDataDbObject with- .createmethod
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 checkto 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_threadto- MessageDbObject. This is a powerful function that could potentially be dangerous if used incorrectly, so therefore must be opted into via the- DANGEROUS_WHITELISTin settings
- TableRowobject now has- .headers,- .keys,- .values, and- .itemsproperties for ease of use
- TableRowobject now better handles parsing of DateTime objects
- If - COMPANYis set in the settings file, it will now be added to the db on install for reporting purposes
- Q2Vaultobject will now also attempt to read from- ~/.vault-tokenif other locations are exhausted, bringing it in line with- vaultbinary program
- q2 add_to_navnow 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
- /inspectendpoint and- q2 inspectentrypoint now shows- COMPANYvalue from settings
Changed
- q2 installwill now install a form for all languages, not just USEnglish
- q2 add_to_navwill now install a form for all languages, not just USEnglish
- COMPANYwill now be required in the settings file if- IS_CUSTOMER_CREATEDis True
v2.72.0 - 2021-02-26
Added
- Adds built-in - /adminendpoint for terminating server at runtime
Fixed
- Better descriptions on - q2 insight install_featurereturns
- q2 runwill now properly refresh the ardent cache on server start again
- Fix a bug where - q2 changelogwas not compatible with extensions registered in the tuple (name, path) format
v2.71.1 - 2021-02-18
Fixed
- Fixes a bug with - FORK_REQUESTSmode which could potentially close the socket before all bytes were written in the child
Changed
- q2 runin DEBUG mode will now explicitly disable caching in the browser for served assets
Added
- q2 checkwill 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_navthat 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_returnnow takes a- specific_tableparameter in the event that the stored proc returns something different than the standard- Table
- DbObjects - Adds - RecipientDbObject with- get_by_customerand- get_by_recipientmethods
- Adds - TemplateDbObject with- getand- get_template_recipientsmethods
- UserDbObject now has an- update_dobmethod
 
- HqApi: - Adds - AddChangeOfAddressEndpoint
- Adds - AsyncRequestUpdateEndpoint
- Adds - ExecuteOutstandingReportsByZoneEndpoint
- Adds - ExecuteWedgeRequestByNameWithTimeoutAsStringZonedEndpoint
- Adds - ExecuteWedgeRequestByNameWithTimedZonedEndpoint
- Adds - GetCustomerLocateWhereEndpoint
- Adds - GetGroupLocateWhereEndpoint
- Adds - GetUserAccountListWhereEndpoint
- Adds - GetUserLocateWhereEndpoint
- Adds - GetUserLogonLocateWhereEndpoint
- Adds - MigrateCustomerFromTreasuryEndpoint
- Adds - MigrateCustomerToTreasuryEndpoint
- Adds - GetGeneratedTransactionDataElementsEndpoint
- Adds - GetGeneratedTransactionsWindowedWithGtDataEndpoint
- Adds - GetRecurringTransactionsWindowedWithGtDataEndpoint
 
Deprecated
- Added deprecation warning to all HqApi - .get_soapand- .get_jsonfunctions, preferring- .execute
Fixed
- HqApi - .get_soapand- .get_jsonfunctions 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 upgradecommand 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 checkthat 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_asyncmethods to Q2CacheClient.
- Adds - GroupToZoneDbObject
- Adds - q2 db get_group_to_zoneCLI command
- DbPlans now support a - self.disallow_add_to_navproperty, defaulted to False, which will not allow- q2 add_to_navto 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_THREADSenvironment variable is now correctly cast as an integer
v2.68.3 - 2021-01-21
Fixed
- Backwards compatibility fix for - UUXPayloadinstall step
- Fixes signature of newly generated Ardent extension - getmethod
- 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_xmlregarding 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_dbwill 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_namekwarg would result in a failed insertion to the database
Changed
- If - api_helpers.build_update_demographics_by_logon_name_xmlis called without first_name, last_name, or middle_name fields, it will no longer try to update the- Userrow 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.tectonto Tecton’s- capabilitiesobject in default ClientSideRender index.js template
Changed
- q2_requestscalls 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 - UserDbObject to include- DOBfield
- 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.getnow returns DeviceBitflag field
- Better type hinting on - NavNode.get
- Adds the - AdminUserPropertyDataDbObject
- Adds the - AdminUserPropertyDataElementDbObject
- Periodic Entrypoints now have an - on_pre_runhook that will be invoked before- run
- Adds an Ardent Tutorial in the documentation 
- NavNodeupdate 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_navfunction that changed- central_display_nameparam to- friendly_namewithout 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 checkthat 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
- HqApimethods 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_xmland- build_add_customer_xmlapi_helper functions now accept- host_userand- host_pwdparams
Fixed
- Fixes a bug where - WedgeOnlineBankingendpoints 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_navif a Tecton form had been installed multiple times for different routes
Changed
- HqApi parameters which are passed - Nonein 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_assistproperty
- 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_cacheoperation
- 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_textwhich 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_templatethat raised an exception if the magic key- thiswas passed as a replacement key and- thiswas 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 runwill now display- Registered extensionsinstead of- Installed extensionsfor clarity
- Adds a warning message in the event that developer accesses - self.corebefore- postfunction has been invoked
v2.63.1 - 2020-11-17
Fixed
- q2_sdk.core.prometheus.get_metricno longer breaks when passing None for- chainparameter
- add_to_navnow properly references- short_namein 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- closeparameter is now- show_closeto match the inherited- Modal, though- closewill still work for backwards compatiblity
v2.63.0 - 2020-11-09
Added
- q2 checknow 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_navnow sets both route_params and device_bitflag in the database as part of install
- HqResponseobjects now have a- .audit_idproperty
- County,- DataFeed,- Disclaimer,- GtDataElement,- HostAccountDataElement,- MessageRecipientGroup,- MessageTemplate,- NavNode,- NavigationStyle,- NotificationType,- Regex,- ReportInfo,- State,- ThirdPartyDataElement, and- UserAccountAttributeDbObjects now all have- .get_by_namesupport
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 runcan now run in ‘Fork Mode’, making a new process per request, by setting- settings.FORK_REQUESTSto True
- settings.FORK_REQUESTSrespects the environment variable- Q2SDK_FORK_REQUESTS
- If - settings.FORK_REQUESTSis 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)
- Phoneobject now has an- is_sac_targetproperty
Changed
- Manually invoking - q2 db update_nav_nodeor- q2 db add_nav_nodewill no longer attempt to bounce a stack, relying instead on the cleaner- invalidate_hq_cachefunctionality
- q2 create_extensionnow 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_listnow takes a- --show-permanent-testparameter to merge prod results with permtest ones
Fixed
- TectonServerHandler now uses - form_short_nameto 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 - RegexdbObject to be more compatible with older Q2 platform versions
- UserDemographicDataobject now works appropriate with empty MiddleName fields from the database
- UserDemographicDataobject 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_planfile input overrides
v2.59.0 - 2020-10-07
Added
- Adds - UserRoleDbObject
Fixed
- Fixed a bug with retry logic on - q2 insight upgrade_databasethat 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_requestsmethods now have a 5 second connection and 30 second response timeout (as opposed to infinite). To override set the- timeoutarg 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 - RegexDbObject to gather data from the Q2_Regex table
- Adds kwarg support to - Accountclass, 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_recordsnow takes a- -iparameter for passing AuditID
- ardent.file_upload.Filenow sports both a- .uploadand a- .upload_from_fileoption as well as a- .get_download_urlmethod 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 - q2command unless the environment variable Q2SDK_ARDENTFS_URL was set
- CoreResponseobject will now better handle the condition where the core itself returned an error code
- q2 insight upgrade_dbwill 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_adminoptional parameters to- DemographicInfoclass for commercial/treasury users
- Adds - GetGeneratedTransactionsWindowedHqApi endpoint
- Adds - GetRecurringTransactionsWindowedHqApi endpoint
- Adds - GetNextValidPaymentDateZonedHqApi endpoint
- Adds - SendSecureMessageToAllUsersInACustomerHqApi endpoint
- Adds - SendSecureMessageToAllUsersInAZoneHqApi endpoint
- Adds new File Upload capabilities to pre 4.4 forms. More details in the - Guides -> Online Integrationsection of the docs
Fixed
- Fixes - q2 db get_user_property_dataCLI header output
v2.54.0 - 2020-08-21
Added
- UserPropertyData.createnow takes a user_role_id param for corporate properties.
- UserPropertyData.updatenow takes a user_role_id param for corporate properties.
- UserPropertyData.deletenow takes a user_role_id param for corporate properties.
v2.53.0 - 2020-08-21
Added
- q2 insight get_db_listnow has a- --show-preprod(- -p) flag which will add not yet LPT environments to prod list
- Adds - q2 insight validate_tokenentrypoint
Fixed
- Fixes bug with - api_helpers.build_add_customer_xmlwhen appending a subsidiary that would error if the subsidiary did not have a WireCountryId
- Significant improvements to the - q2command’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
- PhoneNumberDbObject now has a- get_customer_phone_numbersmethod to search by customer_id
- CustomerDataDbObject now has a- get_multimethod to return multiple CustomerDataRows
- Adds - Subsidiarymodel to- q2_sdk.models
- q2_sdk.hq.api_helpers.build_add_customer_xmlnow 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_requestscalls 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_flagsnow 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-promptsparameter has been split into- --assume-yesand- --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_userswill 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 marketplacewill 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_installedwill now show ‘IsCustomerCreated’ column for all installation types
Fixed
- q2 insight login -u USERNAMEwill 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 checkwill now show full stack trace for non importable extensions
- Improvements to docker dev startup scripts 
Fixed
- q2 setup_dbwill 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_bulkthat would cut off text at 1024 characters
- UserPropertyData InstallStep will no longer be serialized as boolean choices 
Added
- BaseHandler’s - self.get_ui_textmethod now takes an optional cache_time parameter to override the default (60 seconds)
v2.49.0 - 2020-06-05
Added
- Upgrades to Python 3.8 base 
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 - AdminUserSetZoneHqApi endpoint
- Adds - AdminUserSetZoneConfigurationHqApi endpoint
- Adds - GetAdminUserZoneListHqApi endpoint
- Adds - ProcessZoneAllOutstandingTransactionsByTransactionIdHqApi endpoint
- Adds - ValidateTokenHqApi 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 runregarding frontend asset mapping
- Cleaned up the asyncio info logs on - q2 runstartup
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 runnow takes a- -cor- --asset-serverflag 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_ajaxcalls in server side rendered extensions that prevented it from working with HADE specific URLs in OnlineBanking
- q2 checkwill no longer fail if HQ_URL/ABA environment variables are unset
- SsoUserLogonobject’s- .getmethod 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_urlavailable 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_nodewill 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 runtime, not in other CLI commands
v2.44.0 - 2020-05-13
Added
- Adds a - ReverseLookupDbObject for interacting with the- sdk_ReverseLookupKeytable
Changed
- /browser_link will now be filtered out of the logs 
- q2_requestcalls will now include timing of the response in all log levels
- q2_requestcalls will now log the response headers if the call is unsuccessful
v2.43.0 - 2020-05-06
Added
- Accountclass now has a provider_data attribute for arbitrary data that doesn’t fit into the model
- Accountclass has from_json and to_json methods to serialize to and from JSON
- Adds an - autodetect_xml_encodingmethod to xml_helper module
- Adds - q2_sdk.models.cores.models.statement.Preferenceclass
- Adds - q2_sdk.models.cores.models.statement.EstatementPreferenceclass
- q2_sdk.models.cores.queries.base_query.BaseQuerynow has an- objectify_xml_responsehelper method for cores that deal in XML
- Adds a - JinjaQueryclass 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 - queryor- query_ynduring a- q2 runexecution 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 - SSOUserLogonDbObject 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.corecalls. More details in Zones docs page
- HqCredentialsclass now has a- .is_zoned()method
- Docker start_dev_machine scripts now allow passing through docker args with - --run-argsflag
- q2 checknow ensures wedge_address_configs property is not accidentally overwritten
- VendorConfigDbObject now has a- .get_all()method
Changed
- q2 generate_hq_apino longer uses the cached wsdl, but downloads from the configured HQ_URL
Fixed
- Improves built in logging on - q2_requestsmethods, ensuring kwargs and positional args are logged equally
- Fixes a bug with - HoursDbObject 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 checkwill 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_nodeentrypoint
- 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_LINKenvironment variable to disable live reload capability
Changed
- /statusendpoint 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 - HoursDbObject for interaction with the Q2_Hours table
- Adds - SchemaDbObject to determine if a DbSchema exists (useful for determining Db Version)
- Adds a - delete_centralmethod to- UiTextDbObject 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 - -eflag due to a collision with the- q2 insightbuiltin command
- Mac docker dev start script now uses builtin - curlinstead of not necessarily installed- wgetfor 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 testvia the package.json test target if present
- Frontend linting is now run on - q2 lintvia the package.json lint target if present
- Adds the - sdk_SchemaExistsstored proc for testing for- adminand 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_infowould 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_cachewill now work the same on shared dev as the Q2 datacenter
- Fixed a bug with - q2 update_installed_formwhere extensions without a db_plan would fail to update
Added
- Adds a - Q2SDK_SERVE_ASSETS_HTTPSenvironment variable which will force HTTPS for use in shared dev Tecton extensions
v2.37.0 - 2020-04-07
Added
- q2 invalidate_hq_cachenow has a boatload more targets. Checkout the -h menu for more details
- q2 upgradenow 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_cachewill 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_formfor 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
- RateLimiterobject now has- whitelist_networksand- blacklist_networksproperties for more flexible definitions
Deprecated
- RateLimiter’s- whitelist_regexhas been deprecated in favor of- whitelist_networks
- RateLimiter’s- blacklist_regexhas 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 runwill 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_urlnot being available in tecton handler Jinja templates
- -l LOGGING_LEVELwill now work with- q2 installand- q2 insightcommands as well as all- q2 db *commands
Removed
- q2 remove_formhas been removed (in favor of- q2 uninstall)
- q2 get_installed_formshas been removed (in favor of- q2 get_installed)
- q2 install_formhas 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
- CustomerDataDbObject now has a- .deletemethod
Changed
- q2 updateis 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.updatethat 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 - CustomerDataDbObject 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_usernow 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 inspectnow displays the CSR creds
- AccountList object’s - product_code_filternow is a more descriptive- product_type_code_filter
Deprecated
- AccountList object’s - product_code_filterwill 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_versionscli entrypoint
- Adds - q2 insight upgrade_databasecli entrypoint
- Docs on frontend configuration ( - q2 frontend)
Fixed
- ProductDbObject’s- addmethod will now work in 4.3 environments
- SSO Uninstall will now also clean out VendorAddress table 
- Fix a bug with - core.cli.textui.query_ynthat would flip the response if the default was N
Changed
- Add Nav Perms will now log - UserPropertyData row addedon 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_configwill no longer break if the CORE in settings.py starts with- q2_cores.
- q2 db get_user_data_by_valueno 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_ENTRYPOINTSin settings.py does not require it to have a corresponding urls.py
v2.29.0 - 2020-02-12
Added
- Adds - .get_users_under_customerto User DbObject
- Adds - .get_logons_from_user_id_listto 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_planwill 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_stackis 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_formthat 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 upgradenow prefers npm Tecton package in package.json over .tgz file
- q2 db get_vendorsnow returns all vendors by default (rather than just SSO vendors)
- q2 db get_vendorsnow returns new data (including NavNodeName)
- self.online_user.customer_primary_cifis now a string (preserving leading 0s)
- self.online_user.user_primary_cifis now a string (preserving leading 0s)
Fixed
- self.hq_credentials.abawill 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_cachecalls
- q2 upgradenow 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_booladded for fuzzy boolean conversion
v2.27.2 - 2020-01-13
Added
- Adds a - q2 db remove_vendor_address
- Account model now has - .cif_externaland- .cif_external_unmaskedproperties
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_navwill 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_cachenow takes a- refresh-relatedrather than a- no-refresh-relatedflag
- 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_extensionwhich 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 runalong 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_extensionis 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_hqin staging/prod environments with similar names not all being invalidated
v2.26.0 - 2020-01-06
Added
- Adds a - q2 vaultentrypoint with a few helpers for testing secrets locally. Vault docs updated accordingly
Changed
- self.online_user.login_namewill 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 testwill no longer discover tests in node_modules in nested subdirectories
Changed
- HydraIdName has been added to the - q2 db get_audit_recordscli 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 upgradewould 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 checkwill now identify requests.* calls as blocking, preferring q2_requests.* variants
- Adds a - UserLogon.deletemethod 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_groupsentrypoint
- Documentation on Widgets 
- q2_sdk.core.configuration.EnvVarcan now be used in REQUIRED_CONFIGURATIONS to specify an environment variable as config
- Adds - q2 frontendentrypoint 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 centralwill 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_configswill now cache the return for 60 seconds
v2.22.1 - 2019-10-21
Changed
- q2 create_coreflowhas been reworked to split generated code into multiple files
- q2 create_extensionwill no longer prompt for ‘Would you like to register?’. It just assumes the answer is yes
Added
- q2 create_coreflownow supports adding new flows to an already generated Custom Core
- q2 create_coreflowwill 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_attachmentwith- @dangerous
- If you are using - secure_message.broadcast_with_attachment, you will need to take action. More detail in the- How to Get Helppage of the docs.
Added
- Adds - @dangerousdecorator for particularly powerful functions
- SSOHandlers will now have their SSO BitFlag integrity checked during - q2 check
- Adds a - build_get_group_id_xmlfunction in- api_helpersfor 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_formwhich 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.Versionmodel 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 
- /metricsendpoint 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_xmlnow 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_xmlwill 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_fieldswill 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_installedwhich 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 - VendorAddressinstall 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_xmlnow has a DOB element if demo_info.dob exists
- api_helpers.build_account_association_xmlnow 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_dbwhen taking the version upgrade
Fixed
- Fixes some bugs with our internal Docker image running on Windows hosts 
- q2 insight -hnow accurately shows help for all subparser
Changed
- api_helpers.build_add_user_xmlnow 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-securitynow 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_urlproperty which will resolve to an appropriate frontend service url
- q2 generate_hq_apinow takes a- --endpointparameter to limit the generation type
- Adds /assets endpoints to - q2 inspectoutput
- Adds /assets endpoints to - /inspectendpoint
- Better type hinting for Country DbObject return 
- Adds a - **kwargsparameter on HqApi- .executemethods. Used for future proofing, such as- bt_handle=self.bt_handlefor 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_formsis now- q2 get_installed
- q2 db get_data_feedsis 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.ssnwill now automatically cleanse non-digit characters out of the value
Deprecated
- q2 get_installed_formshas been deprecated in favor of- q2 get_installed
Fixed
- q2 uninstallwill 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_templatenow 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 runwill 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.
- /inspectendpoint will now show base_assets_url for Tecton extensions
Changed
- q2 remove_formis now- q2 uninstall
Deprecated
- q2 remove_formhas 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 - q2CLI 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_formis now- q2 install
- q2 create_extensionwill now put the new extension name at the end of INSTALLED_EXTENSIONS instead of the beginning
- self.get_templatereplacements_dict is now optional, rather than requiring you to pass {}
Added
- q2 installwill 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_cachenow has an option for FormView
Deprecated
- q2 install_formhas 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 runwhen run without- -a)
- Fixes a bug where - add_dependencywould 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 upgradewill now show q2-smart as an option
- q2_sdk.hq.api_helpers.build_add_user_logon_xmlnow takes a skiptac parameter. Defaults to False
- Adds a - q2_sdk.hq.models.backoffice_response.BackOfficeResponseclass 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 upgradewhere an IP address was the last entry in the upgrade list
Changed
- q2_sdk.hq.http.post_to_hqnow takes in a response class, allowing overriding of the response shape handling. Defaults to HqResponse as before
- q2_sdk.hq.models.hq_response.HqResponsenow 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_helpersnow has a- get_frequency_bit_flagsendpoint for use with AddRecurring* modules in HqApi
Fixed
- parse_form_fieldsin 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_namemethod to UserData DbObject
- Adds - q2 db get_user_data_by_short_nameCLI 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 checkwill 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_hqis 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_cachenow has a host of new options (listed in the help)
Removed
- q2 create_extensionwill 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_formwas 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_listfor cases where no HQs are returned
v2.7.1 - 2019-07-03
Changed
- q2 runwill 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_extensionwith Tecton frontends will now put the q2-tecton-sdk reference in package.json rather than the index.html file
Added
- q2 upgradewill 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 - q2command
- 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 runstarted
Changed
- Generating a Tecton powered extension will now use the latest tecton version every time 
v2.6.0 - 2019-06-18
Added
- Adds - q2 insightentrypoint 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_userproperty 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_namenow takes an optional Admin boolean to change the type of user returned
- UserLogon DbObject’s - get_login_by_idnow takes an optional Admin boolean to change the type of user returned
Changed
- q2 db unlock_usernow uses HQ’s ChangeEndUserPasswordStatus endpoint instead of relying on SDK bespoke logic
Fixed
- Cleans up default generated - Q2Tectonform 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_coreflowwould 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.smartproperty to OnlineHandler
- Adds a - get_smart_tokenmethod 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 - /inspectendpoint 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_navwhich would fail to remove under some conditions
v2.1.4 - 2019-05-13
Changed
- Updates help text on - q2 get_installed_formsto 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_nodethat 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 testwill no longer show deprecation warnings
v2.1.2 - 2019-05-02
Fixed
- Fixes backwards incompatibilities with Windows since 2.0.0 release 
- Updates - short_nameproperty 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.UserLogonnow has- get_login_by_name,- get_login_by_id, and- getmethods’
- Adds - q2 db get_user_logoncli 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-onlywhich 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.LogonDatanow inherits from- q2_sdk.hq.db.user_logon.UserLogonrather than having two classes with similar functionality
- en-US.jsonfile in Tecton frontend folders now starts out blank, inheriting from the default
Deprecated
- q2_sdk.hq.db.logon.LogonDatahas been deprecated and will be removed in the future. Please move to using- q2_sdk.hq.db.logon.user_logon.UserLogondirectly
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.Q2TectonOnlineRequestHandlerhandler
- 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_formreworked to include Tecton questions
- q2 remove_formreworked to include Tecton pieces
- q2 runhosts frontend assets behind a static file server
- q2 runintroduces the- —-no-build-assetsflag, which disables building frontend assets automatically
- q2 runwill 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_extensionif omitted
- New - q2_sdk.ui.forms.Q2TectonFormclass for server side rendered forms with Tecton powered frontends
- Adds - get_list_by_namemethod to Product DbObject
- Adds PhoneNumber DbObject 
- Adds - q2 db get_phone_numberentrypoint
- Adds AJAX support into Q2Form powered OnlineHandlers. More docs In the AJAX Support page under Advanced Features 
Changed
- Tornado dependency changed from - 5.1.1to- 6.02
- VPN detection is now automatic and will no longer prompt 
- Moves - q2_sdk.core.install_form.get_my_ipto- 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.ExecuteStoredProcedureis now- q2_sdk.core.dynamic_imports.api_ExecuteStoredProcedure
- q2_sdk.hq.db.user_account_attribute.UserAccountAttributesis now- UserAccountAttributeto 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.ActivateAuthTokenwill 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.Customeris now- q2_sdk.hq.db.customer.Customer
 
- q2_sdk.core.http_handlers.*paths have changed:- Q2BaseRequestHandleris now- base_handler.Q2BaseRequestHandler
- Q2HqRequestHandleris now- hq_handler.Q2HqRequestHandler
- Q2ArdentRequestHandleris now- ardent_handler.Q2ArdentRequestHandler
- Q2CentralRequestHandleris now- central_handler.Q2CentralRequestHandler
- Q2OnlineRequestHandleris now- online_handler.Q2OnlineRequestHandler
- Q2LegacyRequestHandleris now- legacy_handler.Q2LegacyRequestHandler
 
- q2_sdk.hq.models.*paths have changed:- Accountis now- account.Account
- AccountListis now- account_list.AccountList
- AccountRightsis now- account_rights.AccountRights
- FormInfois now- form_info.FormInfo
- HADEis now- hade.HADE
- HqCommandsis now- hq_commands.HqCommands
- HqCredentialsis now- hq_credentials.HqCredentials
- HqResponseis now- hq_response.HqResponse
- OnlineSessionis now- online_session.OnlineSession
- OnlineUseris now- online_user.OnlineUser
- PasswordPolicyis now- password_policy.PasswordPolicy
- SecureMessageAttachmentis now- secure_message_attachment.SecureMessageAttachment
- SecureMessengerTypeis now- secure_message
- find_with_defaultis now- xml_helper.find_with_default
 
- q2_sdk.models.*paths have changed:- accountis now- card
 
- q2_sdk.models.cores.mappers.*paths have changed:- BaseMapperis now- base_mapper.BaseMapper
- BaseDemographicInfoMapperis now- demographic_info.BaseDemographicInfoMapper
- BaseCardListMapperis now- card_list.BaseCardListMapper
- BaseUpdateDemographicMapperis now- update_demographic_info.BaseUpdateDemographicMapper
 
- q2_sdk.models.cores.models.*paths have changed:- CoreUseris now- core_user.CoreUser
- CoreResponseis now- responses.CoreResponse
 
- q2_sdk.models.cores.queries.*paths have changed:- BaseQueryis now- base_query.BaseQuery
- BaseRestrictedQueryis now- base_restricted_query.BaseRestrictedQuery
 
- Install steps are now fully qualified imports - i.e. - from q2_sdk.core.install_steps.DbPlanis 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_cacheentrypoint for use with 4.4 stacks
- Ardent RefreshCache will automatically be called on - q2 add_to_navif appropriate
Removed
- Removes - DISABLE_BROWSER_LINKflag in settings file
- Removes - USE_SCSSflag in settings file
- q2 runremoves the- --disable-browser-linkflag and capabilities to auto refresh frontend assets in a pre-Tecton manner
- Removes BrowserLink built-in extension 
- Removes - redirect_routeand- destinationparameters from- q2_sdk.ui.modals.ModalActionclass in favor of- external_routeand- internal_route
- Removes - q2_sdk.ui.script_appenders.BrowserLinkAppenderclass
Fixed
- Faster entrypoint loading 
- Fixes a bug with hq_api changes not being tracked 
- q2 upgradenow matches alpha version string
- q2 upgradecoloration in shared dev machine
- q2_sdk.tools.utils.get_repo_rootwill 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_textcommand line entrypoint
v1.89.0 - 2019-04-16
Added
- Adds GTDataElement DbObject and associated InstallStep 
- Adds - q2_sdk.core.vault.get_certificatemethod for working with client certificates
- Adds a - q2 add_new_accountentrypoint 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_elemententrypoints
- Adds - q2 db get_host_account_elementsentrypoint
- 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 checkwill now ensure DEBUG=True has not been hardcoded in the settings file
v1.88.0 - 2019-04-09
Added
- ApiStoredProcDbObject 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 - MessageRecipientGroupDbObject
Fixed
- Fixes import path in generated - create_extensionoutputs
v1.86.0 - 2019-03-29
Changed
- q2 create_extensionwill now generate jinja templates for index and submit pages rather than using- q2_sdk.ui.fieldsvariants
Added
- q2 upgradewill 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 - updatemethod to the UiText dbObject
- Adds a - q2 db update_ui_textentrypoint
- Adds a - getmethod to the WedgeAddress DbObject
- Adds a - q2 db get_wedge_addressesentrypoint
- Better type hinting on - q2_sdk.hq.models.OnlineUser.demographic_info
Changed
- WARNING SQL scripts have been updated. Please run - q2 setup_dbto ensure you are up to date
v1.84.0 - 2019-03-19
Added
- Adds a - q2 db reset_passwordwhich will reset a password for a given login name
- q2 create_coreflownow takes a –core-name and a –operation parameter
Fixed
- Fixes a bug with - q2 checkthat would fail to test importability of CUSTOM_CORES
- Fixes a bug with - q2 checkthat would cause a failure if certain older versions of q2-cores were installed
- Fixes a bug with - q2 checkwhich would cause a failure if ONLY CUSTOM_CORES were installed with no q2-cores
- Fixes a bug with - q2 testwhere node_modules wasn’t properly ignored
- Fixes a bug with - q2 generate_configwhich was not properly discovering Q2OnlineRequestHandler as the parent class
- Fixes a bug with - q2 generate_configwhich was not working proeprtly with CUSTOM_CORES
- Fixes a bug with the DemographicInfo class which was not properly filtering out - Noneitems
Changed
- q2 db create_online_userno 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_userentrypoint for use in dev environments
- q2 setup_dbnow differentiates between HQ versions and installs appropriate sql
- q2 setup_dbnow has a- --db-versionflag to lock down instead of autodiscover db version
- q2_sdk.hq.api_helpersnow has a ``generate_user_logon_password` function which will create a random password
- NavNodedbObject now takes in a route_parameters for 4.4 environments
- Adds ConfigPropertyID and UiSource to - UiConfigPropertyDatadbObject cli output
- UiConfigPropertyDatanow has a- .updatemethod
- Created a - hq.models.PasswordPolicyobject for use with the- generate_user_logon_passwordfunction
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_cacheentrypoint for >=4.4 stacks, facilitating live NavNode reloads without a full HQ bounce
- Creates a - WedgeAddressdbobject
- Adds Type hinting on UiText dbobject return shapes 
Changed
- AddToNav will now use InvalidateCache if appropriate 
- q2 testwill 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_dbto get the latest DB changes
- q2 get_ui_text’s language parameter is now optional (- --language)
- q2 generate_hq_apiwill now generate an init file with relevant deprecation warnings inside
v1.81.0 - 2019-02-25
Changed
- Splits - Q2RequestHandlerinto 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 checkwith knowledge of new RequestHandler types
- q2 create_extensionwill now prompt for RequestHandler type, defaulting to the backwards compatible version
Added
- Adds - Q2HqRequestHandler
- Adds - Q2ArdentRequestHandler
- Adds - Q2CentralRequestHandler
- Adds - Q2OnlineRequestHandler
- Adds a - --minimum-onlyflag to- q2 create_extensionto remove unnecessary boilerplate
- Adds a - get_data_by_valuemethod to- UserDatadbObject
v1.80.0 - 2019-02-13
Added
- Adds File DbObject for interacting with the Q2_File table 
- q2 install_formnow takes a- -yor- --accept-defaultsflag to not prompt for db_configurations changes
- User DbObject now has a - set_profile_update_flagmethod and CLI command
- Customer DbObject now has a - get_logins_by_customermethod and CLI command
- DataFeed DbObject - getmethod can now gather more details if a specific short name is provided
Changed
- q2 install_formprompts 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 - q2command and subcommands
Deprecated
- from q2_sdk.hq.hq_api import q2_api; q2_api.ModuleNameis 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_dbto 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_dbto update your db scripts
v1.76.0 - 2019-01-24
Added
- q2 create_extensionnow 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_navnow 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 -cfrom 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.CoreNamein the settings file as CORE
v1.75.0 - 2019-01-15
Added
- Adds User DbObject 
- Adds - q2 db get_userentrypoint
- WARNING Please run - q2 setup_dbto 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_dependencyentrypoint for installation of of third party dependencies
- q2 run_db_plannow takes a –file (or -f shortform) parameter to run using a seed file
- Adds a - .elementattribute to- q2_sdk.hq.models.HADEwhich 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 checkcommand
- 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 checkwhere certain failures would not result in a non-zero exit code (for git hook integration)
Added
- Splits - BaseMapper.executeinto- _run_queriesand ``_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_formand- q2 install_formcommands
- 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_dbto 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.DriverLicenseinput
Fixed
- Custom Created Dynamic Cores will now display in - q2 install_formand- q2 update_installed_formentrypoints
- 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 - .executemethod 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.DemographicInfoclass
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 testnow has a- --coverageoption 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 setupwill 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
- Updates minimum requests version to 2.20.0 for CVE-2018-18074 
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.7in their shell
v1.66.2 - 2018-10-26
Added
- Introduces a - self._account_model_proxyproperty 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_extensioncall
- 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_apito override the default output directory
- Adds -e flag to - q2 run_sqlcommand for consistency across other CLI entrypoints
- Adds self.ssn attribute to - q2_sdk.models.account.Cardclass
- 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_datamethod 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_formsto 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.HqCredentialsto 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_nodewhich 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 checkentrypoint
- 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.incrand- self.cache.decrwould throw errors
Added
- /inspectendpoint 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_apiversion
Added
- q2 add_nav_permsnow has a –form-id (-f) and a –short-name (-e) flag for ease of use
- Header generated as part of - form.Q2Formnow 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_UnlinkAccountstored 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_apito get access to the HqAPI python bindings
- q2 generate_hq_apiwill 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 - ExecuteStoredProcedurefor 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_formto 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_textwill 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_formto prompt for OPTIONAL_CONFIGURATIONS if appropriate
- Updates - q2 update_installed_formto 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 upgradeentrypoint on Windows
v1.52.6 - 2018-07-16
Fixed
- Fixes a bug where Windows would not detect ip with - q2 update_installed_form --my-ipin some cases
Added
- q2 db get_nav_nodesnow 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 - q2without 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 testnow 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 --printwhere 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 - --strictflag to- q2 db get_user_property_datafor 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 - --categoryas 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_plannow 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_nodeimplementation 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_fixesto False until more conditions are tested. This was causing double submit buttons to appear in some environments
Removed
- q2 get_nav_nodesis 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 checkintroduced 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 runusing 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_nodenow also handles Route type nodes (This can be used to create parent menu items)
Fixed
- Fixed a bug with - q2 db update_nav_nodeupdating 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 runfrom 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 upgradeto 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.Q2RequestHandlerin 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.MenuOptionnow has functionality for toggling style menus
- Creates - FormToGroupdbObject
- Adds - q2 db get_form_to_group,- q2 db add_form_to_group,- q2 db remove_form_from_groupcommands
Changed
- q2 update_installed_formnow 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 checkwill 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_formno 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=jsonto /inspect endpoint
Changed
- self.get_templatewill 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.Groupobject with get/create/delete available both through python code and the cli (- q2 db get_groups)
Deprecated
- Deprecates - q2 get_groupsentrypoint 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.vaultwill 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 checkensures INSTALL_VARS references are changed to DB_PLAN
Deprecated
- q2_sdk.core.web.Q2RequestHandler.INSTALL_VARSis 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_formswhere 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_sqlwould 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.Accountnow 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_formwithout settings INSTALLED_EXTENSIONS would lead to a nasty stack trace
- Fixed a bug where running - q2 lintbefore creating an extension would fail
Changed
- q2 create_extensionnow 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 lintwill 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 testand- q2 lintnow 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_completionto 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_finishwould be called after- q2_posteven 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_finishmethod 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 lintentrypoint will lint code according to Q2 standards
- Git hooks installed on - q2 setupto faciliate automated linting and testing
- Better detection of vpn vs ethernet in local Q2 development 
- --my-ipflag added to- q2 update_installed_formto detect automatically
v1.28.0 - 2018-03-02
Added
- Creates - q2 db update_nav_nodeentrypoint
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 upgradewas 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 checkentrypoint to support non standard settings configuration paths
Changed
- q2 update_installed_formwill 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_userto- core.configured_user
Added
- Added the ability to create repository-level changelogs 
- Added - languageproperty to- self.online_user
- Added - update_configured_usermethod 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 checkwhere if q2-cores was not installed the error was inappropriate
v1.20.0 - 2018-02-02
Added
- Adds a - DYNAMIC_CORE_SELECTIONto RequestHandler- Defaults to - False
- Setting this to - Truewill 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_SELECTIONintegrity check
 
- q2 create_extension- Added docs for Core hinting in PyCharm 
- Changed - self.request_as_objto- self.request_name_elemin 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_completionthen 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_identrypoint
- Adds - q2 db get_user_property_data_by_valueentrypoint
v1.18.12 - 2018-01-17
Added
- Adds a - install_completionentrypoint to facilitate easy install of the bash and zsh completion scripts
- Fixes a bug where a malformed settings file could cause - q2 runto fail silently
- Adds a “built_by_q2” check on - q2 setupfor internal tracking
v1.18.11 - 2018-01-16
Added
- Adds global and extension level filtering capabilities 
- Usage instructions exist in the documentation under - Loggingmenu
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.dbfor ease of use demographic info updates
- Adds a helper for building update demographics xml shape 
- OnlineUserclass’s- postal_code,- home_phone,- work_phone,- customer_primary_cif, and- user_primary_cifattributes are now strings
- OnlineUserclass now has a- demographic_infoattribute for easily passing all relevant object data to another object
- PhoneTypeclass now has a- countryattribute
- AddressTypeclass now has- HOME,- OTHER,- BUSINESS, and- BILLPAYEEattributes
- Addressclass now has- countryand- provinceattributes
- 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_sqlnow has an optional- printargument to print the SQL directly to stdout
v1.18.7 - 2018-01-03
Changed
- q2 runwill 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_extensionnow prompts for registering the newly created extension in the configuration/settings.py file
- Adds - q2 update_changelogentrypoint to facilitate tracking human readable changes in extensions
- Adds git repo existence check to - q2 check
- Adds - /changelogendpoint to view- CHANGELOG.mdfiles 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-Typeheader is unset
v1.18.3 - 2017-12-21
Added
- Adds request guid to - q2_post callsin the event of an unhandled stacktrace Changed
- q2 install_formentrypoint now defaults- account_rights_bit_flagto 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_hqentrypoint to bounce hq on demand without needing to install/remove a form first
- ACTION REQUIRED: Run - q2 setup_dbto 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 setupnow prompts for an ABA in the event the repo is only being developed for a single FI
- This is bypassable with either the - abaflag and specifying an ABA or the- no-abaflag to ignore the check
- Adds the ability to mock failures on core query responses. BaseQuery object now takes an optional - mock_failureparameter. 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 inspectnow 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_formnow 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_dbentrypoint. 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_requestsfunctions 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.GetPasswordPolicymodule
v1.17.0 - 2017-11-28
Added
- generate_hq_apiwill 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_apiwill be run as part of- q2 setupnow
- generate_hq_apinow takes additional parameters- -awill limit generation to a single endpoint (i.e.- -a GetUserAccountList)
- -dwill download wsdl from configuration.settings.HQ_URL. This used to be the default
- no-formatwill 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 checkcommand- Better handles malformed configuration.settings file 
 
v1.16.4 - 2017-11-20
Added
- Adds a - q2 checkcommand 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_extensionautogenerated 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.BaseFormto- 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_dbto 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_createare 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 - Q2RequestHandlernow has a- self.rate_limiterswhich defaults to an empty list
- By overriding this in your init function with a list of - q2_sdk.core.RateLimiterinstances, 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_CONFIGSis now referred to as- WEDGE_ADDRESS_CONFIGSfor greater clarity
v1.13.1 - 2017-10-30
Added
- Adds - LinkedAccountobject with unlink ability
- Requires run of - q2 setup_dbto 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.dbshould be updated to the appropriate- q2_sdk.hq.dbmodule
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_formnow 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_formwill 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_formfor new SHORT_NAMES logic
- Updates - q2 remove_formfor new SHORT_NAMES logic
- Updates - q2 get_installed_formsfor 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_jsoncalls 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 runwill 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_navnow 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.Coreshould 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 setupto 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