Questions, discussions, news and updates regarding the Thinkwise Platform.
Recently active
Since launch less than 2 years ago, the Model Context Protocol has become the de facto standard for integrating systems with LLM chat interfaces or AI Agents. MCP Servers are popping up everywhere, in varying quality when it comes to capabilities, security and governance. Either software vendors offer an officially supported MCP server, or else unofficial (often vibe-coded) MCP Servers pop up.As with any runtime component, an MCP Server for the Thinkwise Platform should work for all customers and all applications. Developing such a dynamic component takes a bit more time, but in return a Thinkwise-provided MCP Server works for all customers, all Application models and all future changes to your Application out-of-the-box. And since we develop the Software Factory and Intelligent Application Manager (IAM) with the Thinkwise Platform as well, we can implement MCP for the Software Factory and the Intelligent Application Manager in a similarly fast fashion as you can for your applications.
Last December, I joined Thinkwise as a Product Designer. My main focus for 2026 will be improving the developer experience. I’ll be spending a lot of time in the Software Factory myself to experience how developers work with the platform, where friction occurs, and how we can make everyday development tasks easier and more efficient. The move of the Software Factory to the Universal UI is an important first step in that direction. By working hands-on with the Software Factory in both the Windows GUI and the Universal UI, I’ve been able to experience these changes from a developer’s perspective. This article shares practical insights from getting started and working with the Software Factory in the Universal UI and is intended to spark discussion on how we can continue to improve the developer experience. Word of warning Before upgrading to the 2026.1 release, make sure that all of your applications are running on the Universal UI. The Windows GUI will no longer work, and you will get
One of the unique selling points of the Thinkwise Platform is our promise of Technology-as-a-Service. We provide the technology, you create the application, and together we build never-legacy software. Over the years the Thinkwise Platform has evolved with many different GUIs to meet changing technological standards and user expectations. Our current UI is the Universal UI, a modern responsive interface based on Progressive Web App technologies that works seamlessly across devices and platforms. The Universal UI is served through our Service Tier Indicium, effectively introducing a more secure and robust 3-tier Architecture for your application.Transitioning to the Universal UI is a relatively straightforward process, thanks to the model-driven nature of the Thinkwise Platform. With our 7-step approach the transition should take weeks, not months. The exact effort depends on your current Model quality, use of Extenders and deprecated Features.Our goal is for all applications and users
Compared to other platforms, Thinkwise really excels in productivity. Especially the fact that creating a Data Model immediately results in a working Application is unparalleled! One of the current strategic priorities is to double down on this development speed of the Thinkwise Platform: we strive to make every Developer a mythical 10X Developer!There are a lot of angles we can work in order to achieve that goal. As a first, we want to fix unnecessary limitation in the Software Factory (SF). This means we want to tackle those things for which you as Developer have to create workarounds to get functionality working the way you(r users) need it.There are a lot of great Ideas out there and of course we'll review the existing ones. But I would also like to call upon the Community to highlight which existing Ideas would be your priority and/or to create new Ideas related to eliminating SF workarounds (please keep it to this scope in this topic).Could you please:Reply with Ideas that would
Somehow there is a user that doesn't have access to modelrefresh and the Debugger window. I checked the settings but I am not able to find what is missing. The User has developer rights added (both sf_developer rightsgroup) If I simulate the user I can see it The User has cleared the cash and restarted the browserIs there anyone who might have an idea what this could be or what I am missing?It is the following functionality: I see thisUser sees this:
Just updated Indicium to 2026.2.13.1 and this message appears in the log:“No RDBMSType was specified in the "MetaSourceConnection" configuration. It will default to 'SQLServer'. Providing a value will become mandatory in the future.”This did not exists in the .12 version, so it seems to be added. I however cannot find a mention of it in the release notes or the documentation.What are the possible values here and is correct “SQLServer” the casing to use?Please also update the documentation accordingly, so one can find such information even if it is not a mandatory value yet.
We have a form with settings for customers that is used for 2 types of customer, where one of those is basically a parent to the other. For a lot of fields the rule is that the setting of the parent is valid as long as the field is empty in the form of the child.This works fine, but we would like to be able to show the value that is used for the parent in the form of the child so it is clear which settings are used for the child.I think this basically means we would like to use an expression as the default for the childs form. That way we can show the parent's value without actually having to copy and store the value to the field on the form of the child.
Since our upgrade to 2026.2, we have encountered a critical issue with label printing. Labels are unexpectedly printed in Portrait instead of the configured Landscape orientation, causing the output to be cut off.After verifying the report layout, Software Factory settings, and printer driver configurations, we isolated the root cause to Indicium: 2026.2.10: Prints correctly in Landscape 2026.2.11: Incorrectly prints in Portrait 2026.2.12: Incorrectly prints in Portrait As a temporary workaround, we have rolled back to Indicium 2026.2.10. Given that this is an essential continuous production process, could this regression please be investigated so we can safely adopt upcoming Indicium releases?(See attached photo for the cut-off print result)
The Edit in Grid mode, as we knew it from previous versions, no longer seems to be available. Is there any plan to bring this functionality back?We would very much like to see it return, allowing end users to enable Edit in Grid for specific datasets. The ability to navigate from record to record and modify field values directly within the grid, without having to repeatedly click Save and Edit for each change, was very powerful.This functionality is also missed in the Software Factory, where it provided a much more efficient editing experience.Could you share whether this feature is on the roadmap?
I am developing a Thinkwise Custom Component that uses the @thatopen/components package to load IFC files.The package uses web-ifc, which requires WebAssembly to load and process IFC files.The web-ifc.wasm file is successfully requested, but the browser blocks the WebAssembly module from being compiled/instantiated because of the Content Security Policy applied to the Thinkwise application.The following errors occur:wasm streaming compile failed: CompileError: WebAssembly.instantiateStreaming(): Compiling or instantiating WebAssembly module violates the following Content Security Policy directive because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "default-src 'self'".The package then falls back to ArrayBuffer instantiation:falling back to ArrayBuffer instantiationHowever, this is also blocked:WebAssembly.instantiate(): Compiling or instantiating WebAssembly module violates the following Content Security Policy directive.As a res
Hello, guys. We are migrating from the Web GUI to the Universal GUI. We are making the necessary tests for this and already upgraded the SF from 2024.2 to version 2025.3 and Universal and Indicium to version 2026.2.12.According to the release notes of version 2026.2.11 the filtering on a lookup display column with a data type other than VARCHAR should be working but in our case it is not.The look up display field domain is BIGINT and the field that is being looked up is INT , also the look up is on a table variant.Table variant:Column where the look up is configured:Look up configuration:The issue is: OData query is created with a single quote (‘) and this results in a bad request. If we try the same request but without the single quotes it works properly.Universal/Indicium generated OData query: Self-made query removing the quotes
Hello,We have a detail table (called “WIP”) that stops displaying because its name is automatically converted to lowercase, possibly after deployments, which breaks the existing reference.Deleting and recreating the reference fixes the issue temporarily.Do you know what could be causing the table name casing to change, and how can we prevent this so the reference remains valid? Is there an alternative solution besides renaming the table to lowercase? Thank you!
Hello, We have a parent table and a child table linked through parent_id. When the user clicks the Promote task on the parent record, another screen (modal document) opens and displays the child lines linked to that parent.On this screen, we have a Select Line task that should use the data from the currently selected line.The issue occurs when the user clicks Select Line too quickly, before the child lines have finished loading. In this case, the task can use data from another line that is not linked to the selected parent.This can result in incorrect data being selected or processed.Is there a way to prevent the Select Line task from being executed until the child lines are fully loaded and the correct current line is available? (we already have the task unchecked for empty subject, but it is still available for a few seconds when screen is open) Thank you!
Hi,I am trying to connect the Thinkwise MCP Server to OpenAI Codex CLI.My environment:Thinkwise Platform / Indicium / Universal UI: 2026.2.12 Codex CLI: 0.142.4I completed the IAM setup (access delegation, client application, client secret, roles and callback URL).The MCP server can be added successfully to Codex, but:codex mcp list→ Status: enabled→ Auth: UnsupportedAnd:codex mcp login thinkwise→ Error: No authorization support detectedThe Thinkwise documentation mentions Claude and other MCP-compatible AI tools, but currently provides setup instructions for Claude Code.Has anyone successfully connected Thinkwise MCP to OpenAI Codex CLI?Is additional OAuth configuration required for Codex, or is the current MCP beta OAuth flow not yet compatible with it?Thanks!
Struggling to even get a tree to shape no matter the options I set, I hope someone could advice me how to get this test scenario to work.I have a view that has the following columns:parent_id child_id grand_child_idAll columns make the PK.In an example this is the data (with lookups): I want to see something like (structure example, formatting is just for clarity):Parent A--Child A----Grand child A----Grand child B--Child C----Grand child CParent B--Child D----Grand child D----Grand child EI have changed the “Tree” settings under “Subject”. I have tried all combinations at “Tree” under “Component”. Chose different options for “Sort” with and without “Group until”.The screen type has the “Tree” as its component.All it ever shows is: Platform 2026.2I have compared it to an older product that still has the Windows GUI where a tree does work, but to no avail.What do I need to set to get the result as desired?
I am building a Universal custom component for a ticket subject. The component renders an Impact x Effort matrix from the DataSet received through the documented custom component postMessage context. The next thing I would like to do is make interaction work with regular Thinkwise components. Ideally, when a user clicks a marker in the custom component, I want to set the current/selected row of the same subject to that ticket, so a normal Form component in the same screen type updates automatically. Is there a documented/supported way for a custom component to tell Universal: select row ticket_id = 4535 for the current subject or to trigger the same behavior as selecting a row in a Grid/Card list? I know that when you have a grid, i f the current Thinkwise row changes, Universal sends updateDataRow and I could highlight a marker in my custom component matrix (Grid → Custom component). But I want to do it the other way around basically (Custom component → Form). I thought about using a
I am working on implementing the Reporting service Thinkstore solution.I am struggling with two things:How can I run this process flow in my Software Factory environment?The custom schedule is not running. Is this normal for SF branches?There is no API endpoint I can call. Should I turn on deep linking? But this is not possible for generated process flows, so I could try to do it via a DB query or I would need to copy all the dynamic code from this base model and add it manually with adjustments.If I want to trigger this process flow outside of the scheduleWould it work if I migrate it to a subflow? And have it as both a scheduled system flow and a subflow that can be started by a task?Or the other option is through an API call which has the same problem as point nr 1. So, some general advice for testing system flows and some advice for how I could start a generated process flow would be very helpful. Thanks!
Our end users have indicated that lookup fields would be more intuitive if the dropdown list opened automatically as soon as the cursor enters the field.Currently, users must first type at least one character, or enter a space followed by a backspace, before the lookup values become visible.I believe this behavior exists for a reason, but I'm curious how other community members experience it.
Hi there!I have a tab task that opens a floating model document via a process flow. The tab task is triggered by a keyboard shortcut.After closing the model document, the shortcut no longer works. Pressing the key combination does nothing. Running the tab task through the ribbon still works fine, so it looks like focus is not returned to the original document.Two things restore the shortcut:Opening a detail or another screen and navigating back. Adding an open document action at the end of the process flow.The second one isn't usable for me. I reuse the same process flow across multiple variants of the same table, and open document opens the default subject instead of the variant the user came from. Activate document would fit better, but the tab task doesn't pass a document id into the process flow, so I have nothing to target.Two questions:Is this the intended behaviour, or a bug in the focus handling? If intended, how should I return focus to the original document in a flow that run
I recently came across a task that would take a very long time to execute when performed on 1000+ rows at once, not because of the task itself, but because the context was being performed for each row and taking some time. Luckily I could find a way to improve the context, so the wait time is down from minutes to a couple of seconds, but still I think in those couple of seconds to users it might appear that the application is unresponsive and it would be good to show a process is running when a task is being staged.
Last quarter, this screen opened in a second. Now the user clicks, and waits, and watches the spinner turn for twenty. Nothing in the model changed. Nobody rewrote a query. The data did the damage on its own: the Orders table quietly swelled from fifty thousand rows to two million, and a query that never needed an index suddenly, badly does. This is how performance problems often arrive. Not with a bang or an outage, but as a slow drift that users feel in every click, long before anyone thinks to open a query plan.Performance problems rarely have a single cause, and fixing them rarely takes a single technique. This blog walks through the checks and habits that make the biggest difference, in the order you would actually apply them. You start by ruling out infrastructure and structural issues, then work inward: the smoke tests, the tables and views behind your subjects, and the cubes and queries that have to stay fast as data volumes grow.Before you start. Universal UI and Indicium ship
Hi all,Following our upgrade from Thinkwise 2025.3 to 2026.2, we need to update the community solution: 'Logging data available in the GUI'.To pull the latest solution files from the Thinkstore, we attempted to configure the Personal Access Token (PAT) under Applications > General settings > Web connections (thinkstore_connection) in IAM. However, when entering/saving the token, we receive the following error in IAM:"This environment has not been configured to allow data encryption. Detailed information about configuring data encryption prerequisites can be found in the online documentation."What we already configured in appsettings.json (Indicium): We added the DataSecuritySettings configuration and verified that the IIS Application Pool user has full permissions on the folder:JSON "DataSecuritySettings": { "Storage": { "Mode": "LocalSystem", "LocalSystem": { "StorageLocation": "C:\\Thinkwise\\DataProtectionKeys" } }, "DataProtection": { "Active": true, "E
I am working on a custom component that receives a payload from Thinkwise containing an ApplicationUrl.The custom component uses this ApplicationUrl to fetch data from Thinkwise. However, the ApplicationUrl that is provided in the payload currently points to the IAM metasource by default, while my custom component needs to fetch data from the SF metasource in my development environment.For example, the payload contains something like:ApplicationUrl: https://.../indicium/iam/...but for my custom component I need:ApplicationUrl: https://.../indicium/sf/...I don't want to hardcode or manually replace /iam/ with /sf/ in the custom component, because the component should be reusable across different environments.Is there a Thinkwise configuration or setting that determines which metasource (sf or iam) is used when generating the ApplicationUrl in the payload?If so, what would be the recommended way to configure this so that the custom component receives the correct ApplicationUrl for the en
Hi,I wanted to know if it is still the case as mentioned in Harm’s post that while deep hyperlinks to process flows work in Grid, they do not work in Forms. I have tried it myself and it only works in form if I hold CTRL and click it, but then it also opens a new tab. (Universal GUI 2026.2.12.0.0 )He created a TCP ticket. What is the status of this?We are using it to replace the “open folder” functionality. By changing the browser policy we have made it possible to open links to folders in your file explorer. So, we are close to recreating the folder link exactly as before. The only thing left is that deep hyperlinks do not seem to work in Forms. So then users would have to change to using a task button.
The Thinkwise Summit is getting closer. On 30 September, we’ll bring the Thinkwise community together at NBC in Nieuwegein. And this time, we can tell you more about what to expect.The programme is now live, with customer stories, platform developments and live demos across the business and tech tracks.A few highlights:See in live demos what AI can already do within the Software Factory. Huuskes, Antea Group and EAU share how they develop their business-critical applications around their own processes. Discover what MCP means for developing and using Thinkwise applications. Dive into topics including MQTT, AI and digital sovereignty.And of course, the Summit is also a chance to meet other Thinkwise customers, exchange experiences and catch up with the Thinkwise team.Curious about the full programme?View the programme and register for Thinkwise Summit 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.