Looking back this was a year of change. I made a big step to a new base for my ALinex code using TypeScript. The modules are not only rewritten but also extended and optimized.
Hopefully in the next year I can finish the Framework and go the way over the already started server to a client framework.
Service Test Tool: Now the DataStore and Validator are used productively as test tool to check different web services for their result. It is more fine grained and more detailed as the simpler monitor check in the monitoring systems and can be made easy configurable. See the documentation for that.
Confluence as Operations Manual: In a project to move over 200 web services on around 100 virtual machines with multiple database clusters and file storages I created an operations manual using confluence. The base is a domain model in which each host, cluster, service, database, share and process has it's own name. Under this names documentation pages are made which are interlinked with each other, partly updated from a host analysis program using confluence API and also linked to Monitoring, Provider, Jenkins, Code Repository and more.
Update data tools: It was quite here in my blog, but only there. I didn't make a break, I also worked further on using, hardening and integrating my data structure tools:
- Data - now also got a diff tool
- DataStore - new shell protocol and more options with meta data sollection
- Validator - better schema import and regexp schema
Feathers.js/Quasar I am happy that the new version of Feathers V4 was released now, as my plan was to use this in the second half of the year. Also the quasar frontend framework reached Version 1.0 within the last months. So now I am able to switch to the new Versions and also change my code to TypeScript. This will go into a new major release of the server and admin portal hopefully around the end of the year.
Feathers now supports TypeScript and has a its authentication base completely rebuild. New in quasar is the ability to also build SSR applications.
Development with this may start within September.
Export/import Validation Schema: The Validator is nearly complete now. Also schema export/import was added to make it possible to define schema instead of coding it. The new version was released really working great now. The last two parts will follow the next month:
new schema type: regexp \ This will check for a valid regular expression, maybe also given as regexp string.
validation of schema in importTree \ This makes it possible to detect errors in the schema definition and also be more human friendly by using the sanitizing possibilities of the validator also in the schema.
Data handling: More and more the package suite was growing the last months:
- Data - as a manipulation of data structures
- DataStore - adding load and store abilities also with multi source support
- Validator - adding Schema Validation to all of this
So it looks like I got all together, what is needed to work with data structures. But there should it really be used?
My first intention was to have a configuration loader. But you also need it to gather data and work on meta data structures or enhance security by validating all external data. This leads to a use case I first didn't saw but now is used a lot, to make service tests which validate the response.
As you see this all, it is good but a real application needs more. In the second half of the year I may slowly come back to improve the portal system with a big rework which brings the older code to TypeScript. Hopefully I will have a framework working at the start of next year.
Consolidation: I stepped back to overlook the further planning for the next version of DataStore which will bring multiple location load and Validator using this in the new CLI version for configuration loading.
So I got to the point also rethinking my module structure. This will lead to the following:
- a new data helper module to which I will move the access and edit methods from DataStore
- adding a deep merge function
- also extract the async methods from core into it's own module
- then use these new modules in DataStore and enable the multi file load
- and at last update the Validator, too.
All these changes will take some time and should be done over the summer. This all leads to my big goal to make a base for a new web framework. Hopefully the next major version of the admin portal will be developed in autumn.
Bash-Lib: I finalized a new version which mostly added more detection method on hardware and software detection like hardware detection, geo location, package analyzation, user and crontab analyzation. But also sudo detection and usage support and now with automatic testing using shunit2.
Async Helper: While developing I find myself often writing nearly the same helper functions like retry or forEach on promises. So I decided to lookout for the perfect module to use but didn't find the perfect fit for me. So I added such helper to the alinex-core library which are simple and easy to use but helps a lot.
Schema types: As predicted I am going further on in rewriting also a lot of the special types for the validator, so now it also supports DateTime, Port, IP, Domain and Email. But some more are missing.
Schema Builder: A routine task if using the validator is to write schema definitions. Therefore the Builder is now created which contains all the schema types and includes some easier configuration methods which let create a schema in one or only a few lines.
Validator as Monitoring: Originally this module was planned as configuration helper, but as it is now I see it's use also on each data transport. So I use the alinex-validator at work productively to test web services, if they are working correctly. Therefore I build short mocha test cases in which a schema is validated against the web service URL. This case is documented as usage example.
Validator productive: The first schema types are converted, ready and running: any, string, array and object. Also the new references using the DataStore are implemented. So I am short before releasing the 3.0 Version of alinex-validator but it will be not complete and if you need some special types you may wait for 3.1 or 3.2 which should also be released in the next two months.
Validator with i18n: The rebuild has begun, first parts are working again having a lot of work ahead. But I also included locales support for error message and describe methods from the base up.
Data Store: It is now productive and complete in its feature set. As I implemented all the formats, compression and protocols I had the Idea to also use it for communication with REST services contained within the validator. So while step over to the validator, using the data store, I added a filter rule making the datastore the ideal component for data and reference resolution in the validator.
Data Store: To make the new validator I created the alinex-datastore module which will read, access and write data structures in different formats and locations. It is a big enhancement to the earlier format module.
TypeScript: As I am going to rewrite my codebase one by one I first have to modernize my standards and document them within the alinex-core module and it's documentation site.
Admin Portal Update: The portal server will be updated and brought to current standards. This means to update the documentation technology and content and also update server and client to the newest versions.
System Analyzation: Within the bash-lib I got a big step further in analyzation systems. It now works on multiple Linux distributions but with the focus on Debian based distributions. Also in addition to hardware and OS analyzation it can now read cron entries, ssh users and major software packages.
Rust CLI: Ground up work on the basically working server by further investigating and optimizing command line parsing using clap.
Actix: Going on to work on the already created Rust Server which is based on Actix-web. First I will further more understand the framework which i decided to build the server on. I will create an abstract of it.