Blog
All Blog Posts | Next Post | Previous Post
TMS WEB Core with StellarDS.io backend: unparalleled productivity
Tuesday, March 26, 2024
Last week, we had the first public reveal and opening of the closed beta phase of our brand new service StellarDS.io
Stellar DataStore is our fast and easy solution to
let your application use a backend as a service. Using the power of our REST API, you can easily fetch and manipulate data in the cloud. stellards.io even enables you to set up a whole database with only a few API calls. We handle everything a backend might need, from data storage and manipulation to security and privacy. There is no need anymore for hosting servers or implementing new security measures. Stellar DataStore will handle this for you, leaving more room for implementing the things you want.
TMS WEB Core & StellarDS.io
In this blog, we'd like to dive deeper in how TMS WEB Core new components will make working with StellarDS.io backend seamless and will give you unparalleled productivity to create full-stack web applications.
TStellarDataStore class
A first way to work with Stellar DataStore from a TMS WEB Core web client application is via the TStellarDataStore class. This is an Object Pascal wrapper class for the Stellar DataStore REST API. It basically allows to fully manipulate the metadata of your data in the backend and of course also perform CRUD operations on data (entities).
The hierarchy is:

Via the TStellarDataStore class, you have access to the collection of tables TStellarDataStoreTables. In turn each table in this collection provides access to a collection of fields TStellarDataStoreFields and collection of entities TStellarDataStoreEntities. You can access each individual field in the Fields collection as TStellarDataStoreField and each entity in the Entities collection as TStellarDataStoreEntity. This way, you can add, delete, modify fields as well as add, delete, modify entities.
This is a code snippet that shows you can use these classes to verify if a database is setup correct for a user and if not, initialize it with the fields needed:
sdb := TStellarDataStore.Create(Self);
// set the access token to connect directly
sdb.AccessToken := edAccessToken.Text;
// get the default project ID
await(boolean, sdb.GetProject);
// check if the needed table exists
res := await(boolean, sdb.HasTable(sdb_tablename)); if not res then
begin
ShowMessage('Table not found, trying to create table automatically');
// create the needed table
res := await(boolean, sdb.CreateTable(sdb_tablename));
// successful creation
if res then
begin
// refresh the tables list
await(boolean, sdb.GetTables);
// find the new create table reference by name
tbl := sdb.Tables.FindTable(sdb_tablename);
// insert the needed fields for this table
await(boolean, tbl.CreateField(sdb_fieldstatus, ftString, 50));
await(boolean, tbl.CreateField(sdb_fielddescr, ftString, 50));
await(boolean, tbl.CreateField(sdb_fielddate, ftDate, 50));
end
else
begin
sdb.Free;
ShowMessage('Failed to create table. Check account quota and/or permissions and retry.');
Exit;
end;
end;
sdb.Free;
TWebStellarDataStoreClientDataSet component
Much easier is to start working with the TWebStellarDataStoreClientDataSet, especially with its strong design-time integration. Connect a TWebDataSource to a TWebStellarDataStoreClientDataSet and then connect the datasource to DB-aware controls and you are up & running.
To initialize the dataset, invoke the design-time editor via the context menu:

And from here, you can add, delete, update tables and for each table, you can add, delete, update fields:

When you select a table, it will automatically initialize all fields in the dataset, making it actually immediately ready to be used from DB-aware controls in the TMS WEB Core client application.
To make it all more clear, watch this video, where we take on the challenge to create a full working web application with data in the backend with unparalleled productivity:
Closed Beta
Sign up here to get a chance to enter the closed beta and get a head start developing full-stack applications. We will invite people at regular intervals to the Closed Beta. When you are eligible to join, you will receive an invitation through e-mail with you credentials.
What's next?
We will release shortly an update of TMS FNC Cloud Pack that will include similar seamless integration components for StellarDS.io but this time for native Windows VCL applications as well as FMX cross-platform applications. Watch this blog series for more information when we released it! Follow us now!
Show us support and follow us on our social media to always be up to date about stellards.io
Bruno Fierens
This blog post has received 7 comments.
2. Tuesday, March 26, 2024 at 9:32:13 PM
We consider adding programmability but not via the TMS Scripter product
Bruno Fierens
3. Thursday, March 28, 2024 at 6:24:07 PM
A 50 tables limit in the Ultimate version, that limit is too small in my opinion.My main program has 155 tables :)
Ekerhovd Ole
4. Saturday, March 30, 2024 at 9:52:05 AM
Thanks for your feedback. Nothing is set in stone yet. That''s why we have our beta test period and gather feedback not only technically but also on modeling of tiers.
Bruno Fierens
5. Wednesday, April 10, 2024 at 9:14:07 PM
Looks Great. The 50 table limit might be an issue down the road depending on what I take from my current VCL apps to Web Core.I was wondering if the user login with stallards has a means for dealing with password recovery. The sending and receiving of emails to reset passwords without me getting involved.
I have 3 fair sized apps (at partsync . com) and I need hunks of library management for my electronic components moved to the web.There is a fair amount of search logic and sorting involved and "Re-Indexing" of a search engine can take a good hunk of time.
Thanks,
Bob Kondner
Kondner Robert
6. Thursday, April 11, 2024 at 12:00:01 PM
ThanksEach user would have to manage his credentials himself. There is no central credential management (for security reasons). Recovery goes per account.
Bruno Fierens
7. Thursday, April 25, 2024 at 4:49:39 PM
Recently, I prepared to integrate PG payment service using the TMS WEB Core project. It was a scenario where I set StopUrl (called when canceling payment) and ReturnUrl (called when payment is successful) when integrating PG Javascript Lib to carry out PG payment business. However, I found that the redirect URL call delivered to each URL is delivered by POST communication method, and I need to use GET communication method to call the redirect URL to the TMS WEB Core project. After much thought, I changed the POST to GET by utilizing AWS Lambda function, stored the parameter information in AWS DynamoDB, and passed the key value. If stellards.io is validated, it would be great to utilize stellards.io without using complex AWS Serverless technology.
? ??
All Blog Posts | Next Post | Previous Post

Schwartz David