Changelog for Caliper SDK

Current Version: [2.24.2]

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.24.2 - 2019-12-10

Fixed

  • Fixes bug with frontend configuration handling in some cases

v2.24.1 - 2019-12-09

Fixed

  • Fixes a bug with Q2SSO Handler where JSON input from HQ would throw an error
  • Fixed a bug where a DB Stored Proc update after a q2 upgrade would fail silently instead of reporting the issue to the user
  • Fixed a bug where EnvVar RequiredConfiguration types would not serialize properly on /inspect endpoint

v2.24.0 - 2019-12-02

Added

  • SDK Docker Dev machine (Q2 internal folks) will now run container-prebuild-hook.sh if it exists
  • q2 check will now identify requests.* calls as blocking, preferring q2_requests.* variants
  • Adds a UserLogon.delete method which will mark a user as deleted in the database

Fixed

  • WedgeOnlineBanking calls will now always use the reported_hq_url associated with the token rather than the possibly conflicting one in settings.py
  • Fixes bug which required the extension handler to be in a file called extension.py

v2.23.2 - 2019-11-21

Fixed

  • Updates the character limit of UiConfigPropertyData DbObject fields to more closely match the database limits

Added

  • Adds a Central Tutorial with example code
  • Improves Visual Studio Code setup docs

v2.23.1 - 2019-11-12

Fixed

  • SSO uninstall now has its own specific implementation rather than relying on the Online handler version
  • /inspect endpoint now correctly shows sso and ardent metainformation

v2.23.0 - 2019-11-05

Added

  • Install/Uninstall support for Central extensions using the CLI
  • Adds a q2 get_central_groups entrypoint
  • Documentation on Widgets
  • q2_sdk.core.configuration.EnvVar can now be used in REQUIRED_CONFIGURATIONS to specify an environment variable as config
  • Adds q2 frontend entrypoint to make working with the Tecton Configuration file less complicated
  • Adds MOCK_BRIDGE_CALLS variable into default settings (respects Q2SDK_MOCK_BRIDGE environment variable) to separate bridge mocking from just DEBUG mode
  • Better IDE documentation support for @ajax decorated methods
  • Better type hinting on DataFeed DbObject
  • q2 create_extension --type central will now generate working sample code

Changed

  • Getting logins with the UserLogon db object will filter out deleted logins
  • Better CLI parsing for uninstall function
  • Generate password now omits similar characters
  • self.form_fields is now available earlier in the handler’s lifecycle. It is now usable inside the init method
  • Upgrades jinja2 version from 2.10 to 2.10.3

Fixed

  • Tecton CSR form field parsing bug
  • Rate limiting issue with tecton client
  • Tecton double sumbit issue with index template

v2.22.2 - 2019-10-24

Fixed

  • String HADE types will now always be strings, even if lxml would consider them otherwise (01234)

Added

  • Ardent Handler’s .get_wedge_address_configs will now cache the return for 60 seconds

v2.22.1 - 2019-10-21

Changed

  • q2 create_coreflow has been reworked to split generated code into multiple files
  • q2 create_extension will no longer prompt for ‘Would you like to register?’. It just assumes the answer is yes

Added

  • q2 create_coreflow now supports adding new flows to an already generated Custom Core
  • q2 create_coreflow will now add a newly generated Custom Core to settings file

Fixed

  • Q2TectonForm will now validate that form_id is indeed able to be cast as an integer
  • Prometheus metrics tracking will now send only the baseurl for q2_request calls

v2.22.0 - 2019-10-17

Security

  • Decorates secure_message.broadcast_with_attachment with @dangerous
  • If you are using secure_message.broadcast_with_attachment, you will need to take action. More detail in the How to Get Help page of the docs.

Added

  • Adds @dangerous decorator for particularly powerful functions
  • SSOHandlers will now have their SSO BitFlag integrity checked during q2 check
  • Adds a build_get_group_id_xml function in api_helpers for use with GetGroupID HQ Endpoint
  • Better type hinting on GetGroupID HQ Response

Fixed

  • Fixed a bug where HQ Response bodies were not being logged since 2.20.0
  • Fixed a bug with Version model comparison where 1.89.0 was reporting greater than 2.0.0
  • Properly xml escapes wedge_address_configs stored in the database

v2.21.1 - 2019-10-10

Fixed

  • Fixes a bug with q2 update_installed_form which would not accept the account_right_bit_flag query answer
  • Fixes a bug where neglecting to create an init.py file in an extension directory would break q2 run
  • api_helpers secure_message_as_xml generation will now let HQ decide on the creation_time rather than doing it at the SDK level

Added

  • q2_sdk.models.version.Version model can now be compared using >,<,>=,<=,== comparators
  • Added docs on our CI/CD pipeline. Visible under Development Processes menu

Changed

  • Naming updates in user_logon for consistency. login_name/logon_name have been standardized to just logon_name

v2.21.0 - 2019-10-07

