mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 00:29:48 +03:00
Automate creation of new users from a completely fresh instance, without manual UI access #3290
Open
opened 2026-02-05 06:15:57 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
l10n_development
further_theme_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
No Label
🔨 Feature Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3290
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Benouare on GitHub (Oct 20, 2022).
Describe the feature you'd like
Hi,
I would like to create a user by scripting (CLI or API).
To do this, i would like to do it directly by CLI or to use the API.
The API endpoint is available to create a user, but it needs an token/secret. And to get this, if i am not wrong, i must connect to the web interface and create the token. In this case i would like to create by cli.
I want to do this automaticaly, so i dont want to go in the configuration and click every where. I want to script it.
Describe the benefits this would bring to existing BookStack users
In my case, i want to be able to give an "editor/basic" account and not the admin one. I dont want to allow my users (/client) to have access to the configuration of bookstack, just to have a final/basic account.
Can the goal of this request already be achieved via other means?
Yes.
I can use the API, but i need a token to use it, and to have it, i must connect to the app and generate it manually.
In my case, i want to script everything, so i want to have something like "php artisan bookstack:generate-token --user admin --enddate 12/01/2060..." OR "php artisan bookstack:create-user --name timmy --email timmy@southpark.com --password jimmy --role viewer"
Have you searched for an existing open/closed issue?
How long have you been using BookStack?
6 months to 1 year
Additional context
Thx for your feedback ;)
@ssddanbrown commented on GitHub (Oct 20, 2022):
Hi @Benouare,
Could you explain your use-case a bit further?
It sounds like your end goal is to create users automatically, I'm just trying to understand why it's a problem to initially access the system to create setup an account with API access to be able to do that.
@Benouare commented on GitHub (Oct 21, 2022):
Hi @ssddanbrown.
First of all, thx for your reply.
That's exactly my goal, but WITHOUT the web interface (so by CLI or API).
Part of the job is already done, as you say it's already possible to create a user with the API.
But, if i am not wrong, to do that you need the Token/Secret of the admin user.
And, if i am not wrong, this token can be generated only by the web interface. So "we" need to connect to the web interface to generate the token/secret before to use it in the api.
In other termes, the issue/problem is that it's not possible to generate the token/secret by commande line ( this doesnt exist
php artisan bookstack:generate-token --user admin --enddate 12/01/2060) OR a direct commande to create a user (without the api) doesnt exist too (for exemple :php artisan bookstack:create-user --name timmy --email timmy@southpark.com --password jimmy --role viewer)Hope that it's more clear for you.
@ssddanbrown commented on GitHub (Oct 21, 2022):
Sure, Everything you've written is true to my knowledge, and I understand technically what you desire here, but I'm just trying to understand why it's an issue that you'd need to access the interface to perform this step.
Understanding what you're attempting to build here may help me to understand the scenario and think about possible solutions at a wider level.
@Benouare commented on GitHub (Oct 21, 2022):
The reason is that I am scripting the bookstack installation and to make this processus i would like to have the token/secret by cli. So "for me" (and just in my case ;) ) it's an "issue" taht i must access to the interface to generate the token/secret.
That's all ;)
I will check if i can do it by my self and make the pr.
@ssddanbrown commented on GitHub (Oct 21, 2022):
Okay, that still doesn't really describe the usage case, just further states you need to automate. I'm going to assume you're building some level of multi-instance sass service, or integrating multiple instance with another sass service.
I would advise not opening a PR, at least without expecting it to be closed unless previously mentioned to be accepted.
I don't want to add new CLI commands to the core app for one-off/limited needs, nor do I want to replicate all admin tasks as API commands.
If it helps, it is possible to register custom commands via the logical theme system.
Our existing create admin command can be found here, which could be tweak to your needs and used via the logical theme system.
@Benouare commented on GitHub (Oct 22, 2022):
Hi,
thx again for your reply.
I would like to propose kind of "all in one" server with a static configuration, with for exemple bookstack, homer, nextcloud, some custom apps.
For nextcloud (I think it's a good exemple) i am able, with my installation script, to create kind of "admin" user, that is not the admin of the app. This admin will be able just to create users, but will not be able to add apps / plugins. So thoses actions are totally automatic. At the end of the script, I have nextcloud installed, with letsencrypt, with apache, with maria db, with random passwords for this unique instance.
For bookstack, i would like to do the same : create a admin (it's already done with the cli command) and after that be able to create a "sub admin" that have only the rights to create new users.