hello @francois_Ruty, me again, I wrapped your code in ` apices so that the syntax highlighter does not get confused and create a clickable todo: . You can create a code block of one or multiple lines by pressing on this button in the editor toolbar:
To be absolutely sure, do you mean you restarted your admin backend?
On which collection did you try to add this smart action?
Can you share a screenshot of your collection definition and of the actions you see / donāt see on the web browser?
Hello, OK so I figured this out.
When I say rebuild the container, I mean rebuild, = docker-compose build.
I changed my DB schema today so I re-run Lumber to generate the models.
Problem is, Lumber changed convention and my DB table gsheet_clients became āgsheetClientsā collection (it was not the case 3 months ago)
The file in forest folder still used the old collection name gsheet_clients which explains why the actions defined there were not picked up.
I think this convention change may also explain why I lost all web UI layout configuration (cf my other ticket), since models changed names.
To tell you the truth Iām a bit disappointed, all this is due to the fact that Lumber docker container is not versioned, I reported this in february already, and the docker hub still has no version tags!
It literally takes 5min to start versioning a container.
Without this, itās gonna be a constant pain to work with ForestAdmin since each time I use Lumber to update something I donāt know what breaking changes Iām gonna get since Iām forced to use lumber last version all the timeā¦
I am not really sure to understand your development workflow.
I feel that you use Lumber commands to update your models.
This is not really advised so far.
The best thing to do is to manually edit your models according to your database changes.
I may be wrong about your workflow, it would help a lot if you could detail step by step your actions for a new column addition for instance.
Hello, thatās correct, I sometimes use Lumber to update backend code
What I donāt understand is, if Lumber is not meant to be used to update backend code, why force people to use it? ForestAdmin could just ask for a REST API to be set up that complies with a set of specs, and then people can develop the API however they want
This means that right now, when I set up ForestAdmin, Iām forced to initialize the API code with Lumber and then I canāt use it anymore which means Iām stuck with editing manually Lumber-generated boilerplate code
At the very least Lumber should be usable to update the models. All ORMs on the market do that, if people had to edit manually ORM-generated code, nobody would use Django and other frameworks
It is clear you have been struggling to get your smart action working, and we apologise.
Let me just answer to your previous message to add some more explanations about our vision of the admin panel.
Lumber has first been dedicated to create a backend application compatible with ForestAdmin as fast as possible. So forcing people to adapt / create their own API to be pluggable with ForestAdmin is not our vision, and could be quite deterrent to be honest. Regarding lumber on its own, we plan to add some more feature to enrich development experience, but this is not the intended behaviour for now.
In fact this is part of our vision, we provide isolated, out-of-the-box admin panel on which you have full control. Which implies having to maintain your own code.
I understand your remark, please let me push this feedback to our product-board. We are working on a lot of features lately, one of which is to improve lumber update command. But I canāt provide you any ETA.
Regarding your docker development experience, you donāt need to rebuild the image if you only changed the generated app code. Simply running docker-compose down && docker-compose up -d will restart and take your changes into account Moreover, as you suggested in the past, we added versioning to our docker containers.
Again we apologise for the inconvenience, and we thank you for your feedbacks.
Donāt hesitate if you have any further requests / remarks.
Thanks for your detailed answer, I only have one remark left, on my side at the moment I indeed need to rebuild the container for changes to be taken into account, because I had to remove the source code volume mapping from the lumber-generated docker-compose.yml, if I didnāt the backend nodejs app would crash with ācannot find module dotenvā, I reported this on Slack 3 or 4 months ago
I think whatās going on is that the Dockerfile installs the node_modules dependencies (including dotenv) but it is inside the container, and this volume mapping overwrites it with the host source code
Itās a classic docker dev environment issue, I donāt think there is a good workaround
Personally in dev environment I always use source code volume mappings like you do, but I always need to do a docker-compose exec {container} /bin/bash and then npm install, each time I change the package.json
The source code volume mapping lets you have the hot reloading, but overwrites the node_modules stuff installed by the Docker build
Alright thanks for this additional feedback. I understand the problem with the volume mapping and managing dependencies (present in the container, not in the source folder for mapping). It makes sense now why you are struggling with builds using docker. I have pushed your message to my team.
Improving development experience for our docker stack is definitely on the road, and this kind of feedback really helps out