Added

  • Prometheus metrics support (https://prometheus.io/). This is enabled by default for several basic metrics around response times and request count
  • /metrics endpoint will expose all gathered Prometheus metrics (used by prometheus server running inside Q2 datacenter)

Fixed

  • Sandbox HQs identifying themselves incorrectly will now be usable again by SDK Q2Api calls
  • api_helpers.build_secure_message_xml now lets HQ choose the created time if it’s omitted

v2.20.1 - 2019-10-04

Fixed

  • Missed a CSS selector in the Q2SingleSignOn fix from version 2.20.0

v2.20.0 - 2019-10-03

Changed

  • clint has been removed as a dependency. The command line functionality is now baked into the SDK itself in q2_sdk.core.cli
  • pytest has been updated to version 5.1.3 (from 3.10.0)
  • pytest-asyncio has been updated to 0.10.0 (from 0.9.0)
  • Any command line handling has been rewritten to use the built-in CLI parsing over the deprecated Clint module. As cognizent as the team was about testing, please report any CLI weirdness for patching
  • Tecton type extensions will now reference npm version in the package.json rather than the tar path
  • api_helpers.build_secure_message_xml will now use HQ Server Time for creation is create_time is left blank

Added

  • colorama has been added as a third party dependency
  • It is now possible to disable default extensions. Use this with EXTREME CAUTION! More details in default_settings.py
  • Adds ability for the SDK to handle Tecton log pushes. This is rate limited to prevent DDoS attacks
  • Adds AccessCode DbObject
  • It is now possible to inject your own javascript into a Tecton SSR form via new parameters in the Q2TectonForm constructor as well as the get_tecton_form method

Fixed

  • self.form_fields will now properly work with Q2Tecton q2-select input values
  • Fixes a bug where large response sizes coming back from q2_request without a defined content-type could kill the server
  • Fixes a bug in get_installed which would stack trace if no data_feeds were installed in the database
  • Fixes a bug in Q2SingleSignOn Form that was not resizing the iframe on 4.4 versions of the Q2 UUX stack

v2.19.0 - 2019-09-24

Added

  • First class SSO support! There is now a Q2SSORequestHandler with its own installer and uninstaller
  • SSO Extention type added to q2 create_extension
  • Lots of documentation updates, ranging from better tutorial code samples to a top level Request Handler Types menu
  • Adds VendorAddress install step for DbPlan
  • Ajax functionality detailed in AJAX section of Advanced Features now available with Tecton Server Side Rendered extensions
  • All extension types now generate a frontend directory for serving frontend assets. Usage detailed in the generated READMEs
  • api_helpers.build_add_user_xml now has a DOB element if demo_info.dob exists
  • api_helpers.build_account_association_xml now adds a CifInternal node if link_by_cif is enabled
  • Better type hinting on AuditAction DbObject
  • Adds ActionID to AuditAction CLI response
  • Better type hinting on Vendor DbObject
  • Vendor DbObject CLI has been revamped for much more granular and helpful features
  • Adds the VendorAddress DbObject
  • WARNING Lots of SQL updates and additions. Be sure to run q2 setup_db when taking the version upgrade

Fixed

  • Fixes some bugs with our internal Docker image running on Windows hosts
  • q2 insight -h now accurately shows help for all subparser

Changed

  • api_helpers.build_add_user_xml now builds UserInfo from demo_info.user_info if it exists, rather than just demo_info.social_security_number
  • VendorConfig DbObject no longer passes in a config_name, relying entirely on the vendor_name to pull back information

v2.18.0 - 2019-09-17

Added

  • Adds better support for repository versioning
  • Inspect endpoint how shows repository version (including Unreleased if it’s not present)
  • Inspect CLI entrypoint now shows repository version
  • All extension types will now generate with a frontend directory. For usage instructions, check out the generated README files in frontend/README.txt

Fixed

  • Fixes a case in the password log filter where CSR_PWD json key would not be masked
  • Fixes a backwards incompatibility with ParamsObj classes in 2.17.0 that did not allow dot notation access to the attributes

Changed

  • q2 db get_users --social-security now strips out - non digits and matches against multiple forms in the database (333-22-1111 as well as 333221111 for instance)

v2.17.0 - 2019-09-10

Changed

  • All entrypoints will now act from the root of the repo regardless of where you invoke them from
  • Extra configurations warning now uses a logger instance rather than a print statement
  • All HQApi calls were rewritten to use a base model object. The usage remains the same from a user perspective
  • Updates yapf dependency version from 0.16.2 to 0.28.0

Added

  • All request handlers now have a self.base_assets_url property which will resolve to an appropriate frontend service url
  • q2 generate_hq_api now takes a --endpoint parameter to limit the generation type
  • Adds /assets endpoints to q2 inspect output
  • Adds /assets endpoints to /inspect endpoint
  • Better type hinting for Country DbObject return
  • Adds a **kwargs parameter on HqApi .execute methods. Used for future proofing, such as bt_handle=self.bt_handle for use with AppDynamics if appropriate

Fixed

  • Fixes syntax with Tecton’s Server Side Rendering keepalive
  • Fixes type hinting on HqApi return shapes. Now accurately hinted as lxml elements

v2.16.0 - 2019-09-04

Added

  • Adds a hidden inspect endpoint on each Tecton extension for better support with various UUX versions
  • Adds a proper Ardent uninstaller accessible with q2 uninstall
  • Adds early support for BackOffice endpoints, starting with LogonAdmin. These are accessible in the same way as the rest of the hq_api endpoints
  • All HqResponses will now have a .json() method, which will serialize the response as a dictionary
  • Tecton SSR forms will now fire a keepalive event periodically to keep the Q2Online session alive

Changed

  • q2 get_installed_forms is now q2 get_installed
  • q2 db get_data_feeds is now sorted by data_feed_id rather than name
  • HqResponses have changed their __repr__ method to display as a more readable dictionary when debugging
  • self.online_user.ssn will now automatically cleanse non-digit characters out of the value

Deprecated

  • q2 get_installed_forms has been deprecated in favor of q2 get_installed

Fixed

  • q2 uninstall will now detect the extension type rather than just assume everything is an Online form
  • Fixes a bug where importing the simplejson library would cause HQ calls to fail

v2.15.0 - 2019-08-28

Added

  • Q2BaseHandler now has an extension_name property which will resolve to the module name
  • self.get_template now automatically passes along the current instance state (self) into the “this” variable. i.e. It is now possible to reference {{this.form_fields}} in a jinja template
  • q2 run will now refresh Ardent cache at startup if there is a Tecton extension in your repo. This is to make the SDK play nice with more UUX environments out in the field.
  • /inspect endpoint will now show base_assets_url for Tecton extensions

Changed

  • q2 remove_form is now q2 uninstall

Deprecated

  • q2 remove_form has been deprecated in favor of q2 uninstall

Fixed

  • Fixed a bug where a newly created repo without a requirements.txt would not play nice with q2 CLI commands

v2.14.0 - 2019-08-21

Added

  • Added ArdentInstaller class
  • Helper method for creating a symconnect for mocking

Fixed

  • Serialize multiselect and checkboxes for SSR submit

v2.13.0 - 2019-08-14

Changed

  • q2 install_form is now q2 install
  • q2 create_extension will now put the new extension name at the end of INSTALLED_EXTENSIONS instead of the beginning
  • self.get_template replacements_dict is now optional, rather than requiring you to pass {}

Added

  • q2 install will automatically detect your extension type and run the installer for that particular type
  • It is now possible to pass parametes to routes. If args or kwargs are defined in the signature, the will automatically be pulled from self.form_fields
  • q2 invalidate_hq_cache now has an option for FormView

Deprecated

  • q2 install_form has been deprecated in favor of q2 install

v2.12.1 - 2019-08-09

Fixed

  • Significantly improves CPU usage while monitoring Frontend files for changes (default in q2 run when run without -a)
  • Fixes a bug where add_dependency would misbehave if a requirement had complex dependencies in its signature (i.e. add dependency requests[security])

Changed

  • Built in /inspect endpoint now displays extension_type in addition to existing information

v2.12.0 - 2019-08-06

Added

  • Q2HqRequestHandler now has a self.set_hq_commands method, which is a nicer interface for dealing with HqCommands objects for things like Refreshing Account balances during a user session
  • q2 upgrade will now show q2-smart as an option
  • q2_sdk.hq.api_helpers.build_add_user_logon_xml now takes a skiptac parameter. Defaults to False
  • Adds a q2_sdk.hq.models.backoffice_response.BackOfficeResponse class in preparation for building out more HQ BackOffice endpoint support

Fixed

  • Fixes a bug where LegacyRequestHandler.parse_form_fields was mistakenly using Central’s form field parsing rather than HQ’s version
  • Fixed a bug in q2 upgrade where an IP address was the last entry in the upgrade list

Changed

  • q2_sdk.hq.http.post_to_hq now takes in a response class, allowing overriding of the response shape handling. Defaults to HqResponse as before
  • q2_sdk.hq.models.hq_response.HqResponse now takes a requests.Response object as the first parameter rather than a raw_response string to allow passing metadata. Raw response strings will still work for backwards compatibility
  • Updates the SDK Proc Execution Audit Action to disable PolicyJudge requirements by default

v2.11.1 - 2019-07-30

Added

  • Provide tecton connected hook for setting initial values and triggering tecton functions

v2.11.0 - 2019-07-26

Added

  • Tecton inspect endpoints now respect following the CONFIG_FILE_NAME attribute in the handler
  • q2_sdk.hq.api_helpers now has a get_frequency_bit_flags endpoint for use with AddRecurring* modules in HqApi

Fixed

  • parse_form_fields in hq_handler now http escapes %5B%5D ( [] ) automatically
  • InvalidateHQ both from CLI and programmatically now defaults to NavNodes and UserPropertyDataElements instead of just NavNodes. This could cause Central to be unresponsive until an overnight bounce

Removed

  • TectonConfig table writes have been removed. Running services will now provide their frontend assets directly through a public facing CDN

v2.10.0 - 2019-07-24

Added

  • It is now possible to pass a form field from the frontend with [] in the name to treat it as a list in self.form_fields
  • Adds get_by_short_name method to UserData DbObject
  • Adds q2 db get_user_data_by_short_name CLI entrypoint

Fixed

  • Fixes a bug preventing VendorConfig installation using DbPlans
  • Fixes an IE11 ES6 related issue with buil in Q2Tecton template

Changed

  • Email DbObject will now raise an Exception if bad input is passed rather than killing the python process
  • Better type hinting on MessageTemplate DbObject return
  • Better type hinting on Product DbObject return

Removed

  • The incomplete back button support implementation in the q2_form template has been removed. If you were relying on this, please reach out and we can give you the source code to implement it yourself

v2.9.1 - 2019-07-17

Fixed

  • Fixes a bug with Q2BaseRequestHandler.get_ui_text where an empty string in the database would be returned as a None in python
  • Fixes a bug that would appear in new SDK repos where .antilles/entrypoints would never be created

Changed

  • If an installed extension does not inherit from Q2BaseRequestHandler, q2 check will error (as before), but will now give a helpful error message as opposed to a stack trace

v2.9.0 - 2019-07-15

Added

  • Add server-side rendering with Tecton

Fixed

  • Fix issue with back button
  • Fixes a bug with tab completion for inputs with no valid completions.

Changed

  • q2 bounce_hq is now q2 bounce_stack. This should not be needed for platform versions 4.4 and above.
  • Tutorial is now separated into legacy (pre-4.4) server side-rendering, post 4.4 server-side rendering, and client side.
  • Examples added for integrating Angular and React with client-side rendering.

v2.8.0 - 2019-07-11

Added

  • ArdentHandler based extensions will now generate a db_plan with data_feeds in it (to register it with Ardent on deploy). If you have an existing ArdentHandler extension, you will need to update your db_plan manually.
  • TectonHandler based extensions will now generate a package.json file with parcel to build the dist directory
  • TectonHandler based extensions will now generate a .babelrc file
  • q2 invalidate_hq_cache now has a host of new options (listed in the help)

Removed

  • q2 create_extension will no longer show LegacyRequestHandler as an option. Any code built referencing the LegecyRequesthandler will continue to work

Changed

  • OUTBOUND_WHITELIST error messages were rewritten to be more clear
  • q2 update_installed_form was refactored for greater testability

Fixed

  • Bugfix in Q2Vault class’s get_hq_creds function for cases where HQ_URL was not present in the stored vault value
  • Bugfix for q2 insight get_preferred_hq_list for cases where no HQs are returned

v2.7.1 - 2019-07-03

Changed

  • q2 run will now monitor for changes to typescript (.ts) files as well
  • Adds .lock and package-lock.json files to non-monitored Frontend files list
  • q2 create_extension with Tecton frontends will now put the q2-tecton-sdk reference in package.json rather than the index.html file

Added

  • q2 upgrade will now allow for updating of Tecton versions in frontend directories. Works with both package.json references and hardcoded html references

Fixed

  • Fixes a bug where a newly created repo would throw a NoRootError on any q2 command
  • Fixes a bug in api_helpers where primary_cif was referring to social_security_number. It will now prefer the primary_cif field if available, falling through to using SSN if it’s not

Removed

  • git_hooks will no longer be installed by default. This is now handled by our autodeploy CI process

v2.7.0 - 2019-06-27

Added

  • Adds a MessageTemplate DbObject for getting data from the q2_MessageTemplate* tables in the Q2 Database
  • Adds the USE_SLASH_FOR_INSTALL_PORT setting boolean for Tecton rerouting in the shared dev box. Should be set automatically
  • Adds an @mfa_validation_required decorator for TectonHandlers

Fixed

  • Fixed a bug where node_modules directories would be monitored for file changes when q2 run started

Changed

  • Generating a Tecton powered extension will now use the latest tecton version every time

v2.6.0 - 2019-06-18

Added

  • Adds q2 insight entrypoint with several subparsers for use inside the Q2 network
  • All InsightAPI calls are callable from Python and can be embedded inside extensions
  • Adds the self.central_user property to the Q2CentralRequestHandler class. Central extensions now have easy access to user attributes.

Changed

  • OUTBOUND_WHITELIST will now strip off protocol from whitelisted patterns (http/https). This was leading to confusion in several cases.

v2.5.0 - 2019-06-12

Added

  • Adds capability to Broadcast a secure message to a list of users with an optional attachment
  • Adds a SecureMessage DbObject
  • UserLogon DbObject’s get_login_by_name now takes an optional Admin boolean to change the type of user returned
  • UserLogon DbObject’s get_login_by_id now takes an optional Admin boolean to change the type of user returned

Changed

  • q2 db unlock_user now uses HQ’s ChangeEndUserPasswordStatus endpoint instead of relying on SDK bespoke logic

Fixed

  • Cleans up default generated Q2Tecton form html
  • Fixes a bug where a NOMAD_SECRETS directory might be present without a VAULT_TOKEN, leading to a breaking startup condition

v2.4.0 - 2019-06-05

Fixed

  • Fixes a bug introduced in 2.3.1 where VAULT_KEY was not defined in default_settings.py
  • Fixes a bug where non valid Form shortnames could make it into the database (with spaces)
  • Fixes a bug where Account.MaskedCifInternal could be interpretted as non-text
  • Fixed a bug where q2 create_coreflow would generate a non valid extension.py

Added

  • Adds Vault mocking (Docs under Advanced Features)

v2.3.1 - 2019-05-30

Fixed

  • Fixes a bug where a certain dev flow could cause the SDK package to be built without the HQ api included

v2.3.0 - 2019-05-30

Added

  • Adds initial support for SmartAPI integration
  • Adds a self.smart property to OnlineHandler
  • Adds a get_smart_token method to Vault object
  • Adds AccessCode DbObject for gathering EndUserAccessCodeTargets from our database
  • Adds command line helper for AccessCode q2 db get_access_code_targets
  • Better type hinting on GetEndUserAccessCodeTargets HQApi call

Changed

  • q2_request calls will now detect if they are being invoked from a testing suite and return mock responses rather than make real network calls if appropriate

Fixed

  • Fixes a bug with the /inspect endpoint which would not match extensions with - in the name

v2.2.0 - 2019-05-24

Added

  • CLI Tab completion is now more flexible in where the q2 binary is installed. No longer has to be in a virtualenvironment
  • Adds a new Email DbObject

Changed

  • DOCS Better documentation on setting up VSCode as your IDE

Fixed

  • Fixes bug with q2 add_to_nav which would fail to remove under some conditions

v2.1.4 - 2019-05-13

Changed

  • Updates help text on q2 get_installed_forms to be more clear

Fixed

  • Fixes a condition by which multiple frontend building processes could be started simultaneously

Added

  • Better type hinting on ObjectGroup DbObject

v2.1.3 - 2019-05-09

Fixed

  • Fix Caliper Deployment Manager internal function call
  • Fix bad reference error in q2 db add_nav_node that was missed with the 2.0 upgrade
  • Fixes template bug with BaseMapper in q2 create_coreflow
  • Better detect root of repo for cli tab completion

Changed

  • q2 test will no longer show deprecation warnings

v2.1.2 - 2019-05-02

Fixed

  • Fixes backwards incompatibilities with Windows since 2.0.0 release
  • Updates short_name property in sdk_UpdateUiText Stored Procedure to be consistent with DB length

v2.1.1 - 2019-05-01

Fixed

  • Fixes a bug where if q2 binary was installed at a system level it could cause zombie processes to accumulate, overwhelming the system process table
  • Fixes a bug where a custom form shortname could cause a bad URL endpoint when deployed into the Q2 datacenter
  • Fixes a bug where ‘Installed Extensions’ line would be shown twice during q2 run

v2.1.0 - 2019-04-26

Added

  • q2_sdk.hq.db.user_logon.UserLogon now has get_login_by_name, get_login_by_id, and get methods’
  • Adds q2 db get_user_logon cli entrypoint for quickly looking up user logons

Fixed

  • Fixes InstallSteps in the DbPlan for GtDataElement, ReportInfo, and UIConfigPropertyData
  • Fixes bug with q2 create_extension --minimum-only which would generate a non viable import path for the inherited Handler,
  • Fixes a bug with q2 db <entrypoint> calls which would serialize ‘’ database columns as a null character, confusing the terminal column output”

Changed

  • q2_sdk.hq.db.logon.LogonData now inherits from q2_sdk.hq.db.user_logon.UserLogon rather than having two classes with similar functionality
  • en-US.json file in Tecton frontend folders now starts out blank, inheriting from the default

Deprecated

  • q2_sdk.hq.db.logon.LogonData has been deprecated and will be removed in the future. Please move to using q2_sdk.hq.db.logon.user_logon.UserLogon directly

v2.0.0 - 2019-04-23

Added

  • Introduces Tecton: A robust offering for integrating frontend assets with your SDK extensions (Q2 Online >=4.4 currently)
  • New q2_sdk.core.http_handlers.Q2TectonOnlineRequestHandler handler
  • Introduces the OUTBOUND_WHITELIST variable in settings file. In debug mode, any q2_requests calls will fail if the domain is not whitelisted. This is to encourage frontloading the “please allow this through the Q2 firewall” networking step.
  • Adds TectonError exception type
  • Adds BlacklistedUrlError exception type
  • Adds RunServerError exception type
  • q2 install_form reworked to include Tecton questions
  • q2 remove_form reworked to include Tecton pieces
  • q2 run hosts frontend assets behind a static file server
  • q2 run introduces the —-no-build-assets flag, which disables building frontend assets automatically
  • q2 run will now prompt for killing an existing server on port if detected
  • Adds TectonConfig dbObject for working with Tecton information in the database
  • Adds UserPropertyDataRow type hinting completion class for UserPropertyData DbObject
  • Adds .cache and node_modules to generated .gitignore file
  • Extension name is prompted for in q2 create_extension if omitted
  • New q2_sdk.ui.forms.Q2TectonForm class for server side rendered forms with Tecton powered frontends
  • Adds get_list_by_name method to Product DbObject
  • Adds PhoneNumber DbObject
  • Adds q2 db get_phone_number entrypoint
  • Adds AJAX support into Q2Form powered OnlineHandlers. More docs In the AJAX Support page under Advanced Features

Changed

  • Tornado dependency changed from 5.1.1 to 6.02
  • VPN detection is now automatic and will no longer prompt
  • Moves q2_sdk.core.install_form.get_my_ip to q2_sdk.tools.utils.get_my_ip
  • Signature changes:
    • hq_credentials is now a required parameter for all HqApi WedgeOnlineBanking modules’ ParamObj objects
      • i.e. ActivateAuthToken.ParamsObj(logger, hq_credentials...
  • Renames:
    • q2_sdk.core.dynamic_imports.ExecuteStoredProcedure is now q2_sdk.core.dynamic_imports.api_ExecuteStoredProcedure
    • q2_sdk.hq.db.user_account_attribute.UserAccountAttributes is now UserAccountAttribute to more closely match the singular name pattern of other DbObjects
  • Import Path changes:
    • All HqApi modules are now fully qualified imports
      • i.e. from q2_sdk.hq.hq_api import q2_api; q2_api.ActivateAuthToken will no longer work. It must be from q2_sdk.hq.hq_api.q2_api import ActivateAuthToken
    • All DbObjects are now fully qualified imports
      • i.e. q2_sdk.hq.db.Customer is now q2_sdk.hq.db.customer.Customer
    • q2_sdk.core.http_handlers.* paths have changed:
      • Q2BaseRequestHandler is now base_handler.Q2BaseRequestHandler
      • Q2HqRequestHandler is now hq_handler.Q2HqRequestHandler
      • Q2ArdentRequestHandler is now ardent_handler.Q2ArdentRequestHandler
      • Q2CentralRequestHandler is now central_handler.Q2CentralRequestHandler
      • Q2OnlineRequestHandler is now online_handler.Q2OnlineRequestHandler
      • Q2LegacyRequestHandler is now legacy_handler.Q2LegacyRequestHandler
    • q2_sdk.hq.models.* paths have changed:
      • Account is now account.Account
      • AccountList is now account_list.AccountList
      • AccountRights is now account_rights.AccountRights
      • FormInfo is now form_info.FormInfo
      • HADE is now hade.HADE
      • HqCommands is now hq_commands.HqCommands
      • HqCredentials is now hq_credentials.HqCredentials
      • HqResponse is now hq_response.HqResponse
      • OnlineSession is now online_session.OnlineSession
      • OnlineUser is now online_user.OnlineUser
      • PasswordPolicy is now password_policy.PasswordPolicy
      • SecureMessageAttachment is now secure_message_attachment.SecureMessageAttachment
      • SecureMessengerType is now secure_message
      • find_with_default is now xml_helper.find_with_default
    • q2_sdk.models.* paths have changed:
      • account is now card
    • q2_sdk.models.cores.mappers.* paths have changed:
      • BaseMapper is now base_mapper.BaseMapper
      • BaseDemographicInfoMapper is now demographic_info.BaseDemographicInfoMapper
      • BaseCardListMapper is now card_list.BaseCardListMapper
      • BaseUpdateDemographicMapper is now update_demographic_info.BaseUpdateDemographicMapper
    • q2_sdk.models.cores.models.* paths have changed:
      • CoreUser is now core_user.CoreUser
      • CoreResponse is now responses.CoreResponse
    • q2_sdk.models.cores.queries.* paths have changed:
      • BaseQuery is now base_query.BaseQuery
      • BaseRestrictedQuery is now base_restricted_query.BaseRestrictedQuery
    • Install steps are now fully qualified imports
      • i.e. from q2_sdk.core.install_steps.DbPlan is now from q2_sdk.core.install_steps.db_plan import DbPlan
  • If UserPropertyData InstallStep in DbPlan matches more than one Product, it will not install for all matching products
  • Adds q2 ardent refresh_cache entrypoint for use with 4.4 stacks
  • Ardent RefreshCache will automatically be called on q2 add_to_nav if appropriate

Removed

  • Removes DISABLE_BROWSER_LINK flag in settings file
  • Removes USE_SCSS flag in settings file
  • q2 run removes the --disable-browser-link flag and capabilities to auto refresh frontend assets in a pre-Tecton manner
  • Removes BrowserLink built-in extension
  • Removes redirect_route and destination parameters from q2_sdk.ui.modals.ModalAction class in favor of external_route and internal_route
  • Removes q2_sdk.ui.script_appenders.BrowserLinkAppender class

Fixed

  • Faster entrypoint loading
  • Fixes a bug with hq_api changes not being tracked
  • q2 upgrade now matches alpha version string
  • q2 upgrade coloration in shared dev machine
  • q2_sdk.tools.utils.get_repo_root will no longer have the side effect of changing the working directory
  • Fixes a backwards incompatibility bug with sdk_AddApiStoredProc SQL Stored Procedure
  • Fixes a bug with HQ Api calls that took child parameters called ‘int’ and mistakenly serialized them as ‘integer’

v1.89.1 - 2019-04-17

Fixed

  • Fixes a startup bug with the recent get_certificate code under certain datacenter conditions
  • Fixes a bug with q2 add_ui_text command line entrypoint

v1.89.0 - 2019-04-16

Added

  • Adds GTDataElement DbObject and associated InstallStep
  • Adds q2_sdk.core.vault.get_certificate method for working with client certificates
  • Adds a q2 add_new_account entrypoint for working with account data from the CLI in dev
  • Adds q2 db get_gt_data_elements, q2 db add_gt_data_element, and q2 db remove_gt_data_element entrypoints
  • Adds q2 db get_host_account_elements entrypoint
  • Better type hinting on Prodct and User DbObjects

Fixed

  • Fixes a bug that prevented removal of navigation nodes in staging/prod environments

v1.88.1 - 2019-04-12

Added

  • q2 check will now ensure DEBUG=True has not been hardcoded in the settings file

v1.88.0 - 2019-04-09

Added

  • ApiStoredProc DbObject now takes an audit_action shortname

Fixed

  • Fixes styling issue with index.html template provided with q2 create_extension
  • Fixes a bug where certain production deployments of HQ were not compatible with WedgeOnlineBanking calls

v1.87.0 - 2019-04-02

Added

  • Adds MessageRecipientGroup DbObject

Fixed

  • Fixes import path in generated create_extension outputs

v1.86.0 - 2019-03-29

Changed

  • q2 create_extension will now generate jinja templates for index and submit pages rather than using q2_sdk.ui.fields variants

Added

  • q2 upgrade will now prompt for installing sql scripts after the upgrade completes. INFO This will only work if the version you are upgrading FROM is this one or later

v1.85.0 - 2019-03-27

Fixed

  • Fixes a bug where add_nav_perms would fuzzy match prefixes allowing for the wrong property to be updated
  • Fixes a bug where older db_versions could not be updated with q2 setup_db

Added

  • Adds an update method to the UiText dbObject
  • Adds a q2 db update_ui_text entrypoint
  • Adds a get method to the WedgeAddress DbObject
  • Adds a q2 db get_wedge_addresses entrypoint
  • Better type hinting on q2_sdk.hq.models.OnlineUser.demographic_info

Changed

  • WARNING SQL scripts have been updated. Please run q2 setup_db to ensure you are up to date

v1.84.0 - 2019-03-19

Added

  • Adds a q2 db reset_password which will reset a password for a given login name
  • q2 create_coreflow now takes a –core-name and a –operation parameter

Fixed

  • Fixes a bug with q2 check that would fail to test importability of CUSTOM_CORES
  • Fixes a bug with q2 check that would cause a failure if certain older versions of q2-cores were installed
  • Fixes a bug with q2 check which would cause a failure if ONLY CUSTOM_CORES were installed with no q2-cores
  • Fixes a bug with q2 test where node_modules wasn’t properly ignored
  • Fixes a bug with q2 generate_config which was not properly discovering Q2OnlineRequestHandler as the parent class
  • Fixes a bug with q2 generate_config which was not working proeprtly with CUSTOM_CORES
  • Fixes a bug with the DemographicInfo class which was not properly filtering out None items

Changed

  • q2 db create_online_user no longer preselects group 1

v1.83.0 - 2019-03-13

Fixed

  • Fixes a bug with ZSH tab completion if an entrypoint has a / in the description

Added

  • Adds a q2 create_online_user entrypoint for use in dev environments
  • q2 setup_db now differentiates between HQ versions and installs appropriate sql
  • q2 setup_db now has a --db-version flag to lock down instead of autodiscover db version
  • q2_sdk.hq.api_helpers now has a ``generate_user_logon_password` function which will create a random password
  • NavNode dbObject now takes in a route_parameters for 4.4 environments
  • Adds ConfigPropertyID and UiSource to UiConfigPropertyData dbObject cli output
  • UiConfigPropertyData now has a .update method
  • Created a hq.models.PasswordPolicy object for use with the generate_user_logon_password function

v1.82.2 - 2019-03-06

Added

  • Enables apispAddAccountAssociation stored procedure by default which is used for certain account linking workflows

Fixed

  • Fixed a bug in the clone_from_gitlab script on the shared dev box that caused newly cloned repos to fail running the q2 binary

v1.82.1 - 2019-03-04

Fixed

  • Fixes a bug where default port was not detected in q2 install_form
  • Fixes a bug where the Form’s form_name was used instead of short_name in the q2_wedge_address table
  • Fixes a bug where group_ids passed on the command line were not cast to integers appropriately for q2 install_form

v1.82.0 - 2019-03-01

Fixed

  • Fixes a bug where passwords were not always masked if embedded in a JSON blob
  • Fixed a bug where trying to install a form with 0 groups selected would raise an exception

Added

  • Adds a q2 invalidate_hq_cache entrypoint for >=4.4 stacks, facilitating live NavNode reloads without a full HQ bounce
  • Creates a WedgeAddress dbobject
  • Adds Type hinting on UiText dbobject return shapes

Changed

  • AddToNav will now use InvalidateCache if appropriate
  • q2 test will now ignore ‘node_modules’ directory if it exists in preparation for upcoming front end development focused release
  • Removes the sdk_InstallForm.sql file and splits it into more targetted sdk_AddWedgeAddress and sdk_AddForm
  • Warning Please run q2 setup_db to get the latest DB changes
  • q2 get_ui_text’s language parameter is now optional (--language)
  • q2 generate_hq_api will now generate an init file with relevant deprecation warnings inside

v1.81.0 - 2019-02-25

Changed

  • Splits Q2RequestHandler into several smaller handlers
  • Code is backwards compatible, though we will deprecate the use of Q2RequestHandler in the future and prefer the newer ones
  • Updates q2 check with knowledge of new RequestHandler types
  • q2 create_extension will now prompt for RequestHandler type, defaulting to the backwards compatible version

Added

  • Adds Q2HqRequestHandler
  • Adds Q2ArdentRequestHandler
  • Adds Q2CentralRequestHandler
  • Adds Q2OnlineRequestHandler
  • Adds a --minimum-only flag to q2 create_extension to remove unnecessary boilerplate
  • Adds a get_data_by_value method to UserData dbObject

v1.80.0 - 2019-02-13

Added

  • Adds File DbObject for interacting with the Q2_File table
  • q2 install_form now takes a -y or --accept-defaults flag to not prompt for db_configurations changes
  • User DbObject now has a set_profile_update_flag method and CLI command
  • Customer DbObject now has a get_logins_by_customer method and CLI command
  • DataFeed DbObject get method can now gather more details if a specific short name is provided

Changed

  • q2 install_form prompts for DbConfig Lists now default to False, meaning “Do not edit” easier user interaction flow

Fixed

  • Fixes a bug which broke Core imports in older versions of q2_cores

v1.79.1 - 2019-02-11

Changed

  • Updates for faster start times running q2 command and subcommands

Deprecated

  • from q2_sdk.hq.hq_api import q2_api; q2_api.ModuleName is now deprecated in favor of from q2_sdk.hq.hq_api.q2_api import ModuleName

v1.79.0 - 2019-02-07

Added

  • Adds UserData DbObject
  • AuditRecord DbObject now has a .create method for ease of use
  • Better type hinting on DbObject.hq_response property
  • Adds get_users_under_customer method to User DbObject
  • Adds update_by_id method to UserPropertyData DbObject
  • WARNING Please run q2 setup_db to install the latest stored procedures for new functionality

Changed

  • Q2SingleSignOn object now hides Q2’s built in submit button using CSS rather than javascript

v1.78.0 - 2019-02-05

Added

  • Adds Product DbObject
  • Adds ProductType DbObject
  • Adds support for Product and ProductType columns in UserPropertyData DbObject/install steps

v1.77.0 - 2019-01-29

Added

  • Updates HQ Api bindings to 4.4.0

Fixed

  • Fixes a bug with bash completion where user aliases could affect completion results
  • Fixes the name parameter mismatch in q2 db add_third_party_data_element
  • Fixes the name parameter mismatch in q2 db remove_third_party_data_element

Changed

  • ThirdPartyDataElement.delete will now remove all related ThirdPartyData rows first to avoid foreign key constraints
  • NOTE To take advantage of this, please run q2 setup_db to update your db scripts

v1.76.0 - 2019-01-24

Added

  • q2 create_extension now has a –register flag to auto register in the settings file
  • Adds a Customer DbObject
  • Adds the ability to search the User DbObject by SSN, PrimaryCif, or both
  • Adds the ability to search UserPropertyData DbObject by UserRoleID
  • Failures in Stored Procedure calls that didn’t technically fail at the HQ layer will now print the Sproc error message to the logs

Fixed

  • Fixes a bug with UserDemographicData not serializing correctly if there are emails

v1.75.1 - 2019-01-18

Added

  • q2 add_to_nav now takes a -f/–form-id parameter

Changed

  • q2 remove_form –form_id has become –form-id
  • q2 remove_form –short_name has become –short-name

Fixed

  • Fixed a bug preventing q2 update_installed_form -c from truly accepting a dictionary input
  • Fixes a bug where calling .text on a non-existent xml element in self.account_list would throw an error. Now returns ‘’ instead
  • Fixes a bug in q2_form that prevented forward UUX versions from accurately hiding the double submit button
  • Fixes a backwards incompatibility bug with putting q2_cores.CoreName in the settings file as CORE

v1.75.0 - 2019-01-15

Added

  • Adds User DbObject
  • Adds q2 db get_user entrypoint
  • WARNING Please run q2 setup_db to install the latest stored procedures for new User functionality

v1.74.0 - 2019-01-11

Added

  • Adds the State DbObject (q2_sdk.hq.db.state)
  • Adds the q2 add_dependency entrypoint for installation of of third party dependencies
  • q2 run_db_plan now takes a –file (or -f shortform) parameter to run using a seed file
  • Adds a .element attribute to q2_sdk.hq.models.HADE which will have the raw xml object pre parsed

Fixed

  • Fixed a bug where entrypoints ending with the letters p or y would not load correctly
  • Fixed a backwards incompatibility with CUSTOM_CORES. Upgrades from prior versions using the custom core idea will now have a clean upgrade path

v1.73.1 - 2019-01-07

Fixed

  • Fixes logging filter bug where a tuple message would cause a stack trace in the logs
  • Further cleans up incoming xml auto type discovery in regards to floats, strings, integers, and booleans

v1.73.0 - 2019-01-03

Added

  • Lists and dictionaries are now supported in the wedge address configs with command line install

Fixed

  • zero value floats and integers will no longer be evaluated to blank strings in account details and account data elements

v1.72.5 - 2018-12-19

Changed

  • HealthCheck is now more performant

Fixed

  • Don’t print extraneous nav perms warning when using from CDM

v1.72.4 - 2018-12-18

Changed

  • Moved Paden Rose to the Caliper Team section of the Authors
  • add_nav_node improvements in staging and prod deployer tool
  • performance improvements populating the hade_dict for accounts

v1.72.3 - 2018-12-17

Fixed

  • Fixes a BIG performance bug with logging filters
  • Fixes a bug with VaultInfo InstallStep when being called by /inspect
  • Performance improvements in Log Filtering RegEx expressions
  • Performance improvements in self.account_list object instantiation

Changed

  • WARNING self.logging_filters is now the LOGGING_FILTERS static attribute in the class handler

Added

  • DemographicInfo object emails will now filter out invalid emails (based on test@test.com) pattern

v1.72.2 - 2018-12-13

Fixed

  • Tweak vault info install step to work with the CDM
  • Fix backwards compatibility of deprecated kwargs in modal actions

Changed

  • Allow configurable vault prefix

v1.72.1 - 2018-12-12

Fixed

  • Fixes bug with /logging endpoint to more effectively run behind a load balancer

v1.72.0 - 2018-12-06

Added

  • Adds insight_features to db_plan to allow stored_procedures registered outside of the sdk to be installed as part of form installation
  • Adds VaultInfo InstallStep to seed Vault with key value pairs on form installation
  • Adds insight_features related checks in q2 check command
  • Adds better type hinting on GetAccountDetailsById Q2Api method

Fixed

  • Cleans up InstallStep discovery in install_form code
  • Fixes bug with Core registration in settings.py file

Changed

  • It is no longer necessary to reference q2_cores supplied Core objects as ‘q2_cores.Corename’ in settings.py. It is sufficient to say just ‘Corename’. Old versions will remain backwards compatible.

v1.71.0 - 2018-12-03

Added

  • Adds ApiStoredProc install step for use with DbPlan

Fixed

  • Fixes bug where null HQCredentials passed to a CoreMapper would raise an exception rather than using the Q2Api version of the call

v1.70.3 - 2018-11-30

Fixed

  • Fixes a bug with UserPropertyDataElement InstallSteps for automated deployment

v1.70.2 - 2018-11-28

Fixed

  • Fixes a bug with HQResponse object where Error responses without a description were coming back as success

v1.70.1 - 2018-11-28

Fixed

  • Fixes bug with q2 check where certain failures would not result in a non-zero exit code (for git hook integration)

Added

  • Splits BaseMapper.execute into _run_queries and ``_parse_responses` to allow for more specific overrides

v1.70.0 - 2018-11-27

Added

  • SendAccountList, SendAccountDetails, and WedgePayloadStoredProc are now supported in q2 get_installed_forms -f <id> and q2 get_installed_forms -e <name> commands
  • SendAccountList, SendAccountDetails, and WedgePayloadStoredProc are now supported in DbPlan, which will flow through to q2 update_installed_form and q2 install_form commands
  • Adds Uninstall ability for ThirdPartyDataElement DbObject
  • Adds Uninstall ability for UiConfigPropertyData DbObject
  • Adds Uninstall ability for UserAccountAttribute DbObject

Removed

  • Removed PfmClassification DbObject
  • Removed PfmProduct DbObject

Changed

  • WARNING UpdateInstalledForm, GetInstalledForms, and InstallForm sql has changed. Please run q2 setup_db to seed the database with the latest stored procs

v1.69.6 - 2018-11-20

Fixed

  • Ensures optional_db_configs are in /inspect endpoint

v1.69.5 - 2018-11-19

Fixed

  • Fixed a bug with wedgeOnlineBanking API calls that referenced a non-existent variable

v1.69.4 - 2018-11-16

Added

  • Adds type hinting on GetAccountListByExternalCif HqApi call
  • Auto cleanses q2_sdk.models.demographic.DriverLicense input

Fixed

  • Custom Created Dynamic Cores will now display in q2 install_form and q2 update_installed_form entrypoints
  • Custom Created Dynamic Cores will now display at /inspect/extension_name endpoint

v1.69.3 - 2018-11-14

Fixed

  • Fixes DbObject calls after last release

v1.69.2 - 2018-11-14

Fixed

  • Fixes bug with VerifyMicroDeposit HQAPI call

Changed

  • Introduces a .execute method on all HqAPI methods that will call either .get_soap or .get_json for you. This is just for convenience to keep the interface consistent.

v1.69.1 - 2018-11-09

Fixed

  • Autodiscovers new VPN octet in Q2’s network
  • Auto cleanses SSN input in q2_sdk.models.demographic.DemographicInfo class

Added

  • Adds OPTIONAL_WEDGE_ADDRESS_CONFIGS to address a situation where stale database configurations could break extension upgrades

v1.69.0 - 2018-11-08

Added

  • q2 test now has a --coverage option that will show testing code coverage
  • A failed core response mapping will now show the raw core response in an ERROR level log

Changed

  • q2 setup will no longer prompt for ABA. This is now handled on the Q2 side at deployment configuration time

Security

  • Updates mistune, pytest, pytest-asyncio, and python-dateutil packages to the latest versions

v1.68.0 - 2018-11-02

Added

  • Adds NotificationType DbObject

Fixed

  • Fixes bug with CLI tab completion if called from a non root directory of the repo
  • Fixes bug where NULL HqAuthTokenTypeID in the database installation would cause the online_form response to fail

Changed

  • Changes signature of q2_sdk.ui.modals.ModalAction. redirect_route is now called external_route. destination is now called internal_route. If you previously used keyword parameters, this is backwards compatible. If you w Previous keywords are deprecated but still available

v1.67.1 - 2018-10-31

Security

Changed

  • Updates minimum tornado version to 5.1.0

v1.67.0 - 2018-10-29

Added

  • Upgrades to Python 3.7 base
  • Adds a /logging endpoint via which you can temporarily change the LogLevel of your running service

Changed

  • WARNING Clients in the Shared Dev cloud machine must update to this version by running the command upgrade_to_python3.7 in their shell

v1.66.2 - 2018-10-26

Added

  • Introduces a self._account_model_proxy property on Q2RequestHandler class to allow overriding of the Account Model for specific FIs

v1.66.1 - 2018-10-25

Security

  • Built in Password filter better handles JSON objects with password string in them

Fixed

  • Ensures several fields on Account model are strings (aba, acct_desc, acct_label, acct_number_internal, acct_number_internal_unmasked, acct_number_external_unmasked, cif, cif_internal, cif_internal_unmasked)

v1.66.0 - 2018-10-23

Added

  • Added support for use and compilation of SCSS files

v1.65.0 - 2018-10-16

Added

  • Adds disclaimer_id_to_skip parameter to HqCommands to support Disclaimer postpone

v1.64.2 - 2018-10-15

Changed

  • Updates default event loop such that up to 128 max connections can be made to external services (rather than 5 * CPU cores as default)

Fixed

  • Handles a situation where OnlineUser SSNs starting with 0 were not appropriately masked
  • Fixes a regression in sdk_InstallForm that set URL to 100 characters instead of 256

v1.64.1 - 2018-10-12

Fixed

  • Fixed a condition where a missing .style.yapf file could cause errors on q2 create_extension call
  • Fixed a communication bug with HQ calls that use Enum type variables
  • Above fixes ClientStartup, CreateAlertByHadeCurrencyNotification, CreateAlertByOnlineActivity, CreateAlertByPostedTransaction, SendNotification3, SendNotification3WithHtml, SendNotification4, SendNotification4WithHtml, SetLoggingLevel, and UpdateReportRun endpoints

v1.64.0 - 2018-10-09

Added

  • Adds –output (-o) flag to q2 generate_hq_api to override the default output directory
  • Adds -e flag to q2 run_sql command for consistency across other CLI entrypoints
  • Adds self.ssn attribute to q2_sdk.models.account.Card class
  • Adds uninstall capability to the AuditAction InstallStep (for use in dev only)

Fixed

  • Correctly handles boolean HqAPI Parameter Object types

v1.63.1 - 2018-10-09

Fixed

  • Log an error if settings.CORE is unimportable rather than failing silently on q2 run
  • Fixed a bug that prevented WedgeOnlineBanking calls from reusing the existing HQ and Token passed in on the request
  • Will now only rotate HQ creds if the last failure one tried is in the list of options stored in settings.HQ_CREDENTIALS (Does not affect requerying Vault for updated creds in the event of failure)
  • Fixes a bug where exceptions from the Core were not being reported as error_messages in HqResponse objects

v1.63.0 - 2018-10-04

Fixed

  • Adds a Global PasswordFilter to mask CsrPwd and UserPassword nodes in the logs
  • Fixes a bug where missing initial HQ credentials under some conditions not refresh from subsequent vault calls

Changed

  • Disclaimer DbObject, InstallStep, and SQL has been completely rewritten. This now takes less parameters, handles more cases, and type hints more effectively
  • self.aba, self.hq_url, and self.hq_auth_token are now removed, refer instead to self.hq_credentials.aba, hq_url, and auth_token variants

Added

  • Adds Disclaimer.get_disclaimer_form_data method for associating DisclaimerFormDataIDs with Disclaimer runtime calls

v1.62.0 - 2018-10-03

Added

  • Added gitattributes file to handle line ending mismatches between linux and windows

Fixed

  • Ignore /inspect calls in logs
  • Allow https form urls
  • Handle empty hq urls with rotating hq feature

v1.61.1 - 2018-10-02

Fixed

  • Fixes a bug where html tags were being cleaned off of central reports in error
  • Fixes a bug where upgrading q2-cores would also upgrade q2-sdk

v1.61.0 - 2018-10-01

Deprecated

  • settings.ABA/CSR_USER/CSR_PWD/HQ_URL have been deprecated in favor of settings.HQ_CREDENTIALS object with the same properties

Fixed

  • Fixed a bug that would prefer ABA as VAULT_KEY over a provided VAULT_KEY environment variable if both were present
  • Fixes a bug where rotating vault token from NOMAD was not being respected
  • Fixed a bug where forms installed without a custom_name could cause q2 get_installed_forms to raise an exception

Changed

  • settings.VAULT_CLIENT no longer the source of truth for if vault is used for a given service. Now self.USE_VAULT_FOR_CREDS is used
  • q2_sdk.core.vault:get_client() will now give a fresh vault client each time (Used to reuse existing connection)
  • Updates all built in HqApi classes to use settings.HQ_CREDENTIALS instead of individual HQ_URL/CSR_USER/etc properties

Added

  • Adds ability for HQ_URL to be defined as a comma delimited list, either as an ENV variable, or in VAULT
  • Updates q2_sdk.hq.models.HqCredentials to support multiple HQs (hq_url_list property), and rotation logic between them
  • Adds logic for rotating through provided HQ connections when an HQ begins throwing an error
  • Adds hq_list information to both inspect endpoint (/inspect) and entrypoint q2 inspect
  • Adds a default logger for DbObjects

v1.60.1 - 2018-09-25

Fixed

  • Fixes bug with q2 db update_nav_node which made unrunnable
  • Fixes a bug with toggleable command line list selection after the first page (such as group selection on install_form)

v1.60.0 - 2018-09-24

Added

  • Q2RequestHandler will now automatically detect and parse Central Form PostData and RoutingKeys

Changed

  • Cleans up logic for valid version detection in q2 check entrypoint
  • Non responsive cache endpoints will now log errors to the server log

Fixed

  • Fixes a bug where a non responsive cache endpoint could kill an entire request

v1.59.1 - 2018-09-12

Fixed

  • Fixed a bug where self.cache.incr and self.cache.decr would throw errors

Added

  • /inspect endpoint will now display settings.DEBUG value

v1.59.0 - 2018-09-06

Security

  • Greatly refactored all the sql stored procedures behind the scenes
  • Added audit actions on all stored procedures
  • Added Error logging for all stored procedures

Changed

  • UserPropertyData rows now default to NULL UiSource rather than OnlineBanking

v1.58.0 - 2018-08-30

Fixed

  • Fixes a bug where certain q2_request errors would cause AppDynamics business_transactions to be closed twice
  • Fixes a bug with any HqAPI calls that took an xml_payload input.
  • WARNING If you are using any existing versions of this call (SendSecureMessageAsXml, AddCustomer, AddUser, AddUserLogon) you should update to using q2_sdk.hq.hq_api.q2_api version

Added

  • q2 add_nav_perms now has a –form-id (-f) and a –short-name (-e) flag for ease of use
  • Header generated as part of form.Q2Form now has an html id (q2-form-header)

Changed

  • Add UserPropertyData now defaults to NULL instead of OnlineBanking
  • Install Form URL field now handles URLs up to 256 characters (up from 100)
  • sdk_UnlinkAccount stored procedure is now only available in dev

v1.57.0 - 2018-08-27

Added

  • DataFeed InstallStep now has an uninstall feature which will be run on q2 run_db_plan --reverse
  • Vendor InstallStep now has an uninstall feature which will be run on q2 run_db_plan --reverse

Changed

  • TaxIDFilter is now on by default, which will log Social Security Numbers and TaxIDs as xxx-xx-1234

Fixed

  • Fixed a bug where Modals with newlines in their messages would cause an exception

v1.56.3 - 2018-08-22

Fixed

  • Fixes a missed reference to AdapterPassThru in core base_query.execute

v1.56.2 - 2018-08-22

Fixed

  • Fixes a bug where dev only stored procedures were not installed with q2 setup_db

v1.56.1 - 2018-08-14

Fixed

  • Fixed a bug where the builtin hq_api bindings would not be pulled down with the source distribution

v1.56.0 - 2018-08-13

Fixed

  • Better handling of Nested objects in generated HqAPI methods
  • Fixed a circular import regarding the RecursiveEncoder object
  • Fixed a circular import with the UniqueStack object

Changed

  • A generic form of the HqAPI bindings now live with the SDK module. Accessible via q2_sdk.hq.hq_api
  • As per the above, it is no longer necessary to run q2 generate_hq_api to get access to the HqAPI python bindings
  • q2 generate_hq_api will no longer write to an hq_api directory in the current directory, but rather hq_api_overrides. This was done for backwards compatibility
  • All builtin entrypoints (q2 install_form, q2 db get_groups, etc) now use the generic HqAPI python bindings

Added

  • HqAPI bindings now have better type hinting. In the instance of ExecuteStoredProcedure for instance, a SqlParam’s DataType is now an enum accessible via ExecuteStoredProcedure.DataType.{VarChar,Int,Bit} etc

v1.55.4 - 2018-08-13

Fixed

  • Fixes a bug with q2 update_installed_form to handle dynamic core configurations

Security

  • Moves potentially destructive SQL Stored procs into a dev_only subfolder so they will not accidentally be seeded into a production database

v1.55.3 - 2018-08-07

Fixed

  • Fixes a bug where an OnlineUser’s zipcode would lose leading zeros

v1.55.2 - 2018-08-06

Fixed

  • Fixes a problem with backwards incompatibility in the UserPropertyDataElement DbObject

v1.55.1 - 2018-08-02

Fixed

  • Fixes AppD remote service call details

v1.55.0 - 2018-08-01

Added

  • Adds CreditCardFilter to built in logging filters
  • Adds bt_handle parameter in call_hq to allow AppDynamics tracking in HQ calls

v1.54.1 - 2018-07-31

Fixed

  • self.get_ui_text will now correctly discover the current HQ token if applicable

v1.54.0 - 2018-07-25

Added

  • Adds the concept of OPTIONAL_CONFIGURATIONS alongside REQUIRED_CONFIGURATIONS. These will behave in the same manner, but will not stop the webserver from starting if omitted

Changed

  • Updates q2 install_form to prompt for OPTIONAL_CONFIGURATIONS if appropriate
  • Updates q2 update_installed_form to prompt for OPTIONAL_CONFIGURATIONS if appropriate
  • Updates ```q2 generate_config`` to prompt for OPTIONAL_CONFIGURATIONS if appropriate

v1.53.1 - 2018-07-23

Fixed

  • Fixed a bug where an empty WedgePathName in the database would cause subsequent Install Form calls to fail

v1.53.0 - 2018-07-19

Added

  • UserDemographicData DbObject now has a .get method

v1.52.7 - 2018-07-18

Fixed

  • Fixed a bug where an empty form_field could result in broken xml
  • Fixed q2 upgrade entrypoint on Windows

v1.52.6 - 2018-07-16

Fixed

  • Fixes a bug where Windows would not detect ip with q2 update_installed_form --my-ip in some cases

Added

  • q2 db get_nav_nodes now returns FormID if applicable

v1.52.5 - 2018-07-13

Fixed

  • Add to nav perms now sets source id correctly

v1.52.4 - 2018-07-11

Fixed

  • Fixes a bug where a navigation node installed without a UiSource was unable to be removed

v1.52.3 - 2018-07-09

Fixed

  • Fixed a bug where calling q2 without parameters would result in an error

v1.52.2 - 2018-07-06

Fixed

  • Fixed a bug with the command line interface not taking parameters for anything except q2 test

v1.52.1 - 2018-07-06

Fixed

  • Fixes a circular import (under some conditions) in q2_sdk.core.__init__.py

Added

  • q2 test now takes arbitrary parameters. Any params not handled by the SDK will be passed through to pytest

v1.52.0 - 2018-07-06

Added

  • Togglable Menu items (such as selecting groups) now support ‘a’ and ‘b’ for all and none respectively
  • Adds ReportInfo DbObject with Add, Create, Update, and Delete functionality

Fixed

  • Fixes a bug with the builtin TaxIDFilter where dict types in logs would raise an exception
  • Fixed a bug with q2 setup_db --print where SQL scripts without newlines at the end would generate syntacticaly incorrect SQL

v1.51.1 - 2018-07-05

Fixed

  • Fixes a bug where an outside service could not call the add_to_nav function

Added

  • Adds a --strict flag to q2 db get_user_property_data for backwards compatibility. Leaving this off will show properties for all users
  • Adds clearModal as a builtin function to the Q2Form template
  • Adds IDE completion information for the GetAlertTypeDetailIDs Hq call

Changed

  • Correctly sets --category as an optional parameter for q2 db add_user_property_data_element

v1.51.0 - 2018-07-02

Added

  • Modals can now have up to three custom action buttons, up from a max of 1. The keyword argument “modal_actions” now accepts a list of ModalAction objects.
  • Added audit record as a DB object
  • Add CLI management for new audit record DB object

Fixed

  • Correct issue causing custom extension filters to not function as intended

v1.50.0 - 2018-06-28

Added

  • q2 run_db_plan now has a -y option to accept all defaults
  • Created UserPropertyDataElements InstallStep
  • Built UserPropertyData and UserPropertyDataElements InstallStep uninstall functionality for local dev

Changed

  • UserPropertyData and UserPropertyDataElements DB Objects were given an overhaul for more flexibility
  • UserPropertyData and UserPropertyDataElements sql scripts were rewritten

v1.49.3 - 2018-06-27

Fixed

  • Fixes non-link-by-cif functionality of q2 db add_linked_account
  • Fixes bug with q2 db update_nav_node implementation which could lead to “duplicate node” errors in the db
  • Fixed javascript error that would be logged to the console regarding inputmask on a nonexistent phone field

Changed

  • Defaults self.use_style_fixes to False until more conditions are tested. This was causing double submit buttons to appear in some environments

Removed

  • q2 get_nav_nodes is removed in favor of q2 db get_nav_nodes

Added

  • Adds command line flags to q2 db get_nav_nodes, q2 db remove_nav_node, and q2 db update_nav_node

v1.49.2 - 2018-06-21

Fixed

  • Fixed a bug with q2 check introduced in 1.49.0

v1.49.1 - 2018-06-21

Fixed

  • Fixes an edgecase where classes with overridden call methods could not be used as routes

v1.49.0 - 2018-06-20

Added

  • ModalAction: Added support for redirection to an internal extension route via the keyword argument “destination”.
  • Improvements to nav node DB tools

Removed

  • Removed an assertion preventing a routing_key from being set on Q2Form when hide_submit_button is True

v1.48.1 - 2018-06-12

Fixed

  • Fixes a condition where a malconfigured dynamic core configuration breaks the error logging

v1.48.0 - 2018-06-12

Added

  • If Certificate and Key paths are provided in settings, will also run server over https
  • If VERIFY_HQ_CERT is set to False in settings, will ignore certificate errors for HQ communication
  • Can now skip the allow_default_settings check in q2 run using either the -d or –allow-default-settings flags

v1.47.0 - 2018-06-08

Added

  • Routing framework now handles non async methods
  • q2 db update_nav_node now also handles Route type nodes (This can be used to create parent menu items)

Fixed

  • Fixed a bug with q2 db update_nav_node updating non DirectLink type nodes

v1.46.2 - 2018-06-07

Changed

  • Clearer issue resolution message when creating_coreflow

Added

  • Warning message now appears if running q2 run from a location other than the root of the repo

v1.46.1 - 2018-06-06

Fixed

  • Fixes reordering of nav nodes query with q2 db update_nav_node
  • Fixes bug with leaving a SelectMenu prompt blank while using a default value
  • Fixes a bug with using q2 upgrade to change q2-cores versions on the shared dev environment

v1.46.0 - 2018-06-04

Added

  • Creates the CoreUser model for instantiating Core models. This is a combination of self.online_user and self.account_list

Fixed

  • Core configurations can now accept complex data types (list, int, float) rather than just str

Deprecated

  • If q2-sdk is updated without updating q2-cores, will throw a deprecation warning when self.core is called prompting update

v1.45.2 - 2018-06-01

Fixed

  • Adds self.return_as_html on q2_sdk.core.web.Q2RequestHandler in the event a handler wants to turn off that functionality

v1.45.1 - 2018-05-30

Fixed

  • Fixes a bug where an empty NavigationNode.Order would cause get_nav_nodes to throw a stack trace
  • Fixes a bug where the /cache endpoint would fail to load if running behind a load balancer

Changed

  • q2_request calls will now log the URL on error in addition to the response
  • self.get_template will now only log what directories it is searching if it fails to find the template

v1.45.0 - 2018-05-25

Added

  • q2_sdk.core.cli.cli_tools.MenuOption now has functionality for toggling style menus
  • Creates FormToGroup dbObject
  • Adds q2 db get_form_to_group, q2 db add_form_to_group, q2 db remove_form_from_group commands

Changed

  • q2 update_installed_form now prompts for group membership

Fixed

  • Fixed a bug where the /cache endpoint’s materialize.css file would sometimes not make it into the built package
  • Fixed a bug with production server cookie generation

v1.44.8 - 2018-05-22

Fixed

  • Fixed another Byte Order Mark use case for html local asset loading

v1.44.7 - 2018-05-21

Fixed

  • Fixed a bug where looking up a vault key by a deprecated name would cause the service to not start

Added

  • q2 check will now search for usages of self.WEDGE_ADDRESS_CONFIGS where self.wedge_address_configs should be used instead
  • ``q2_sdk.models.demographic.Phone.build_from_str will now autodetect extensions”

v1.44.6 - 2018-05-17

Fixed

  • Apply SSO form styles to non theme-q2 themes

Added

  • Persist cookie through server reloads for faster development

v1.44.5 - 2018-05-15

Added

  • Added a ‘use_viewport-height’ keyword argument to Q2SingleSignOn form that will stretch the SSO content area to the height of the browser window (desktop only).
  • Add “db unlock_user” command to the CLI

Fixed

  • Phone style fixes for SSO form

v1.44.4 - 2018-05-14

Fixed

  • Removes Byte Order Mark from locally expanded template files

v1.44.3 - 2018-05-09

Fixed

  • Reverted get_template always returning bytestrings. Caused too many backwards incompatibilities

v1.44.2 - 2018-05-09

Fixed

  • Fixes encoding issue which caused Q2Forms to stack trace on return
  • Fixes encoding issue which caused Central Forms to stack trace on return

Changed

  • q2 remove_form no longer bounces HQ

v1.44.1 - 2018-05-09

Fixed

  • Fixed bug where certain builtin jinja templates didn’t make it into the package

Added

  • Now correctly handles post requests from Central for Reports

v1.44.0 - 2018-05-08

Added

  • Adds support for locally referenced JS and CSS files. Write your html as you usually would, referencing a filename in the templates folder, and it will be replaced inline
  • Adds ?format=json to /inspect endpoint

Changed

  • self.get_template will now always return bytes instead of a raw str

Fixed

  • Fixes Q2SSO whitespace issue with floating headers at top of phones

v1.43.0 - 2018-05-03

Added

  • Makes a new /cache endpoint which allows for deletion of recently queried cache keys from memcache

Fixed

  • Fixed a bug with editable prompt count incrementing during db_plan installation

v1.42.0 - 2018-05-02

Added

  • Adds ability to navigate from one OnlineForm to another using q2_sdk.ui.fields.FormLink
  • Adds q2_sdk.hq.db.Group object with get/create/delete available both through python code and the cli (q2 db get_groups)

Deprecated

  • Deprecates q2 get_groups entrypoint in favor of q2 db get_groups

v1.41.0 - 2018-05-01

Added

  • Adds initial hooks for AppDynamics integration

v1.40.1 - 2018-05-01

Fixed

  • Inspect endpoint now shows ui_text_prefix info
  • Fixed a bug with deploying db_plans with an internal web interface
  • Cleans endpoint.asmx off of HQ_URL if it exists
  • Cleans up VAULT interaction to allow for specifying a key other than ABA

v1.40.0 - 2018-04-26

Changed

  • q2_sdk.core.vault will now handle both HQ_URL and URL keys in Vault equally

Added

  • UiText is now installed with a prefix listed in DbPlan
  • UiText now has multi language support
  • Relevant UiText for an extension is available from a RequestHandler with await self.get_ui_text()

v1.39.0 - 2018-04-24

Changed

  • Refactored the entire db changes during install portion
  • DbPlan objects consist of one or more InstallSteps, which are populated with InstallStepAttributes. More information in the Advanced Features section of the documentation
  • q2 check ensures INSTALL_VARS references are changed to DB_PLAN

Deprecated

  • q2_sdk.core.web.Q2RequestHandler.INSTALL_VARS is deprecated in favor of q2_sdk.core.web.Q2RequestHandler.DB_PLAN

v1.38.2 - 2018-04-24

Security

  • Changes from PyCrypto to the more modern and maintained cryptography package

v1.38.1 - 2018-04-20

Fixed

  • core_configuration_options in /inspect/extension_name endpoint now shows None as a possibility

v1.38.0 - 2018-04-19

Added

  • Cache will now compress data by default. Toggleable in settings file as CACHE['COMPRESS_DATA'] = False
  • Cache can now encrypt information if pycrypto is installed. Off by default. Toggleable in settings file as CACHE['ENCRYPTION_KEY'] = 'YOURKEYHERE'

v1.37.0 - 2018-04-17

Added

  • Adds BaseRestrictedQuery for non executable core queries
  • Adds Transaction model to q2_sdk.models.online_transaction

Fixed

  • Fixes bug with q2 get_installed_forms where a missing CustomName would raise an exception
  • Fixes a bug where certain network interfaces could interfere with VPN detection on q2 update_installed_form --my_ip
  • Fixes unhandled error condition where missing database creds when running q2 run_sql would raise an ugly exception
  • Fixes edgecase where an import error in an extention would throw the wrong warning when invoked with q2 update_installed_form
  • Handles routing key in non-soap form requests (from curl, postman, etc)
  • Fixes incompatibility with pip 10.0.0 when invoking q2 upgrade

v1.36.3 - 2018-04-16

Fixed

  • Fixes CLI readline error on Windows
  • Fixes bug with default tests generated as part of q2 create_extension

Added

  • Adds None as option when using DYNAMIC_CORE_SELECTION=True for some scenarios

v1.36.2 - 2018-04-12

Fixed

  • Fixes a bug with readline support for Windows development
  • Fixes bad argument names for q2 db get_third_party_data

v1.36.1 - 2018-04-11

Fixed

  • Remove ES6 from SSO form for IE11 compatibility
  • Fix typing issue with numerical logon names
  • Fix add to nav duplicate names issue

v1.36.0 - 2018-04-09

Added

  • Adds additional ToType and FromType options for q2_sdk.hq.api_helpers.build_secure_message_xml

Fixed

  • Fixes attachment bug with q2_sdk.hq.api_helpers.build_secure_message_xml
  • Fixes bug where Core queries would not be logged while in debug mode

v1.35.0 - 2018-04-05

Added

  • All command line inputs now have readline support (arrow keys, home, end, etc)
  • q2_sdk.hq.models.Account now has can_deposit, can_view, and can_withdraw properties which return booleans

Fixed

  • Made install_form stored proc a bit more robust

v1.34.0 - 2018-04-03

Added

  • self.account_list is now an object with search_by_id capability
  • Added a routing system to better support multi-step workflows. See tutorial step “Routing” for full details.
  • Added an InternalLink UI Field for creating anchor tags that will link to a route inside your extension
  • Added an ExternalLink UI Field for creating anchor tags to call an external URL

Fixed

  • Fixed a bug where running q2 install_form without settings INSTALLED_EXTENSIONS would lead to a nasty stack trace
  • Fixed a bug where running q2 lint before creating an extension would fail

Changed

  • q2 create_extension now creates a basic extension using the new routing schema. The old default methods of handle_initial_call() and handle_form_fields() are replaced by routes named default() and submit().
  • q2_post() now handles routing requests and should not be implemented on Q2RequestHandlers if routing is to be used.
  • self.form_fields now supports multiple fields with the same names as a list. i.e. self.form_fields = {'key_name': ['1', '2']}

v1.33.1 - 2018-04-02

Fixed

  • Fixed a bug where entrypoints could report ExecuteStoredProcedure not installed under some conditions

Added

  • Added a CacheMock class in q2_sdk.tools.testing.models

v1.33.0 - 2018-03-29

Fixed

  • Reverted change that preferred .execute over get_json/get_soap.

Added

  • DbObject now takes in an HqCredentials object to use HQToken if possible allowing for multitenant DBobject access

v1.32.4 - 2018-03-28

Deprecated

  • Newly generated hq_api bindings will prefer .execute over .get_soap or .get_json. Deprecation warnings at runtime will prompt changing to the newer version

Fixed

  • DemographicInfo object now scrubs emails, phones, and addresses for uniqueness

Added

  • Adds a testing helper for Q2RequestHandler in q2_sdk.tools.testing.mock_handler_mixin

v1.32.3 - 2018-03-26

Fixed

  • self.db_config is now more efficient
  • q2 lint will no longer throw exceptions on code you didn’t write
  • Fixed a bug where updated pip versions would show up when running q2 upgrade

Added

  • /status endpoint now takes an optional format==json query parameter

Changed

  • Upgrades to jinja2 version 2.10

v1.32.2 - 2018-03-22

Changed

  • q2 test and q2 lint now run on all code, not just INSTALLED_EXTENSIONS

v1.32.1 - 2018-03-21

Fixed

  • Tab completion is now cross platform compatible

v1.32.0 - 2018-03-19

Added

  • Three new command line input validators (FloatValidator, ListValidator, BooleanValidator)

Changed

  • WEDGE_ADDRESS_CONFIGS now handles Boolean, Integer, Float, and List types in addition to strings
  • It is now possible to install a form multiple times with different names using q2 install_form

v1.31.2 - 2018-03-16

Fixed

  • Accidentally added hq_api into the package, which would ignore locally generated ones

v1.31.1 - 2018-03-15

Fixed

  • Fixed a typing bug with REQUIRED_CONFIGURATIONS

Changed

  • self.core now has entire hq_credentials set rather than just the token

v1.31.0 - 2018-03-13

Changed

  • Updates minimum required python version to 3.6 (Clients are unaffected by this change. You are already using 3.6)
  • Switches to Python3.6 style type hinting on generated hq_api modules

Added

  • Adds VendorConfig DbObject
  • Adds .pytest_cache to the generated .gitignore file on q2_setup

Fixed

  • Fixes a bug where configurations in an extensions configuration/.py file would not be available at runtime unless they were in the REQUIRED_CONFIGURATIONS block. Now throws a warning instead
  • Better error handling on q2 update_installed_form
  • Fixes a bug where the SDK would log a line to the effect of “Checking to see if HQ creds have updated” once/minute

v1.30.1 - 2018-03-09

Fixed

  • Fixed a bug where create_coreflow would not show Base as an option after q2-cores package installed
  • Improves speed and cpuload of bash/zsh completion (NOTE Run q2 install_completion to ensure update)
  • Fixed a bug where empty Config column in Q2_WedgeAddress table would cause stacktrace in q2 update_installed_form
  • Fixed a bug where q2_on_finish would be called after q2_post even when response was 500
  • Fixed a bug preventing install_vars to process correctly on q2 install_form

v1.30.0 - 2018-03-07

Added

  • Adds q2_sdk.core.web.Q2RequestHandler.q2_on_finish method for background processing after an http request is returned
  • pre-commit git hook now has help text for how to temporarily ignore hooks on failure

v1.29.1 - 2018-03-06

Fixed

  • Fixed a template file name for linting

v1.29.0 - 2018-03-06

Added

  • q2 lint entrypoint will lint code according to Q2 standards
  • Git hooks installed on q2 setup to faciliate automated linting and testing
  • Better detection of vpn vs ethernet in local Q2 development
  • --my-ip flag added to q2 update_installed_form to detect automatically

v1.28.0 - 2018-03-02

Added

  • Creates q2 db update_nav_node entrypoint

Fixed

  • Fixed a bug where nested wedge_address_configurations (such as with DYNAMIC_CORE_SELECTION) would not update appropriately with q2 update_installed_form

v1.27.0 - 2018-03-01

Added

  • Adds NavNode db Object (q2_sdk.hq.db.NavNode)
  • Adds NavigationStyle db Object (q2_sdk.hq.db.NavigationStyle)

Fixed

  • Fixed a bug where q2 upgrade was not working correctly in the shared-dev environment

v1.26.0 - 2018-02-21

Changed

  • Added CSS to handle the UUX mobile header in Q2SSO template

v1.25.0 - 2018-02-20

Fixed

  • Configuration errors now write to STDERR instead of STDOUT
  • Missing wedge_address_config data in the database will now throw an appropriate error with logged help text on form submission

Added

  • Added self.online_session object to Q2RequestHandler. Contains information relating to the current user’s session, including a boolean representing if it a CSR Assist session
  • Added self.form_info object to Q2RequestHandler. Contains information relating to the currently submitted form
  • Enhances q2 check entrypoint to support non standard settings configuration paths

Changed

  • q2 update_installed_form will now prompt for a required DB configuration in a key/value prompt manner similar to install_form

v1.24.2 - 2018-02-15

Fixed

  • Corrected Vault Error messaging for vault key problems
  • Fixed a bug with install_form and install_vars missing to_json method

v1.24.1 - 2018-02-14

Fixed

  • Fixed a bug where calling to_json() on Card would not return anything

v1.24.0 - 2018-02-14

Changed

  • q2 update_changelog is now q2 update

Added

  • Adds account_holder_name and address to models.account.Card
  • Adds .to_json method to models.account.Card
  • Adds sso_url parameter to ui.forms.Q2SingleSignOn

v1.23.1 - 2018-02-14

Fixed

  • Adds static versions of AdapterPassThru HQ call to fall back upon if the user has not generated overrides in the repo
  • Fixed a bug where calling api_helpers.build_update_demographics_by_logon_name_xml while the onlineUser does not have any phones would throw a stack trace

Added

  • Adds q2 db get_countries to CLI
  • Adds q2_sdk.hq.db.Country model for interacting with the table via python script
  • Adds code completion for GetAccountListByCif call
  • Allows OnlineUser to be instantiated without providing an XMLNode, then filled in with data later

v1.23.0 - 2018-02-13

Changed

  • Changed property core.online_user to core.configured_user

Added

  • Added the ability to create repository-level changelogs
  • Added language property to self.online_user
  • Added update_configured_user method on BaseCore, which can be used to make Hcore calls against a user other than the online user

v1.22.0 - 2018-02-09

Added

  • q2 generate_hq_api
    • Respects Optional flag coming back from HQ
    • Warning Will Potentially generate files with arguments in a different order than before, with optional arguments at the end. Be sure to check your extensions if generating a new HQ API
    • Removes unnecessary imports from generated files
  • q2 test
    • New entrypoint
    • Runs tests on installed extensions if present
  • q2 create_extension
    • Generates tests as part of creation
    • Adds no-register parameter to bypass the settings registration prompt

v1.21.2 - 2018-02-07

Fixed

  • Fix python 3.5 compatibility for sdk

v1.21.1 - 2018-02-07

Fixed

  • Bugfixes for upgrade entrypoint

v1.21.0 - 2018-02-06

Added

  • Add ‘q2 upgrade’, an automated way to update a repo’s installed q2-sdk or q2-cores version

Changed

  • Calendar field can now be set as not required for form submission

v1.20.1 - 2018-02-05

Changed

  • Updates CalendarField to respect required boolean
  • Changed Account.hade_list to Account.hade_dict, keyed by the HADE.name

Fixed

  • Fixes a bug with q2 check where if q2-cores was not installed the error was inappropriate

v1.20.0 - 2018-02-02

Added

  • Adds a DYNAMIC_CORE_SELECTION to RequestHandler
    • Defaults to False
    • Setting this to True will prompt for core configuration information on install_form
    • If True, will not read configuration from the settings file
    • This allows for multi tenant implementations of extensions that require core connectivity
  • Account objects now have a self.hade_list attribute filled with HADE objects
    • These are accessible as self.account_list[0].hade_list
  • Added a better __repr__ to Account: (<Object Account: host_acct_id>)
  • q2 check
    • Adds cores version match check
    • Adds DYNAMIC_CORE_SELECTION integrity check
  • q2 create_extension
    • Added docs for Core hinting in PyCharm
    • Changed self.request_as_obj to self.request_name_elem in the docs

v1.19.1 - 2018-02-01

Added

  • Adds support for jinja filters

v1.19.0 - 2018-01-30

Added

  • Add the first iteration of a universal SSO template, invoked by returning a forms.Q2SingleSignOn as a q2 POST response.

v1.18.19 - 2018-01-30

Added

  • Add Nickname to Account model
    • Accessible as account.nickname for account in self.account_list

Fixed

  • Suppress all logs from /status endpoint

v1.18.18 - 2018-01-25

Added

  • Deployer install support for customer created flag in database

v1.18.17 - 2018-01-25

Added

  • Adds Is Customer Created information to Inspect entrypoint
  • Adds is_customer_created key to /inspect and /inspect/<extension_name> endpoints

Removed

  • Removes 2 second connection timeout
    • This was causing unforseen side effects in local development with slow to response HQs

v1.18.16 - 2018-01-24

Added

  • Improves Bash and ZSH completion
    • Adds definitions into top level ZSH entrypoints
    • Adds handling for commands with subparsers (q2 db)
    • To get these updates, run q2 install_completion then restart your shell

v1.18.15 - 2018-01-24

Added

  • Improves support for form modals
    • Adds a warning modal
    • Exposes Close button as a togglable item
  • Adds ObjectGroupData class to access data in the Q2_ObjectGroup table

v1.18.14 - 2018-01-23

Added

  • Healthcheck endpoint (/status) now shows detailed information on dependent services
  • Adds HQ, Vault, and Memcached health information
  • After a successful healthcheck, will cache the results (per service) for 60 seconds
  • Can bypass the result cache by passing no_cache=true (/status?no_cache=true)
  • Can access a prettier markdown version of the page by passing format=md (/status?format=md)
  • If HQ creds fail to login and vault is active, adds a refresh_hq_creds function that will pull them from vault
    • This means if HQ creds change while the service is running, the very next call the service should be updated with the new info
  • Updates to tornado >=4.5 (from >=4.4)

v1.18.13 - 2018-01-22

Added

  • Adds q2 db get_logon_by_user_id entrypoint
  • Adds q2 db get_user_property_data_by_value entrypoint

v1.18.12 - 2018-01-17

Added

  • Adds a install_completion entrypoint to facilitate easy install of the bash and zsh completion scripts
  • Fixes a bug where a malformed settings file could cause q2 run to fail silently
  • Adds a “built_by_q2” check on q2 setup for internal tracking

v1.18.11 - 2018-01-16

Added

  • Adds global and extension level filtering capabilities
  • Usage instructions exist in the documentation under Logging menu

v1.18.10 - 2018-01-10

Added

  • Defaults Demographic AddressType to HOME from RESIDENTIAL in the q2 system
  • Adds a UserDemographicData object in q2_sdk.hq.db for ease of use demographic info updates
  • Adds a helper for building update demographics xml shape
  • OnlineUser class’s postal_code, home_phone, work_phone, customer_primary_cif, and user_primary_cif attributes are now strings
  • OnlineUser class now has a demographic_info attribute for easily passing all relevant object data to another object
  • PhoneType class now has a country attribute
  • AddressType class now has HOME, OTHER, BUSINESS, and BILLPAYEE attributes
  • Address class now has country and province attributes
  • Adds apispUpdateDemographicsByLogonName_RT install to setup_db to facilitate demographic info update

v1.18.9 - 2018-01-05

Fixed

  • Fixes a bug where metacharacters in the text of a SpanField could cause it not to render appropriately

v1.18.8 - 2018-01-04

Added

  • q2 run_sql now has an optional print argument to print the SQL directly to stdout

v1.18.7 - 2018-01-03

Changed

  • q2 run will now default to the port stored in the ANTILLES_SERVER_PORT environment var, falling back to 1980 if unset

v1.18.6 - 2018-01-02

Added

  • q2 create_extension now prompts for registering the newly created extension in the configuration/settings.py file
  • Adds q2 update_changelog entrypoint to facilitate tracking human readable changes in extensions
  • Adds git repo existence check to q2 check
  • Adds /changelog endpoint to view CHANGELOG.md files inside individual extension folders

v1.18.5 - 2017-12-28

Added

  • Generating HQ API helpers from static file is now supported on Windows

v1.18.4 - 2017-12-27

Added

  • Integration with Vault secret store updated to fit with the rest of Q2’s usage.
  • Adds an additional fallback layer of xml parsing logic in the initial POST request handling if Content-Type header is unset

v1.18.3 - 2017-12-21

Added

  • Adds request guid to q2_post calls in the event of an unhandled stacktrace Changed
  • q2 install_form entrypoint now defaults account_rights_bit_flag to 0 (all accounts visible) instead of 7

v1.18.2 - 2017-12-21

Added

  • Adds query_params to DEBUG level q2_requests logging
  • Adds HQ Session to INFO level extension logging

v1.18.1 - 2017-12-18

Added

  • Adds several helpers to communicate with the database through StoredProcedures including:
    • UserPropertyData
    • UserPropertyDataElements

v1.18.0 - 2017-12-13

Added

  • Adds the ability to add a form to the top level navigation menu
  • If a form is added to top level nav, a prompt will appear asking for which icon should be displayed
  • Adds the q2 bounce_hq entrypoint to bounce hq on demand without needing to install/remove a form first
  • ACTION REQUIRED: Run q2 setup_db to add new sql scripts to the database

v1.17.10 - 2017-12-12

Added

  • Slight edits to default settings file to ensure ABA can be overridden locally with an environment variable while still allowing for a hardcoded FI default
  • q2 setup now prompts for an ABA in the event the repo is only being developed for a single FI
  • This is bypassable with either the aba flag and specifying an ABA or the no-aba flag to ignore the check
  • Adds the ability to mock failures on core query responses. BaseQuery object now takes an optional mock_failure parameter. Defaults to False. This will ONLY be respected in DEBUG mode. Otherwise will be ignored.
  • To code against this, instantiate your Query with mock_failure=True. Alternatively, take an already instantiated query and set it’s mock_failure attribute to True before executing it. The response that comes back after calling .execute() on the corresponding Mapper will have a failure set in it’s response. Here an example:: mapper = await self.core.build_demographic_info() mapper.list_of_queries[0].mock_failure = True await mapper.execute() hq_response = mapper.list_of_queries[0].core_response_obj.hq_response is_success = hq_response.success if not is_success: error_message = hq_response.error_message

v1.17.9 - 2017-12-11

Changed

  • Improves Wedge converter script
  • Brings Vault integration in line with current best practices in Q2 environment

v1.17.8 - 2017-12-07

Added

  • Better error handling on LinkedAccount.add and LinkedAccount.delete
  • Cache connection to memcached has been given more sane defaults
    • An initial connection time longer than 1 second will be treated as a cache miss
    • A get/set call longer than 1 second will be treated as a cache miss
  • Q2RequestHandler introduced a self.wedge_address_configs property, which is a more readable reference to self.db_config
  • Q2Form can now accept the keyword argument “custom_template”. HTML strings passed as “custom_template” will render as form content
  • Q2Form can now accept the keyword argument “hide_submit_button”. This will, unsurprisingly, hide the submit button
  • q2 inspect now displays information about the cache settings
  • /inspect endpoint now displays information about the cache settings

v1.17.7 - 2017-12-04

Added

  • Adds a add() method to q2_sdk.hq.db.LinkedAccount

Fixed

  • Fixes a bug with delete() method of q2_sdk.hq.db.LinkedAccount

v1.17.6 - 2017-12-04

Fixed

  • Fix a bug with hq.db.LinkedAccount.delete()

v1.17.5 - 2017-12-01

Changed

  • q2 install_form now cleanses extra leading http:// and leaves off form_install_port if it’s 80

v1.17.4 - 2017-12-01

Added

  • Adds print flag to q2 setup_db entrypoint. Will print sql to stdout instead of running it against the active DB

v1.17.3 - 2017-11-30

Added

  • Adds support for unicode payloads
  • Adds type hinting for GetAccountDetailsByIdWithUserLogon
  • Adds type hinting for GetAccountHistoryById

Changed

  • Reorganizes logging of q2_request.* functions such that meta information on the request is printed before the call happens
  • Turned off auto generate_hq_api call during q2 setup

Fixed

  • Fixed a bug where hq_dir was not auto created in generate_hq_api call

v1.17.2 - 2017-11-29

Added

  • q2_sdk.core.q2_requests functions now take an optional session parameter to facilitate reusing session vars (cookies, headers, etc) in a standard way
  • Command line interface to q2 db * entrypoints turned most optional named parameters into required positional ones.

v1.17.1 - 2017-11-28

Added

  • Adds lots of doc strings to hq_api modules
  • Adds type hinting for hq_api.q2_api.GetPasswordPolicy module

v1.17.0 - 2017-11-28

Added

  • generate_hq_api will now format output files according to our style guide
  • Type hinting!
    • If an example output exists in the repo for a type of call, appropriate type hinting classes will be added in the generated output file. Currently only GetUserAccountList has this built in. More will be added in subsequent releases.
  • A local version of an example HQ WSDL was added into the repo
  • generate_hq_api will be run as part of q2 setup now
  • generate_hq_api now takes additional parameters
    • -a will limit generation to a single endpoint (i.e. -a GetUserAccountList)
    • -d will download wsdl from configuration.settings.HQ_URL. This used to be the default
    • no-format will bypass the pep8 formatting that happens by default on generated files now
  • Added default logging
  • ACTION REQUIRED: Any references to q2_requests.* functions now take a logger:
    • q2_requests.get(‘http://www.url.com’) is now q2_requests.get(self.logger, ‘http://www.url.com’)
    • Logger parameter can be set to None, which will disable logging
  • Fixed a bug with type hinting incompatibilities with python 3.5.1

v1.16.5 - 2017-11-21

Changed

  • Upgrades to q2 check command
    • Better handles malformed configuration.settings file

v1.16.4 - 2017-11-20

Added

  • Adds a q2 check command to ensure your extensions are ready for deployment. Checks the following:
    • Does configuration/settings.py file contain all required variables?
    • Does INSTALLED_EXTENSIONS in configuration/settings.py contain at least one extension name?
    • Are all INSTALLED_EXTENSIONS importable?
    • Are there any syntax errors in any INSTALLED_EXTENSIONS?
    • Does requirements.txt exist?
    • Does version of q2-sdk in requirements.txt match the currently installed version?
    • Is WEDGE_ADDRESS_CONFIGS a dictionary?
    • Is INSTALL_VARS an instance of q2_sdk.core.install_vars.BaseInstallVars?
    • Do all REQUIRED_CONFIGURATIONS exist in appropriate extension level settings file?
  • Defaults Q2RequestHandler.INSTALL_VARS to an instance of q2_sdk.core.install_vars.BaseInstallVars instead of []

Removed

  • Removes postgres folder from q2 create_extension autogenerated files
    • Postgres is still supported as a database backend, but as it is very rarely used, it is no longer assumed in the creation

v1.16.3 - 2017-11-17

Added

  • Add capability to get linked accounts

v1.16.2 - 2017-11-15

Added

  • Add author information to install_form
  • ACTION REQUIRED: Adds a parameter to a stored procedure. Rerun q2 setup_db

Fixed

  • Inspect endpoint no longer accept credentials (CORS fix)

v1.16.1 - 2017-11-13

Added

  • Adds a condition for SOAP requests posted via non-HQ means

v1.16.0 - 2017-11-13

Added

  • Adds self.custom_javascript to Q2Form constructor
  • Adds IS_CUSTOMER_CREATED variable to default_settings.py. This will be passed through to the resulting logger and preface log lines with ‘CUST’ if set to True and ‘Q2’ if set to False. Defaults to True

Changed

  • Change q2_sdk.ui.forms.BaseForm to q2_sdk.ui.forms.Q2Form
  • ACTION REQUIRED: References to the above must be changed

v1.15.2 - 2017-11-09

Changed

  • Moves SHORT_NAMES out of Q2RequestHandler and into q2_sdk.core.BaseInstallVars.required_forms
  • Upgrades get_installed_forms to show group ids for which each form is installed. This is backwards compatible, but will require rerunning q2 setup_db to get the new features
  • Upgrades the /inspect endpoint to allow CORS from localhost

v1.15.1 - 2017-11-08

Changed

  • Built in Inspect Endpoint now takes an additional /extension_name component to the URL to get install vars information dumped as a json blob. We will use this on our end for ease of deployment

v1.15.0 - 2017-11-08

Fixed

  • Fixed several bugs with install_vars on form install
  • ACTION REQUIRED: References to q2_sdk.core.install_vars.BaseInstallVars.vendors_to_create are now q2_sdk.core.install_vars.BaseInstallVars.vendors

v1.14.5 - 2017-11-06

Added

  • Added UserAccountAttributeData endpoints (Add, Update, Delete, Get)

v1.14.4 - 2017-11-06

Added

  • Added rate limiting capabilities
    • Q2RequestHandler now has a self.rate_limiters which defaults to an empty list
    • By overriding this in your init function with a list of q2_sdk.core.RateLimiter instances, you can control who is allowed to see your extension and how often

v1.14.3 - 2017-11-02

Added

  • Added Update to ThirdPartyData
  • Added Delete to ThirdPartyData

v1.14.2 - 2017-11-02

Fixed

  • Fixes bug where install_form would fail due to malformed directory structure
  • Fixes encoding bug with hq responses
  • Updates bootstrap grid sizing tools to work better with smaller devices

v1.14.1 - 2017-11-01

Fixed

  • Fixes a bug where production coreflows were not encoded correctly

v1.14.0 - 2017-10-31

Changed

  • Install form is refactored for backwards compatibility
  • ACTION REQUIRED: DB_CONFIGS is now referred to as WEDGE_ADDRESS_CONFIGS for greater clarity

v1.13.1 - 2017-10-30

Added

  • Adds LinkedAccount object with unlink ability
  • Requires run of q2 setup_db to install
  • Example:: from q2_sdk.hq.db import LinkedAccount LinkedAccountObj = LinkedAccount(self.logger) host_account_id = self.account_list[0].host_acct_id await LinkedAccountObj.delete(self.online_user.user_id, host_account_id)

v1.13.0 - 2017-10-30

Added

  • Creates a more consistent interface for interacting with the database through stored procedures

Changed

  • Renamed q2_sdk/db folder to q2_sdk/sql_scripts
  • ACTION REQUIRED: Any references to q2_sdk.entrypoints.db should be updated to the appropriate q2_sdk.hq.db module

v1.12.11 - 2017-10-29

Changed

  • Updates update script

v1.12.10 - 2017-10-27

Added

  • Added a filter on tornado logs to suppress the /status call from the logs
  • Moved default_logging.conf into a logging subdirectory

v1.12.9 - 2017-10-26

Added

  • Adds helpers for easy asyncronous web requests with the Requests library
  • Adds documentation on three types of Web Requests supported by Caliper

v1.12.8 - 2017-10-24

Added

  • Added new db entrypoints “get_third_party_data” and “add_third_party_data”

v1.12.7 - 2017-10-19

Changed

  • Logging Level value at command line is now case insensitive
  • Logging Level can also be set by an environment variable (Q2SDK_LOGGING_LEVEL)

v1.12.6 - 2017-10-18

Added

  • Adds required keyword to Input and Select fields for accessibility purposes

v1.12.5 - 2017-10-17

Fixed

  • remove_from_nav now handles an edgecase where multiple UserProperties named the same thing were installed

v1.12.4 - 2017-10-17

Fixed

  • Fix a bug with install_form where old style forms couldn’t be installed with the new installer

v1.12.3 - 2017-10-17

Changed

  • Inspect entrypoint now shows ABA if configured
  • Install Form entrypoint adds the longform form_url option to the -u flag
  • Built in Inspect endpoint now shows ABA
  • Built in Inspect endpoint now shows SDK version
  • Built in Inspect endpoint now also displays at the root of the server (“http://localhost:1980/”)

v1.12.2 - 2017-10-13

Changed

  • Better error messaging if user forgets to set HQ_URL during setup

v1.12.1 - 2017-10-13

Changed

  • q2 install_form now has support for many optional install variables. Future releases will see the buildout of tooling around these variables

v1.12.0 - 2017-09-27

Changed

  • Conform generate config to dynamic core import, add data_attrs to q2cores/Symitar, add last step to core flow tutorial.

v1.11.4 - 2017-09-12

Changed

  • q2 update_installed_form will provide a default config in the event that it doesn’t exist

v1.11.3 - 2017-09-11

Changed

  • Adds SHORT_NAMES list to Q2RequestHandler. If populated, will install one form for each ShortName. This allows for some extensions (like PFM) to have multiple entry points through the Q2 Online UI.
  • Updates q2 install_form for new SHORT_NAMES logic
  • Updates q2 remove_form for new SHORT_NAMES logic
  • Updates q2 get_installed_forms for new SHORT_NAMES logic

v1.11.2 - 2017-09-10

Changed

  • run_sql entrypoint was given a prefix parameter (-p, prefix) to only run specific files
  • run_sql entrypoint was given a dry_run parameter (-n, dry_run) to print out what will be run without actually doing it.

v1.11.1 - 2017-09-06

Added

  • Adds Vault integration for encrypted secret sharing
    • Simply export ABA, VAULT_ADDR, and VAULT_TOKEN to query vault at runtime

Changed

  • Generated configuration/settings file will now inherit from default_settings by default

v1.11.0 - 2017-09-05

Changed

  • Updates both ZSH and Bash tab completion scripts.
    • Moves them to /bin folder.
    • Adds generated hidden .antilles folder at root level of project to hold cached information, including completion indexes
    • ACTION NEEDED: Change your bashrc or zshrc to point to appropriate new completion script in /bin (Either antilles_completion.zsh or antilles_completion.bash)
    • ACTION NEEDED: Add .antilles folder to your .gitignore to avoid checking it in

v1.10.7 - 2017-08-31

Added

  • Adds update_installed_form entrypoint to alter the Url, AccountRightsBitFlag, and Config fields of already installed forms

v1.10.6 - 2017-08-29

Added

  • Adds a -f parameter to get_installed_forms for detailed information about a specific form

v1.10.5 - 2017-08-25

Changed

  • Linting style changes only

v1.10.4 - 2017-08-24

Added

  • Added Demographic details to core/demographic

v1.10.3 - 2017-08-22

Changed

  • Q2RequestHandler.hq_commands now accepts a force_success_response parameter that defaults to False

v1.10.2 - 2017-08-21

Changed

  • get_json calls will now appropriately set application/json Content-Type header

v1.10.1 - 2017-08-21

Added

  • Creates add_nav_perms entrypoint to specifically set Q2_UserPropertyData on demand

Changed

  • Add to Nav will no longer update the Q2_UserPropertyData table unless Debug mode is also set to True in Settings
  • Adds helpful guidance text to add_to_nav for production use

v1.10.0 - 2017-08-17

Added

  • Added the capability to create custom entrypoints inside extensions
  • Documentation for this added to the tutorial

v1.9.6 - 2017-08-15

Added

  • RequestHandler.wrap_soap_response method was created to allow for extension level override of the soap response

Removed

  • RequestHandler.use_ardent_response and corresponding code have been removed. These were in place for a specific internal extension and do not belong in the core code

v1.9.5 - 2017-08-08

Fixed

  • HqResponse model will now behave appropriately whether it is given str or bytes

v1.9.4 - 2017-08-08

Fixed

  • Fixes bug for edgecase of online_user not being parsed causing other fields to not be parsed

v1.9.3 - 2017-08-07

Added

  • logging.conf is no longer the implied default configuration file
  • New default lives in q2_sdk.core.default_logging.conf
  • Logging.conf is overrideable given LOGGING_CONF key in configuration/settings.py
  • Logging object is now shared among entrypoints and will respect supplied logging-level from command line
  • Configured logging file is logged out at startup of q2 run

v1.9.2 - 2017-08-03

Fixed

  • Fixed a bug where nested LXML Elements would throw an error in json deserialization for get_json calls

v1.9.1 - 2017-08-03

Added

  • Added missing timer stop to the generated get_json() methods.

v1.9.0 - 2017-08-02

Changed

  • RequestHandler.cache is a bit easier to use. Returns a string instead of bytes if possible. Stores JSON dicts natively if possible.

v1.8.7 - 2017-07-25

Added

  • Added self.aba and self.hq_url as attributes of the RequestHandler. These are taken from the online POST attributes.

Changed

  • HQ methods now set a header to ensure the same response shape regardless of HQ version.

v1.8.6 - 2017-07-18

Fixed

  • Fixes an async bug with internal convert_wedge entrypoint

v1.8.5 - 2017-07-13

Added

  • Adds -e, -o, and -p flags to the add_to_nav entrypoint
    • -e: form_name
    • -o: Order
    • -p: Parent ID
  • If any of the flags are left off, the user will still be prompted for them

v1.8.4 - 2017-07-12

Added

  • Adds the get_groups entrypoint to print all groups from the Q2_Group table

v1.8.3 - 2017-07-12

Changed

  • Behind the scenes work to make entrypoints easier to program

v1.8.2 - 2017-07-10

Changed

  • Removes q2-cores as a hard dependency package
  • Adds base core and model information directly into this package
  • Interfaces remain the same. If you are importing q2_cores in your package, no change should be required.

v1.8.1 - 2017-07-10

Changed

  • Settings path is now overrideable. It will use the first match of the following:
    • Module specified in the Q2SDK_SETTINGS_MODULE environment variable
    • configuration.settings in the present working directory
    • q2sdk.core.configuration.default_settings
  • q2 run will log the settings file determined by the above logic.

v1.8.0 - 2017-06-27

Added

  • Adds deployment server capabilities internally. To be deployed with the tool, extensions must be based off at least this version.
  • Adds extension flag to inspect entrypoint for extension specific information
  • Makes install_form a bit smarter to avoid duplicate installations
  • Adds installed_extensions to run_server logging

v1.7.1 - 2017-06-27

Added

  • get_execute_request_as_xml_response now has the ability to expire and reload Account information during a loaded session
  • Creates HqCommands class to facilitate the account reload mentioned above

v1.7.0 - 2017-06-23

Changed

  • Q2_RequestHandler now has a DB_CONFIGURATIONS attribute which can be used to install config information with q2 install_form
  • Q2_RequestHandler now has a self.db_config property which can be used at runtime to reference the configuration dict defined using DB_CONFIGURATIONS
  • Install form respects DB_CONFIGURATIONS of extensions and prompts for overrides on install
  • ACTION REQUIRED: To use the new DB_CONFIGURATIONS piece on install_form, sql stored procedures must be reinstalled in the database. Luckily this is simple. run q2 setup_db.

v1.6.2 - 2017-06-21

Changed

  • Updates to lxml 3.8.0 to increase python3.6 MacOS compatibility

v1.6.1 - 2017-06-20

Changed

  • Allow for javascript payloads returned from ExecuteRequestAsXML requests

v1.6.0 - 2017-06-19

Added

  • Adds Group choosing into install_form entrypoint
    • -g flag takes a comma delimited list of group_ids for which to install the form
    • Leaving the -g flag off results in an interactive menu prompt which queries the DB for possible group IDs and names
    • Will require reinstalling sql scripts (q2 setup_db)

v1.5.4 - 2017-06-15

Removed

  • Removes -c option from install_form, run_server, and run_sql entrypoints

v1.5.3 - 2017-06-15

Added

  • Improve extension of base core using create-coreflow entrypoint.

v1.5.2 - 2017-06-15

Changed

  • q2 add_to_nav now queries installed forms from the database rather than assuming that matches what’s in the settings file.
  • Updates help text on the remove_form, remove_from_nav, and add_to_nav entrypoints

v1.5.1 - 2017-06-14

Added

  • Add internal tool for handling version bumping of q2-sdk library.

v1.5.0 - 2017-06-13

Changed

  • Breaking change:
    • CORE in configuration/settings.py is now a string that will be dynamically imported the first time self.core is called in a RequestHandler. This fixes a circular import bug in this and downstream repos
    • References like CORE = q2_cores.UltraData.core.Core should be changed to CORE = 'q2_cores.UltraData'
  • Adds Core to the Inspect entrypoints
  • Adds Core to the builtin /inspect endpoint

v1.4.10 - 2017-06-13

Added

  • Introduces lazy importing of entrypoints to better handle runtime dependencies

v1.4.9 - 2017-06-13

Added

  • Updates bash_completion script in tools/bash_completion with file path completion for convert_wedge_extension
  • Adds zsh completion at tools/zsh_completion

v1.4.8 - 2017-06-12

Added

  • Added self.request_name_elem to Q2RequestHandler. This is a convenience attribute to avoid having to call self.request_as_obj with an xpath to find the inner request

v1.4.7 - 2017-06-08

Added

  • Adds ardent response handling
  • Adds self.use_ardent_response to Q2RequestHandler. Defaulted to False, but if set to true will respond back with an Ardent shape, regardless of whether the initial call was ExecuteRequestAsString or ExecuteRequestAsXML
  • Adds self.hq_response_attrs dict. Defaulted to empty, if filled will append key value pairs as attributes to the response’s interior node.

v1.4.6 - 2017-06-08

Changed

  • Allow install_form to be run with optional command line parameters for programmatic usage.

v1.4.5 - 2017-06-08

Changed

  • Updates convert_wedge_extension command to handle hq imports, xml building. deserialization, and a few smaller pieces.

v1.4.4 - 2017-06-07

Changed

  • Change create_coreflow to use CamelCase classnames.

v1.4.3 - 2017-06-06

Added

  • Added a convert_wedge entrypoint for Q2 Internal team to transform existing wedge code into sdk compliant variant.

v1.4.2 - 2017-06-01

Added

  • Added a create_coreflow entrypoint intended for making extensions that serve to make custom core requests. Added tutorial.

v1.4.1 - 2017-05-30

Added

  • Added a new formatter to logging.conf. To take advantage of this, remove your current logging.conf and run :code:q2 setup to generate a new one.
  • Will log in UTC time if in Debug mode=False (In production). Otherwise will continue to log in local server time
  • Log out Debug mode True/False when the server starts

v1.4.0 - 2017-05-26

Changed

  • q2.core.cache now uses the pymemcache library instead of the q2-cacheflow library to interact with memcached
  • Extensions that previously implemented caching which used self.cache.get_shared or self.cache.set_shared_with_expiry will have to switch to using self.cache.get and self.set(key, value, expire=int) format.
  • q2 setup now adds caching configuration information to the settings.py file

v1.3.18 - 2017-05-25

Added

  • By default, an /inspect endpoint is included that displays the URL of the HQ instance a server is configured to use.

v1.3.17 - 2017-05-25

Changed

  • The config file generated by the generate_config entrypoint now features alphanumerically sorted keys and pretty printing of nested lists and dictionaries.

v1.3.16 - 2017-05-23

Changed

  • The run_sql entrypoint now honors inheritance, allowing for overridden extensions to take advantage of ancestors’ sql install directories

Fixed

  • Fixes a bug where the scripts in run_sql endpoint were not guaranteed to run in sorted order

v1.3.15 - 2017-05-23

Changed

  • The cache module (q2_sdk.core.cache) no longer spams the logger when a memcached server is unavailable Web
  • The request handler in web.py got an update to the get_template function.
  • It will prefer the calling extension’s templates folder, but then honor inheritance as well, allowing for overridden extensions to take advantage of ancestors’ templates directories.

v1.3.14 - 2017-05-19

Changed

  • The cache module (q2_sdk.core.cache) now reuses the same memcached connection regardless of how many times get_cache() is called.

v1.3.13 - 2017-05-11

Added

  • Adds .gitignore file on q2 setup

v1.3.12 - 2017-05-08

Added

  • Adds api_helper for building a secure message

v1.3.11 - 2017-05-04

Removed

  • Removed dockerize entrypoint. We will be handling this through an internal process