-
Notifications
You must be signed in to change notification settings - Fork 11
Description
ob: I miss a web API (REST or GraphQL) to manage some stuff:
CRUD operations on machines;
enable/disable machine monitoring;
CRUD operations on company name:
this is just a nice-to-have, however, a company (in real life) could change a name, thus we should not use its name as an identifier of a company, however, we should assign it an ID (e.g. database table row ID).
A web server could also give us a way to manage anything much easier from web, CLI or app by consuming the API.
I think using config files is not maintainable in the long run, as the company decommissions machines (thus we should archive the machine, disallow enabling its monitoring, but let the user access the historical data) or the client might want to (temporarily) stop the monitoring of a machine (e.g. due to longer maintainable period or they want to move the machine to another place).
We let the customer to: add a machine, enable/disable monitoring and archive a machine; however, we don’t allow them to remove a machine (albeit we can do it on request).
I understand that you prefer using YAML configurations, however, that is a static file that could change (albeit manually) only partially. For example, if you change the company name or machine ID, it will work differently (e.g. a new company or machine is created). IMO we should use user-created YAML config only for data that could be change anytime and after the app restart it should work as expected with no (not only apparent) data loss.
@
IMO everything that needs to be configured by the user should be saved to the database and thus each config needs to have assigned a separate (our/database) ID by which we can identify it.
Also we might consider not deleting some data (that might be linked in other places of the app) and mark it as inactive in a column of that row (we use that for user deleted users or unused workshifts).