{"id":826,"date":"2019-06-12T00:00:00","date_gmt":"2019-06-12T00:00:00","guid":{"rendered":"https:\/\/structr.com\/structr-3-3-released\/"},"modified":"2025-02-12T08:58:00","modified_gmt":"2025-02-12T08:58:00","slug":"structr-3-3-released","status":"publish","type":"post","link":"https:\/\/structr.com\/en\/blog\/structr-3-3-released\/","title":{"rendered":"Structr 3.3: Better Security, Data Deployment, Easier Complex Queries"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]We are happy to release a new version of Structr today. Release 3.3 has many minor improvements and bug fixes as well as the some interesting new features of which we\u2019ll discuss a few in this blog post.<\/p>\n<p>To see yourself, just download Structr directly from <a href=\"https:\/\/structr.com\/resources\/download\">https:\/\/structr.com\/resources\/download<\/a> and test it with full functionality for 30 days free of charge.<\/p>\n<h3 id=\"encrypted-strings\">Encrypted Strings<\/h3>\n<p>A small but important improvement makes storing information in Structr even more secure: With version 3.3 it is possible to store strings in encrypted form. The secret key can either be stored in a configuration file or &#8211; for even greater security &#8211; set at runtime. The new encrypted strings can be used, for example, to retrieve e-mail mailboxes.[\/vc_column_text][vc_single_image image=&#8221;614&#8243; img_size=&#8221;large&#8221;][vc_column_text]<\/p>\n<h3 id=\"data-export-import\">Data Export\/Import<\/h3>\n<p>In addition, we have added a data export (\u201cdata deployment\u201d) to the deployment (export\/import). Now you can not only export Structr applications completely (and of course import\/deploy them again), but also any user\/domain data as a connected graph. This is very useful in the case of test data for example, but can also be used to save productive data.[\/vc_column_text][vc_single_image image=&#8221;1005&#8243; img_size=&#8221;large&#8221;][vc_column_text]<\/p>\n<h3 id=\"improved-query-functions\">Improved Query Functions<\/h3>\n<p>Furthermore, there are improvements in data binding: The functionality of the <code>find()<\/code> query function for StructrScript and JavaScript (example below) has been greatly enhanced. Now even complex queries are possible with multiple attribute filters which can also combined by boolean expressions, sorting and pagination.<\/p>\n<pre><code>\r\n${{\r\n    let users = $.find('Project',\r\n        {\r\n            $and: {\r\n                'name1': 'structr',\r\n                'age': $.range(30, 50)\r\n            }\r\n        },\r\n        $.sort('name', true),\r\n        $.page(1, 10)\r\n    );\r\n\r\n    return users;\r\n}}\r\n<\/code><\/pre>\n<h3 id=\"\"><\/h3>\n<h3 id=\"new-license-model\">New License Model<\/h3>\n<p>Finally, we have adapted our license model to the needs of our customers. Instead of the four editions (Community, Basic, Small Business and Enterprise Edition) there is now a Core system that can be extended by functional modules. This allows our customers to individually compile the required range of functions and thus adapt their license perfectly to the needs of their organization.<\/p>\n<p>We\u2019re also offering licenses on a per-user basis, starting from 100 \u20ac per month and user. Discounts are available depending on the number of modules and users\/instances.<\/p>\n<p>Go to <a href=\"https:\/\/structr.com\/product\/pricing\">https:\/\/structr.com\/product\/pricing<\/a> to find out more about the pricing of the commercial variants.[\/vc_column_text][vc_column_text]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text]We are happy to release a new version of Structr today. Release 3.3 has many minor improvements and bug fixes \u2026<\/p>\n","protected":false},"author":8,"featured_media":614,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[24,31],"tags":[150,131,147,156,145,143,144,142,152,157,149,155,158,146,159,151,141,154,160,153,148],"class_list":["post-826","post","type-post","status-publish","format-standard","hentry","category-structr","category-announcement","tag-boolean-expressions","tag-commercial-license","tag-complex-queries","tag-core-system","tag-data-deployment","tag-data-export","tag-data-import","tag-encrypted-strings","tag-find-query-function","tag-functional-modules","tag-javascript-query-functions","tag-new-license-model","tag-per-user-licensing","tag-secure-data-storage","tag-software-pricing","tag-sorting-and-pagination","tag-structr-3-3","tag-structr-data-management","tag-structr-improvements","tag-structr-security","tag-structrscript"],"acf":[],"_links":{"self":[{"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/posts\/826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/comments?post=826"}],"version-history":[{"count":8,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/posts\/826\/revisions"}],"predecessor-version":[{"id":2367,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/posts\/826\/revisions\/2367"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/media\/614"}],"wp:attachment":[{"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/media?parent=826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/categories?post=826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/structr.com\/en\/wp-json\/wp\/v2\/tags?post=826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}