- added function
bulk_delete_objectsin theobjectmodule - added support for Python 3.14
- added
ConfigurationLockclass inserver.lockmodule
- enhanced
Connectionobject withlocaleparameter, setting all possible locale and timezone settings during logging in, provided viaLocaledataclass - added
project_lockproperty toProject, grouping lock-related capabilities; added newlock_idproperty inproject_lock - added
delete_from_all_projectsargument todelete_profile_foldermethod of the classUser
Report.model_list_vldb_settingsis no longer missing when initializing theReportobject viafrom_dict- fixed
Migrationmethods' parametertarget_envsometimes resolving intoEnvironmentclass instead of expectedConnectionclass - fixed fields missing from
PhysicalTableobjects returned bylist_physical_tablesandfrom_dict
- added
duplicate_to_other_environment()andrestore_project_from_backup()methods toProjectclass to allow cross-environment project duplication - added
get_backup_package()andrestore_package_on_target_environment()methods toProjectDuplicationclass - added
CrossDuplicationConfigclass that extendsDuplicationConfigto support cross-environment duplication settings - added Platform Analytics Statistics configuration methods to
EnvironmentandProjectclasses inmstrio.serversubfolder, both underEnvironment.pa_statisticsandProject.pa_statisticsproperties respectively. Please seecode_snippetsfor detailed methods list - added
prompt_answersargument toexecute()andget_preview_data()methods of the classIncrementalRefreshReport
- extended
DuplicationConfigclass withskip_all_profile_foldersandinclude_contacts_and_contact_groupsproperties
- fixed initializing
Projectclass on asymmetric cluster sometimes failing due to login session being on node without a project in question loaded - fixed
Project.is_loadedreturning with errors withstrict=Truewhen Library source Servlet configuration do not match user's data
- created new
scriptmodule inside also newmstrio.python_executionsubfolder exposingScriptandCodeclasses, as well as some script Variable-based helper dataclasses andlist_scriptsmethodScriptclass represents Strategy Python Script metadata objects run on server-side execution Python engineCodeclass is a helper class which allows to run Python code on server-side execution Python engine without the need to create aScriptmetadata object- all Variable-based dataclasses are helper classes to handle Variables easily in
ScriptorCodeclasses
- added argument
stricttoProject.is_loaded()method
- fixed
objectMaxMemoryConsumptionsetting inServerSettingsto use megabytes instead of bytes
- added support for Custom Groups
- added class
CustomGroupand functionlist_custom_groupsin new modulemodeling.custom_group - added support for Reports containing Custom Groups
- added class
- added class
SystemHierarchyin the modulemodeling.schema.user_hierarchyto view system hierarchy of a schema
- added some quality-of-life improvements to
Projectmodule methods- added
forceflag toProject.delete()method to allow deleting project without prompt for confirmation - added
unload_beforehandanddelete_immediatelyflags toProject.delete()method to simplify work with project deletion - added
async_requestflag toEnvironment.create_projectmethod to allow requesting project creation asynchronously, without the need to wait for its completion
- added
- added lacking
journal_commentparameter toProject.delete()method - fixed issue where dates read via
pandas.read_excelwould be missing in cubes - fixed
Project.is_loaded()erroneously returningTrueat moments shortly after the project is created
- removed deprecated module
bot
- added
journal_commentargument todelete()method - added
journal_commentargument tocreate()andalter()methods for:Fact,User,UserGroup,ContentGroup,Calendar,Attribute,Filter,Metric,Prompt,SecurityRole,Transformation,TimeZone,LogicalTable
- fixed
list_logical_tablestreating imported Excel files as logical tables
- added
change_journalproperty to view objects change journal entries - added
list_change_journal_entriesfunction to list change journal entries across environment with specified filters - added
purge_change_journal_entriesfunction to purge change journal entries in specified projects - added
purge_change_journalsmethod toProjectclass to purge selected project change journal entries - added
purge_all_change_journalsmethod toEnvironmentclass to purge change journal entries for every project - added
purge_configuration_change_journalsmethod toEnvironmentclass to purge change journal entries for configuration objects
- added a set of
folder-related parameters to filtering in listing and creation methods in majority of existing modules. Please read mstrio-py documentation or class-specific code snippets for details regarding their use. - added
temporary_project_changecontext-method toConnectionclass for ease of temporary project selection where keeping the old one long-term is important - added
get_subfolders,traversalandtraverse_foldersmethods andpathattribute toFolderclass - added option of initialization of
Folderclass by its name. Please read the documentation to learn about risks of this approach - added argument
on_nodesinProject.is_loaded()method to check status on specific nodes - added argument
check_all_selected_nodesinProject.is_loaded()method to use logic requiring all nodes to have the project loaded - added code snippet for mstrio-py's configuration, named
config_mgmt.py - added alias
disconnectto methodcloseonConnectionobject - added alias
opento methodconnectonConnectionobject - added parameters
request_timeoutandrequest_retry_on_timeout_countonConnectionobject and methodsset_request_timeoutandset_request_retry_on_timeout_countas well as global config parameterdefault_request_timeoutto be able to customize timeout and retry logic on mstrio-py's requests to REST API - added
get_valid_page_by_elementsmethod toReportclass to get all possible elements combinations for page by attributes - added
valid_page_by_elementsproperty toReportclass that stores valid page by elements combinations - added
get_selected_page_by_elementsmethod toReportclass to get list of page by elements based on valid combination - enhanced
find_objects_with_idmethod to be able to find any type of object by only ID, regardless whether it is configuration-level or project-level, in an efficient manner - extended
Delivery.DeliveryModeenum withSHAREPOINT,ONEDRIVEandS3entries for support in listing existing subscriptions
- fixed error when generating dataframe from prompted reports with metric names in rows
- fixed issue with field
ContentCache.warehouse_tables_usedstoring incorrect data - fixed defect that
Report.page_by_elementsreturned maximum first 50 elements
- performed holistic cleanup and standardization regarding
folder-related parameters and in turn removed and renamed obsoletedestination_folder_idparameter from many methods. Please read mstrio-py documentation regarding what and how to do if you were using this parameter in your script
- updated the
SearchObjectclass- added method
alter - released methods
createandrunfor general availability
- added method
- added function
list_search_objects - added support for LDAP batch import management within
Environmentmodule - added
delete_unused_managed_objectsmethod toProjectclass to allow deleting unused managed objects in a specific project
- added arguments
description,query_modification_time,query_creation_time,owner,locale_id,include_hidden,include_subfolders,exclude_foldersandscopetofull_searchandstart_full_searchfunctions - enabled passing
SearchObjectas content for object migration - added
has_dependentsmethod toDependenceMixinclass - added
scopeparameter intoDependenceMixin's methods - added support for
ObjectSubTypesforobject_typeparameter inlist_objects - improved
Usage Remarkssection of mstrio-py's documentation with instructions on how to useproject-related parameters, how to recognize types and subtypes and how to apply**filtersin listing methods
mstrio.project_objects.botsmodule is superseded bymstrio.project_objects.agentsand will be removed in the future
- updated the
SearchObjectclass- added properties related to search query
- (preview) added methods
createandrun
- updated
Promptclass to support general prompt management
- updated
Project.load()andProject.unload()to use more performant endpoint with server-wide operations - improved answering prompts in Report, Document, Dashboard, Subscription
- fixed error in enum value name
ObjectSubTypes.SUPER_CUBE_IRR - restored several object types missing in Migration Package contents
mstrio.project_objects.promptmodule is superseded bymstrio.modeling.promptand will be removed in the future, after 1-year deprecation period
- added
is_run_in_workstationmethod toConnectionclass to check if the script is run in Workstation context - added prevention logic to
get_connectionmethod disallowing accidental connection closing - added
model_list_vldb_settingsmethod toReport - added possibility to alter
ownerfield withObjectclassalter()method - added possibility to set application name as Library title of
Applicationobject - added
data_source_script_all_users.pyandtransaction_edit_users.pyscript templates - improved error message for server not supporting new Python Application Type during login
- added support for object subtypes corresponding to Bots 2.0, Universal Bots and Datamart Reports
- fixed
Metricandlist_metricserroneously supporting Subtotal objects
- added
duplicatemethod toProjectclass that allows duplicating projects on the same environment - added
ProjectDuplication,ProjectDuplicationStatus,DuplicationConfig,ProjectInfoclasses andlist_projects_duplicationsfunction in mstrio.server.project to support project duplication process - added
LibraryShortcutclass andlist_library_shortcutsmethod inLibraryclass to manage items as published to the user's Library - added
get_library_shortcutmethod inDocument,DashboardandBotto manage published items
- added Library-related methods to
Botclass - added code snippet
logging.pyto show how to add custom logging inside custom scripts - updated
publish()to use User Groups as a whole instead of each user separately - updated
unpublish()to enable unpublishing for User Groups
- fixed the
execute()method for Subscription classes failing with multiple contents - fixed
Documentclass initialization incorrectly overwritingproject_idwith a one fromConnectionobject - fixed
list_botsskipping Bots 2.0 and Universal Bots
- connections done through class
Connectionare now being identified by their own application type 76 "DssXmlApplicationPython"
- added
working_setandmax_searchoptional parameters when creatingConnectionobject - added
get_api_tokenmethod toUserclass to allow creating API Token by administrator for the user - added filtering arguments in
list_shortcuts - added
invalidateand bulkinvalidate_cachesmethods for content cache management
- fixed
UserGroup.remove_all_users()not working with empty User Groups - fixed the issue with
ContentCache.list_caches()not working when caches in the 'binary_definition, binary_data' format exist - fixed Metric retrieval failing if series formatting is set
- fixed invalid
ScheduleEnums.YearlyPatternenum throwing error for yearly schedule
Licenseclass refined with methods to supportcompliance_checkandaudit- added
UserLicenseandPrivilegeInfodata classes in the license module
- added methods
is_html_js_execution_enabledandset_html_js_execution_enabledto Documents and Dashboards
- fixed the
alter()method for Subscription classes failing with prompted content
- added
Licenseclass inmstrio.server.licensesubpackage to allow management of License
- added support for logging in with API Token to
Connectionclass - added
application_idargument toConnectionclass to allow logging in using custom application - added
contact_addressargument toUser.add_addressmethod to allow passingContactAddressobject - added
create_shortcutmethod to all objects inheriting fromEntity - added
list_shortcutsfunction inmstrio.object_management.shortcut - added
altermethod to theShortcutclass - added
what_can_i_do_withhelper method tomstrioroot folder for helping with scripts creation
- fixed the
update()method forSuperCubeclass, to correctly encodeDataframechunks, when chunk size is smaller than theDataframe - fixed the
alter()method forSuperCubeandOlapCubeclasses not altering thedescriptionattribute - added missing
list_projectsmethod insideproject.pymodule, which was available only viaEnvironment.list_projects()class method call
- removed the obsolete
CONFIGURATION_AND_ALL_PROJECTSvalue fromSearchDomainenum
- added
list_timezonesmethod andTimeZoneclass inmstrio.server.timezoneto allow management of Time Zone internationalization objects
- allowed to provide a string as a qualification when using the
createandaltermethods of theFilterandSecurityFilterclasses - added
aliasargument toaltermethod toProjectclass to allow setting project alias - added
create_profile_foldermethod toUserclass to allow creating profile folders - added
username,user_idandobject_nameproperties toJobclass - added
create_copymethods toSubscription,Schedule,TransformationEvent - updated
altermethod in a number of classes to allow changing ownership of their corresponding objects
- fixed an error with fetching all
Attributeobject properties listed in a project other than the one selected in theConnectionobject - fixed
User.add_address()erroneously allowing to not passnameoraddressarguments
- removed the
Dossierclass as it is deprecated. From now on, please use only theDashboardclass instead
- added
list_calendarsmethod andCalendarclass inmstrio.server.calendarto allow management of Calendar internationalization objects - added
list_palettesmethod andPaletteclass inmstrio.project_objects.palettesto allow management of Color Palette objects - added
answer_promptsmethod toReport,DocumentandDashboardclasses to allow answering prompts - added
list_related_subscriptionsmethod toUser,Dashboard,Report,ScheduleandEventclasses to allow listing related subscriptions
- added
deletemethod toSearchObjectandShortcutclasses - added
delete_profile_foldermethod toUserclass to allow deleting profile folders - added
delete_profileargument todeletemethod ofUserclass to allow deleting user profiles along with the user - added
default_email_addressandemail_devicearguments tocreateandaltermethods ofUserclass to allow setting default email address and email device - changed output of
executemethod forIncrementalRefreshReportfrom None toJobobject - added
refresh_statusmethod forJobobject to update status of already completed job - added
list_palettesmethod toDocument
- fixed the
createmethod forSchedulenot correctly checking theschedule_typeargument if it was passed asstr - fixed the issue requiring Architect privilege when fetching data about the cube
- fixed the
createmethod forEmailSubscriptionnot allowing the creation of subscriptions with multiple content objects
- added
list_fencesmethod andFenceclass inmstrio.server.fencesubpackage to allow management of Fences - added
list_cluster_startup_membershipandupdate_cluster_startup_membershipmethods toClusterclass inmstrio.server.clusterto allow management of cluster startup membership - added arguments
add_to_cluster_startupandremove_from_cluster_startuptoadd_nodeandremove_nodemethods inClusterclass inmstrio.server.clusterto allow adding and removing nodes from cluster startup - added
port,status,load,projectsanddefaultattributes toNodeclass inmstrio.server.nodesubpackage - added
get_status_on_nodemethod toProjectinmstrio.server.projectclass to allow checking the status of a project on a specific node - added
lock,unlockmethods andlock_statusproperty toProjectclass inmstrio.server.projectto allow managing project locks
- added
include_subfoldersflag tolist_foldersmethod ofmstrio.object_management.folderpackage to allow getting all folders in the specified project or configuration-level folders - added
parent_folderargument tolist_foldersmethod ofmstrio.object_management.folderpackage to allow getting all folders from specified parent folder only
- fixed the
settingsproperty for theUserGroupclass to allow fetching a list of settings on the environment version 11.4.1200 and above. On the previous environments versions no change in behaviour will happen and the settings for thejobMemGoverningwill be returned - fixed the
createmethod for theContentGroupto allow creation without the need to providerecipients - fixed the
altermethod for theApplicationclass, passing the wrong body to the server - fixed the
altermethods forEventandDriverclasses to allow update comments - fixed
EmbeddedConnectionso that its objects properly link to their correspondent DSNs - fixed
User.last_loginerroneously reporting the user does not exist in some cases
- added
list_botsmethod andBotclass inmstrio.project_objects.botssubpackage to allow management of Bots - added
list_content_groupsmethod andContentGroupclass inmstrio.project_objects.content_groupsubpackage to allow management of Content Groups - added
list_applicationsmethod andApplicationclass inmstrio.project_objects.applicationssubpackage to allow management of Applications - added
StorageServiceclass for Storage Service configuration of an environment - added
storage_serviceproperty,fetch_storage_serviceandupdate_storage_servicemethods to theEnvironmentclass to manage the environment's Storage Service configuration - official release of
Migrationclass and its methods (introduces some breaking changes compared to "Preview" state)
- added
last_update_timeproperty toCubebased classes
- fixed
utils.wipto not configure root logger, added separate logger for the library's root module to not interfere with loggers defined in users' scripts - fixed
DatasourceInstance.to_dictso that incomplete REST response does not invalidate listing Datasource Instances and lookup by name
- added
refresh()method toOlapCubeandSuperCubeclasses to allow cubes republish without interaction, creating aJob - added support for providing a folder path instead of a folder ID to methods within the
Folderclass, and alsoquick_search,full_searchand all methods inheriting from them that accept a folder ID argument - added
include_subfoldersflag toget_contentsmethod ofFolderclass to allow getting the contents of the children of the specified folder recursively - added the
sqlproperty toReportclass, that allows getting the SQL View of a report without executing it - added
IncrementalRefreshReportclass inmstrio.object_management.incremental_refresh_reportpackage to allow managing Incremental Refresh Reports - added
list_incremental_refresh_reportsmethod to allow listing Incremental Refresh Reports in a project - added function
quick_search_by_id()inmstrio.object_management.search_operationsto allow searching for objects by object and project ID - added function
send_email()inmstrio.distribution_services.emailto allow sending emails - added
execute_query()method toDatasourceInstanceclass to allow executing SQL queries - added
statusproperty toSubscriptionclass to allow checking the status of a subscription - added support for answering prompts in
to_datasource()method ofReportclass, along with aPromptclass inmstrio.project_objects.promptsto support prompts - added support for
password_auto_expireandpassword_expiration_frequencyfields toUserclass - added support for Page By in
Reportclass - added support for VLDB properties in
Reportclass
- added Warning message to
OlapCubenadSuperCubeclasses that is shown when provided ID belongs to Cube of different type - updated
PageSizeEnum values to allow proper Subscription initialization - added support for both
nameanddisplay_namein VLDB settings provided byModelVldbMixin - added
vldb_settingsproperty inVldbMixinclass that stores VLDB settings in dict with setting names as keys
- added
delete_object_cache()anddelete_element_cache()methods toProjectclass to allow deleting object and element cache - added new optional argument
show_descriptiontoProjectSettings.list_caching_properties()to show description for each setting - added
delete_server_object_cache()anddelete_server_element_cache()methods toEnvironmentclass to allow deleting object and element cache from all projects - added
MobileSubscriptionclass inmstrio.distribution_services.subscriptionpackage to allow management of the new subscription type - added new bulk methods to the
Translationclass:to_json_from_list,add_translations_from_json,to_database_from_list,add_translations_from_database,to_dataframe_from_listandadd_translations_from_dataframe - updated old Translation methods:
to_csv_from_listandadd_translations_from_csvwith new functionalities present in the new bulk methods for json, databases and dataframes - added support for the
commentsfield in MSTR objects to view and edit their long description - added
EmbeddedConnectionclass to allow access to embedded connection templates inDatasourceInstance - added support for Python 3.12
- updated script template for datasource scripts
enableHtmlContentInDossierserver setting is now read-only for environments on Update 13 and newer, and cannot be changed using mstrio-py since it is being superseded byallowHtmlContent
mstrio.project_objects.dossiermodule is superseded bymstrio.project_objects.dashboardand will be removed in the future, after 1-year deprecation period
- MicroStrategy for Jupyter Extension is no longer developed and supported and was removed from the mstrio-py package in March 2024. You can still use the mstrio-py library and all its current and upcoming features.
- changed
list_usersto allow filtering onenabledfield - added support for
ldapdn,language,owneranddefault_timezoneforUsers - added support for
ldapdnforUserGroups - added
add_datasource()andremove_datasource()methods toProjectclass to allow adding and removing datasources from the project - added
data_language_settingsandmetadata_language_settingsproperties toProjectclass to allow interacting with project internalization:add_language(),alter_language(),remove_language(),alter_current_mode(),alter_default_language()methods for thedata_language_settingspropertyadd_language(),remove_language()for themetadata_language_settingsproperty
- added new optional argument
show_descriptiontoProjectSettings.list_properties(),ProjectSettings.to_csv(),ServerSettings.list_properties(),ServerSettings.to_csv()to show description for each setting - added
Enumsinmstrio.server.setting_typesto allow alteringEnumsettings by providingEnumvalues instead ofstring
- updated code snippets for datasources to use
Languageclass andlist_languagesfunction frommstrio.server.languagepackage instead ofLocaleclass andlist_localesfunction - members in user groups and security roles are now instances of
UserorUserGroupclass instead of dictionaries - addresses in
Userclass are now instances ofAddressclass instead of dictionaries - added
force_with_dependentsflag inSchedule.delete()method that allows to deleteSchedulewith dependent subscriptions without prompt
- changed endpoint of
list_users, allowing for listing users in environments with large number of users more efficiently
- possibility of providing
initialsas a filter inlist_usersis deprecated and will be removed in the future
- removed
Localeclass andlist_localesfunction frommstrio.datasources.datasource_mapmodule - removed
update()method fromOlapCubeclass - removed
mstrio.api.exceptionsandmstrio.helpers.exceptionsmodules - removed
overwrite,attributesandmetericsparameters inOlapCube.create()method - removed ability to pass instance of
Localeclass as argument inmstrio.datasources.datasource_mapmodule
- added support for VLDB properties for
Metricobjects by providinglist_vldb_settings,reset_vldb_settings,alter_vldb_settingsmethods andvldb_settingsattribute - add
refreshargument tolist_datasource_warehouse_tablesto allow refreshing warehouse tables available in a datasource - enhanced
update_physical_table_structureandupdate_physical_table_structure_for_all_tablesmethods ofLogicalTableto work after changingWarehouseTablestructure - added
Translationclass inmstrio.object_management.translationpackage to allow management of Translations for any object with the following methods:add_translation,alter_translation,remove_translation,to_csv_from_listandadd_translations_from_csv - added
list_translationsto allow listing translations for objects - added
add_translation,alter_translation,remove_translationandlist_translationsmethods to all objects inheriting from Entity to allow translation management directly through the objects
- moved
Rights,AggregatedRights,Permissionsenums tomstrio.helpersmodule
- updated default values of
PackageSettingsclass to allow safe initialization - fixed
Project Not Loadederror when trying to initializeProjectobject when running in a cluster configuration with the project not being loaded on all nodes - fixed
full_search,get_search_resultsto always return correct number of objects
- removed
list_folders,create_folder,delete_folderfrommstrio.utils.helperbecause they have been superseded bymstrio.object_management.foldermodule
- added
delete()method toProjectclass to allow deleting projects - added parameter
hiddentocreatemethods ofAttributeandMetricclasses
- rename
ObjectTypes.NONEtoObjectTypes.NOT_SUPPORTEDinmstrio.typesmodule
- fixed
to_dataframemethod ofOlapCubeclass to return dataframe containing not only default attribute forms (The following types of Intelligent Cube are not supported: MDX, Query Builder, Freefrom SQL, Freeform XQuery, and Data Import.) - add printing info message to
load,unloadanddeletemethods ofContentCacheclass indicating that operation could not be performed because cache was deleted, in that case execution ofloadmethod will be stopped by raising error - added support for
Datetype toSuperCubeclass - updated
User.add_addressandUser.update_addressmethods to allow more address customizations
mstrio.api.exceptionsandmstrio.utils.exceptionsmodules are superseded bymstrio.helpers, and will be removed in the future
- added
Languageclass inmstrio.server.languagepackage to allow management of Languages - added
list_languagesandlist_interface_languagesto allow listing languages and interface languages
- fixed
Metricobjects always returningNoneforhiddenfield and fixedaltermethod to allow updating it
Localeclass inmstrio.datasourcesis no longer supported and is superseded byLanguageclass inmstrio.server.languagepackagelist_localesfunction inmstrio.datasourcesis no longer supported and is superseded bylist_languagesfunction inmstrio.server.languagepackage
- updated
createmethod ofOlapCubeclass to support new parameters:template,filter,options,advanced_properties,time_based_settings,show_expression_asandshow_filter_tokens - updated
altermethod ofOlapCubeclass to allow altering new parameters:template,filter,optionsandtime_based_settings - added
set_partition_attribute,remove_partition_attributeandlist_attribute_formsmethods toOlapCubeclass to allow management of partition attribute and observing attributes forms - added
list_vldb_settings,alter_vldb_settingsandreset_vldb_settingsmethods toOlapCubeclass to allow management of VLDB settings
updatemethod ofOlapCubeclass is no longer supported, is superseded byaltermethod, and will be removed in the futureattributes,metricsandoverwriteparameters increatemethod ofOlapCubeclass are no longer supported, are superseded bytemplateparameter, and will be removed in the future
- added
list_vldb_settings,alter_vldb_settingsandreset_vldb_settingsmethods toDatasourceInstanceclass andProjectclass to allow management of VLDB settings - added
Driverclass andlist_driversfunction inmstrio.datasources.drivermodule to allow driver management - added
Gatewayclass andlist_gatewaysfunction inmstrio.datasources.gatewaysmodule andGatewayTypeandDBTypeenums inmstrio.datasources.helpersto allow gateway management
- updated
ipythondependency version to 8.10.0 - added a
project_idproperty forMetricinstances - fixed
is_logical_size_lockedforLogicalTableto be working as boolean - fixed
list_logical_tablesfunction to return all tables if called without specifyingproject_idorproject_name, unless limit argument is provided - fixed
Attribute,Document,Fact,Filter,Metric,Transformation,IncrementalRefreshReportclasses to be initialized by name withSearchPattern.EXACTLYinstead ofSearchPattern.CONTAINS - fixed
list_objectsfunction to accept integer as input forobject_typeargument - fixed
User.security_filtersproperty to always return all user's security filters from all loaded projects - added
delivery_expiration_timezoneargument forSubscriptionclass and its subclasses (supported from Update 10 environments) - fixed
Attributeobjects always returningNoneforhiddenfield and fixedaltermethod to allow updating it - added
SuperCubeAttribute,SupperCubeAttributeForm,SuperCubeFormExpressionclasses inmstrio.project_objects.datasets.super_cubemodule to support attribute forms forSuperCube
- added
HistoryListSubscription,FTPSubscriptionandFileSubscriptionclasses inmstrio.distribution_services.subscriptionpackage to allow management of new subscription types - added
DynamicRecipientListclass inmstrio_distribution_services.subscriptionpackage to allow management of Dynamic Recipient Lists - added
list_dynamic_recipient_liststo allow listing dynamic recipient lists
- added verification, when initializing
Reportobject, if object is supported, currently supported are objects with subtypes: 768 - grid, 769 - graph 769, 770 - engine, 774 - grid and graph, 778 - transaction, 781 - hyper card - changed
list_reportsfunction to return only object supported byReportclass - added methods to convert connection from DSN to DSN-less format in classes
DatasourceInstanceandDatasourceConnection - improved error messages when calling
list_dependentsandlist_dependencieson unsupported objects - added support for
Timetype toSuperCubeclass - added
withstatement compatibility forConnectionobject - added function
find_objects_with_idinmstrio.object_management.search_operationsto allow searching for object when knowing only its ID - fixed listing and initialising by name documents and dossiers when name was longer than 30 characters
- fixed not being able to create
SuperCubewith update policy other thanreplace - added checking during creation if
SuperCubewith given name already exists in a folder, and display an error if it does - added support for Python 3.11
- fixed
Dossierclass to work properly when being initialised by name - fixed
Project.altermethod - fixed managing
Subscriptionsrecipients to work properly with existing recipients - fixed circular import of the
Devicemodule forContactanddistribution_services - altered
attributes.pycode snippet to uselist_table_columnsandlist_logical_tablesmethods fromtablemodule - updated dependencies in
requirements.txt - fixed
list_objectsmethod to work properly for different domains - fixed and combined
_update_acland_modify_rightsmethods, addedmodify_rightsmethod - added
ServiceandServiceWithNodeclasses inmstrio.server.nodemodule
- added
ContentCacheclass inmstrio.project_objects.content_cachemodule to allow Document, Dossier and Report cache management
- added
list_propertiesandlist_available_schedulesmethods formstrio.project_objects.documentmodule - added
list_propertiesmethod formstrio.project_objects.dossiermodule - added
VisualizationSelector,PageSelector,PageVisualization,ChapterPageandDossierChapterclasses inmstrio.project_objects.dossiermodule - added cache management methods for
mstrio.project_objects.documentmodule by inheriting fromContentCacheclass - added cache management methods for
mstrio.project_objects.dossiermodule by inheriting fromContentCacheclass - fixed
list_documents_across_projectsfunction to work properly whento_dataframeorto_dictionaryparameters are set toTrue, also to not return an error when user has no access to one of the projects but to skip that project instead - fixed
list_dossiers_across_projectsfunction to work properly whento_dataframeorto_dictionaryparameters are set toTrue, also to not return an error when user has no access to one of the projects but to skip that project instead - added
export_sql_viewmethod toSuperCubesto allow extraction of sql statement - increased chunk size for fetching projects
- fixed importing and exporting project settings from/to CSV file
- fixed
list_physical_tableswhen logical table aliases are in the project - fixed
project_idparameter not being used inlist_logical_tables - added two methods to
Userclass:User.to_dataframe_from_list()andUser.to_csv_from_list() - fixed altering
table_prefixinDatasourceInstance - fixed getting
Subscriptionswithrefresh_condition
mstrio.distribution_services.contactmodule is no longer supported and is moved tomstrio.users_and_groupssubpackagemstrio.distribution_services.contact_groupmodule is no longer supported and is moved tomstrio.users_and_groupssubpackagemstrio.access_and_security.security_filtermodule is no longer supported and is replaced bymstrio.modeling.security_filterandmstrio.modeling.expressionsubpackages
- added
Transformation,TransformationAttributeandTransformationAttributeFormclasses inmstrio.modeling.schema.transformationsubpackage to allow transformation management - added
list_transformationsto allow listing for transformations - added
DefaultSubtotals,Dimensionality,DimensionalityUnit,FormatProperty,Metric,MetricFormatandThresholdclasses inmstrio.modeling.metricsubpackage to allow metric management - added
list_metricsto allow listing for metrics
- added
list_localestomstrio.datasource.datasource_mapmodule to allow listing locales - added
DatasourceMap.alter()method to allow altering user-defined connection mapping - added
list_warehouse_tables()method tomstrio.modeling.schema.table.warehouse_tablemodule to allow listing all warehouse tables from all available datasources
mstrio.distribution_services.contactmodule is deprecated and is moved tomstrio.users_and_groupssubpackagemstrio.distribution_services.contact_groupmodule is deprecated and is moved tomstrio.users_and_groupssubpackagemstrio.access_and_security.security_filtersubpackage is deprecated and replaced bymstrio.modeling.security_filterandmstrio.modeling.expressionsubpackages
- added
Filterclass inmstrio.modeling.filtersubpackage to allow filter management - added
list_filtersto allow listing of filters - turned off certificate verification when using
get_connection
- added possibility for passing
project_nameinstead ofproject_idin the functions that were allowing onlyproject_idbefore.
- added
LogicalTable,PhysicalTableandWarehouseTableclasses inmstrio.modeling.schema.tablesmodule to allow table management. - added
list_logical_tables(),list_physical_tables()andlist_datasource_warehouse_tables(),list_namespaces()to allow for listing of and searching the project for specific tables.
- added
search_patternandproject_idparameters in object listing functions - added
movemethods toFolder,Object,SecurityFilter,Attribute,Fact,UserHierarchy,Report,Shortcut,SearchObject,DocumentandDossierto allow moving objects between folders - added
create_copymethod toSecurityFilter,Attribute,Fact,UserHierarchy,Report,Shortcut,SearchObject,DocumentandDossier
name_beginsparameter is deprecated in functions listing cubes and reports in favour ofnameparameter
- added
Factclass inmstrio.modeling.schema.factsubpackage to allow fact management - added
list_factsto allow listing of facts
- added
Attributeclass inmstrio.modeling.schema.attributesubpackage to allow attribute management - added
AttributeFormclass inmstrio.modeling.schema.attribute_formsubpackage to allow attribute form management - added
list_attributesto allow listing of attributes - added
list_functionsinmstrio.modeling.expressionsubpackage to allow listing of functions - added
fact_expression,expression,expression_nodes,parametersanddynamic_date_timemodules inmstrio.modeling.expressionsubpackage to allow management of fact expressions
- Changed
ExecutionModeelements fromASYNCH_CONNECTIONtoASYNC_CONNECTIONand fromASYNCH_STATEMENTtoASYNC_STATEMENT - refactored
examplesintocode_snippetsfolder, with changes to make them more easily usable in MicroStrategy Workstation - renamed folder
workstation_demosintoworkflows
- added
SchemaManagementclass inmstrio.modelingsubpackage to allow schema management - added
UserHierarchyclass inmstrio.modelingsubpackage to allow user hierarchy management Migrationmodule is available now as a Functionality Preview- added function
list_user_hierarchiesto allow listing of objects of newly created classUserHierarchy
- added
Contactclass inmstrio.distribution_services.contactsubpackage to allow contact management - added
ContactGroupclass inmstrio.distribution_services.contact_groupsubpackage to allow contact group management - added
Deviceclass inmstrio.distribution_services.devicesubpackage to allow device management - added
Transmitterclass inmstrio.distribution_services.transmittersubpackage to allow transmitter management - added functions
list_contact,list_contact_groups,list_devices,list_transmittersto allow listing of objects of newly created classes - added
Migrationclass inmstrio.object_management.migrationfor migration related functionalities. This feature is still work in progress, and it will be completed by 03.2022. - added
PackageConfigclass inmstrio.object_management.migrationwith supportingPackageSettingsandPackageContentInfoused for configuring migration - extended
Eventclass inmstrio.distribution_services.eventwith functionalities to create, update and delete events.
- added delete functionality to
Document,DossierandReportclasses - change
Connectionobject to automatically renew the connection or reconnect when the session becomes inactive if authenticated with login and password - deprecate
Connectionobject attributesessionand renamed it into_session, making it private - add the following HTTP requests methods to
Connectionobject:get,head,post,put,delete,patch
- added
CacheUpdateSubscriptionclass tosubscriptionmodule
- return specific type of subscription object when using
list_subscriptions - inner structure of
mstrio.distribution_services.subscriptionwas changed. Please make sure to import frommstrio.distribution_servicesormstrio.distribution_services.subscriptionat most, since anything deeper is considered internal implementation details and not guaranteed to remain stable - added arguments
useranduser_groupto functionlist_security_filtersto allow filtering results by user or user group - added method
list_security_filterand propertysecurity_filterstoUserGroupclass - added method
list_security_filterand propertysecurity_filterstoUserclass
- added
job_monitormodule withlist_jobs,kill jobs,kill_all_jobsfunctions andJobclass - added
Objectclass inmstrio.object_managementsubpackage to allow object management - added
list_objectsfunction to allow listing objects by type - added
Folderclass inmstrio.object_managementsubpackage to allow folder management - added
list_folders,get_my_personal_objects_contents,get_predefined_folder_contentsfunctions to allow listing folders and getting contents of particular folders - added enum
PredefinedFolderswith all available values of pre-defined folders - added
quick_search,quick_search_from_object,get_search_suggestionsfunctions that use the stored results of the Quick Search engine to return search results and suggestions - added
full_searchwhich usesstart_full_searchandget_search_results, that can be used to search the metadata for objects in a specific project that match specific search criteria - added
list_dependenciesandlist_dependentsmethods to most of the classes that provide information about dependence of an object - added
Shortcutclass inmstrio.object_managementsubpackage
- changed
Subscriptionclass to now useContentandDeliveryobjects instead of dicts - changed owner field of
SubscriptiontoUserobjects - changed all date fields to
datetimeobjects - improved filtering performance in listing objects functions
- Term
applicationdeprecated (see section 'Deprecated'), and renamed in method names, method arguments, file names, class names toproject(see notebooks in 'examples', and demo scripts in 'demos' for details). Examples:list_applications()renamed tolist_projects()application,application_name,application_idrenamed toproject,project_name,project_idmstrio.server.applicationrenamed tomstrio.server.projectApplicationrenamed toProject
- Updated notebook examples and demo scripts in 'examples' and 'demos' folders
- changed
certified_infofield ofReportandDocumentfrom dict toCertifiedInfoobject - added parameter
propagate_to_childrento methods inACLMixinclass acgproperty of an object now use aRightsenumaclproperty of an object now use a new classACEextended_typeproperty of an object now use aExtendedTypeenum
- fixed server memory settings issues when converting
- fixed server settings configuration for I-Server version prior to 11.3.0
- fixed bug where list_subscription is limiting data to 1000 results only
- fixed
Stylerobject being returned instead ofDataFrameinnodes_topologyandservices_topologymethods inClusterclass
application,application_name,application_idparameters/attributes- functions having a term 'application' in their definition
- modules having a term 'application' in their name
- class names having a term 'application' in their definition In all of above-mentioned changes, a new term is 'project'
mstrio.browsingis deprecated and is superseded withmstrio.object_management.search_operationssubpackage,SearchTypeenum is nowSearchPattern
- added
Scheduleclass inmstrio.distribution_services.schedulesubpackage - added
ScheduleTimeclass inmstrio.distribution_services.schedulesubpackage, local object used for specifying time related properties of schedule - added
Eventclass inmstrio.distribution_services.eventsubpackage - changed
Subscriptionclass to now useScheduleobjects - added datasources subpackage with
Dbms,DatabaseConnections,DatasourceInstance,DatasourceLogin,DatasourceMapclasses covering database management functionality - added functions
list_available_dbms,list_datasource_connections,list_datasource_instances,list_datasource_logins,list_datasource_mappingsto list all datasource related objects - added
database_connectionsmodule allowing to browse and manage database connections on the environment - added ACL management functionality for all supporting objects by adding
list_acl,acl_add,acl_remove,acl_altermethods - added
SecurityFilterclass and functionlist_security_filtersinmstrio.access_and_security.security_filtersubpackage - added
Qualificationclass inmstrio.access_and_security.security_filtersubpackage which is an object used to represent qualification of security filter - added classes
PredicateBase,PredicateForm,PredicateElementList,PredicateFilter,PredicateJointElementListandLogicOperatorinmstrio.access_and_security.security_filtersubpackage to represent predicates which can be used in creation of qualification for security filter - added classes
ParameterBase,ConstantParameter,ObjectReferenceParameter,ExpressionParameter,PromptParameter,DynamicDateTimeParameterandConstantArrayParameterinmstrio.access_and_security.security_filtersubpackage to represent parameters used inAttributeForm
- fixed urllib3 dependency installing incompatible version
- fixed GUI login to be case-insensitive
mstrio.admin.scheduleis deprecated and superseded withmstrio.distribution_services.schedulesubpackageschedulesreplace argumentschedules_idincreateandalter, methods ofScheduleclassmstrio.distribution_services.schedule.ScheduleManageris now deprecated, usemstrio.distribution_services.schedule.list_schedules()instead- removed features deprecated in release 11.3.1.101 and aliases allowing for backward compatibility
- changed files structure to organize the modules in clean and readable way
- added or improved type hints across the codebase
- added Enums:
PrivilegeMode,IdleMode,GroupBy,ServiceAction,RightsandPermissions - implemented
Nodeclass to be used for node management in place of a raw dict - added
CubeCacheclass inmstrio.application_objects.datasetssubpackage - updated method
load_cubeto load cube by name - added functions
list_cube_caches,delete_cube_cachesanddelete_cube_cache - added methods
create,update,get_sql_viewandpublishfor class OlapCube - added method
unpublishavailable for classesOlapCubeandSuperCube - added
list_reportsfunction toReportmodule - added
alterandlist_propertiesmethods toReportclass
- fixed custom cell collapsing at re-run at certain conditions
- fixed wrong object type for
Entity.__init__()method - fixed
KeyError:'body'when executingupdate_propertieson an object - fixed
TypeError: unhashable type:'dict'after accessingattr_elementsofCube - fixed
mstrio.datasetmodulepublishmethod sending requests too frequently to the REST API
idreplaces fieldreport_idinReportclass
- added
SuperCubeandOlapCubeclasses inmstrio.application_objects.datasetssubpackage - added
list_all_cubes,load_cube,list_super_cubes,list_olap_cubesfunctions that allow searching available cubes by name and construct precise objects - added possibility to alter
name,description,abbreviationproperties of cubes - added more
Cubeobject attributes similar to other MSTR objects - added
user_id,user_full_name,user_initialsattributes toConnectionclass - added missing parameters
trust_idanddatabase_auth_logininuser.alter()method
- fixed
KeyErrorwhen trying to connect on certain environments #49 - fixed initializing
Cubeobject when cube Server available #46 - fixed
instance_idattribute not being filled inCubeclass #39
mstrio.adminsubpackage is deprecated and its modules are moved according to new structuremstrio.cubeandmstrio.datasetare deprecated and are superseded byOlapCubeandSuperCubefromapplication_objects.datasetssubpackagemstrio.reportandmstrio.librarymodules are deprecated and are moved toapplication_objectssubpackagedate_modifiedandidreplace parameters/attributescube_idandlast_modifiedin newSuperCubeandOlapCubeclassesproject_idandproject_nameparameters/attributes are deprecated across the package in favor ofapplication_idandapplication_name
- updated example links in readme.md file
- added
adminsubpackage withuser,usergroup,application,security_role,privilege,schedule,subscription,subscription_managermodules allowing to administer those objects on the MicroStrategy environment, notably:- browse and view
- modify
- create and delete
- manage privileges and object permissions
- added
servermodule allowing to administer the cluster, change node settings, manage services and more - added support for viewing, comparing, modifying, exporting/importing
application and I-Server settings via the
applicationmodule - added
user_connectionsmodule allowing to manage active user sessions - added
librarymodule allowing to view and manage users' libraries - added
dossieranddocumentmodules - added support for proxy configuration in
Connectionclass - added
Connection.select_project()method allowing to change current project - changed
Connectionobject constructor to not require settingproject_idorproject_name
- added UI-generated Custom Jupyter Cells which allow for Python Code edition and use mainly via UI, Buttons and Interactive Button-like Elements
- improved GUI stability in Data Modelling
- improved Safari compatibility
- resolved import issues with OLAP cubes
- resolved edge case general issues in import and export
add,update,upsertupdate methods are not supported anymore when overwriting cube and will throwValueErrorexception
- improved performance for downloading Reports / Cubes with view filter
- automatically remove the
Row Countcolumn from the imported datasets - extend
Connectionclass with theidentity_tokenparam to allow for delegated authentication - added support for operator
NotInin view filter - added
instance_idparameter in theReport/Cubeconstructors to utilize existing instance on I-Server - limited HTTP sessions by reusing the underlying TCP/IP connection
- added new methods to
Cubeclass:updateandsave_as - improved overall user experience in the GUI
- fixed critical compatibility issue with 11.1.x environments
- various UI fixes
- Release has been yanked due to compatibility issue with 11.1.x environments
- introduced functionality for updating existing Cubes
- improved fetching performance by up to 50%
- added support for cross-tabbed Reports
- added support for Reports with subtotals
- added basic support for Reports with attribute forms
- extended
Datasetclass with thecertify()method - implemented asynchronous download of Cubes and Reports
- applied revamped MicroStrategy REST API import-related endpoints
- reworked GUI’s data modeling functionality
- fixed issues with Cube / Report filtering during import
- improved user experience for the GUI's login page
- added handling of various forms of environment's base URL
- resolved issues with importing / exporting Datasets containing special characters
- optimized downloading speed for filtered Reports
- improved performance when downloading unfiltered Cubes / Reports
- improved performance when filtering by attributes and metrics
- added
CubeandReportclasses to provide more flexibility when interacting with Cubes and Reports. These new classes provide the ability to select attributes, metrics, and attribute elements before importing them to Python aspandasDataFrames - added
Datasetclass that allows defining and creating multi-table cubes from multiple DataFrames, with improved data upload scalability, and the ability to define the Dataset within a specific folder - introduced graphical user interface to access the MicroStrategy environment using interactive Jupyter Notebook add-in
- ensured session cookies are passed when closing the connection
- minor bug fixes
- initial PyPI release (25 July 2018)