mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-06 09:09:38 +03:00
Is this possible via API or in some other way? #1740
Closed
opened 2026-02-05 01:44:56 +03:00 by OVERLORD
·
7 comments
No Branch/Tag Specified
development
further_theme_development
l10n_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
pull-request
Mirrored from GitHub Pull Request
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#1740
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 @techauthoruk on GitHub (May 18, 2020).
HI
I don't know if this is at all possible, but it would be great if it was. I need to email my users once a week (say on a Monday morning) to give them an update on any books / chapters / pages that have been updated in the previous week, along with a bookmark to the content location.
Is this at all possible, either natively, by scripting or by accessing the API? I can sort the sending of the email without a problem, but getting the content details out of bookstack is the bit that defeats me. Is this information held in the database?
I'm totally clueless about this, so really would appreciate anyone's input.
Many thanks
Mark
(a VERY happy BookStack user!)
@techauthoruk commented on GitHub (May 22, 2020):
Anyone have any thoughts on this? I have been looking at the revision history and that gives me the information I need (I think!), but how can I access this information - is it stored in a database somewhere?
Any help would be very gratefully received.
Mark
@ssddanbrown commented on GitHub (May 22, 2020):
Hi @techauthoruk,
This is not something you could do yet via the API, since the API does not yet got down to page level. It will do in the future though.
Otherwise, everything goes into the database. There's many ways you could look for updated pages. You could just look at the
pagestable, There should be anupdated_atcolumn on there. You'd need to filter out any draft pages (Think it's adraftcolumn on that table). Also, If you use permissions in your instance it will be tricky to manually calculate those in the same way as BookStack does.Alternatively, as you found, you can look at page_revisions but many of the revisions may just be user-specific draft copies.
There's also the
activitytable which tracks most actions. You could look for activity where thekeyis
page_update(Or something along those lines.)One you get the ids of pages, then the name can be read from the
pagestable. You can link to a page, without having to calculate the full URL slug, based upon their ID like so:@techauthoruk commented on GitHub (Jun 3, 2020):
@ssddanbrown Dan, thank you for the pointers, I now have this working really well by using a bash script to query the backend db and then email the results once a week.
A truncated version of the script if it might prove useful:
I'm not very good when it comes to scripting, but this seems to work ok.
On another point, are the user log ins stored anywhere in the backend? It would be really useful for me to know who has (or hasn't) logged in...is this possible?
Many thanks
Mark
@ssddanbrown commented on GitHub (Jun 3, 2020):
@techauthoruk Not currently, but It has been requested to show last login on the user page, so probably something we'll add to the database at some point.
BookStack does track page-views at a per-user level, (In a
viewsorpage_viewstable maybe? can't remember the name right now). There's also theactivitytable which stores the user id. Checking both of those should give you a pretty good idea of who's active in the system.@techauthoruk commented on GitHub (Jun 4, 2020):
@ssddanbrown Thanks Dan, I can't seem to find the
viewstable (not saying it doesn't exist, just can't find it!). Theactivitytable only seems to hold the user ID and a datstamp of when they updated or added content (I'm assuming this as there is only one person who adds content [me!] and all the table entries are for the same user ID).All I really need is the user name and the date they last logged in...I will keep looking, but do you have any other comments/suggestions? If this info is not there, do you have any idea on timescale before the last user logon is added to the user page?
Thanks again
Mark
@ssddanbrown commented on GitHub (Jun 5, 2020):
Logins are not tracked in the DB in any way. The
viewstable really would be the best way, as you'd generally expect someone to view at least one page after logging in.This site provides a good quick view of the tables (Although the relationship lines are a little off): https://drawsql.app/templates/diagrams/bookstack-mysql#
No timescale at the moment. Keep meaning to expand the activity within the next few releases but having real trouble finding spare time right now for BookStack development.
@techauthoruk commented on GitHub (Jun 8, 2020):
@ssddanbrown Dan, thank you for the direction. After much playing around I came up with this query which does what I need:
...which I use as part of a bash script to email the results once a week. I will close this thread now - thanks again for all the help.