Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
cadergator10

Modular security database

Recommended Posts

I reworked the entire security system in order to make it more user friendly and modular, and I believe I finished it!

This system is composed of 1. A server 2. A MineOS database 3. All the doorcontrol systems.

Improvements this has over the older system:

  1. Modular, non-hardcoded passes, groups, etc, so you can customize it to your own preferences
  2. A customizable cryptKey, so the message encryption is unique to yourself
  3. Updated autoinstaller, so it detects what version your doorcontrol is and server is (old 1.#.# version or this new 2.#.# version)
  4. Even more!
I will be making a full video tutorial series soon. Channel is here! playlist is here

Full page and descriptions are on the readme in Github

Additional help on Servertine Discord

I will add photos soon here

Link to post
Share on other sites

Update 2.2.0 (coming in a few days) will be introducing an advanced pass checking system. The new system will be able to:

  1. Allow multiple passes through 1 door
  2. Reject certain passes
  3. Require two passes to go through (above a certain level and part of a certain group)
  4. A supreme pass (kind of like a staff pass) that lets you in no matter what base pass, reject passes, or more you don't have

Of course, updating the door control database will not break the system, as now I am taking extra precautions to make it update cleanly, so updating will automatically change config to one that works.

If you are only setting up one pass for every door on a multidoor system, that could get tedious since you will have to constantly say 0 for all the add, base, and reject passes and say 1 for supreme, so it will prompt you at the beginning if you want to do a simple setup. The simple setup is exactly the same as it was before.

A wiki page has already been made for the new update so you can understand how it'll work when bug fixing and testing is done and it is released to the public

Link to post
Share on other sites

Update 2.2.1: Updated diagnostic tablet to combine door diagnostics with accelerated door setup. It also can read all the passes you add to a door. The new diagnostic tablet only works with doors 2.2.0 and up (if you want to see every single door connected to a multidoor, the version must be 2.2.1 and up) Next video will be on the diagnostic tablet

Link to post
Share on other sites

Update 2.2.2: Added runtime door editing to diagnostic tablet. Only works on versions 2.2.2 and up. The only thing runtime editing cannot do yet is passes. That still requires the auto installer. In order to use runtime editing, you go to the runtime editing app on the diagnostic tablet, choose the door you want to edit, and swipe the red card (admin card) on that magreader. If it is a multidoor, then the first magreader you swipe will always be listed first, then all the other doors connected to the multi door will be listed after that. Another upgrade over traditional autoinstaller editing is that it lists the previous settings of the door, and you can select which options to edit instead of having to change all the settings. You switch between the doors (on a multidoor not single) with the left and right arrow keys. Use the number keys to select which you want to edit on a door. Press enter to identify a door (If using the latest version of opensecurity, it turns on and off the redstone or open/close door a few times. If using the modified version (when finished it will be pulled into main opensecurity branch), it will change between the lights on the magreader.) When you are finished editing the settings, you click the screen, which will send the modified settings to the door and submit it to the server. If you made any mistakes on the editing, a copy of the previous settings is saved (I forgot the name of it, but you'll find it if you use it)

If you run into any issues, please don't hesitate and submit an issue report to the github. I was a little rushed to get it out so I could make my video on the diagnostic tablet and did minimal testing.

Link to post
Share on other sites

Little late on updates, but ill add here.

Update 2.3.0 adds in functionality to SecurityAPi to let you make your own programs using strings and hiddenstrings. You can grab the data stored in a user's account if it is a string or hidden string using getvar and change it's data using setvar. With this, you can make your own program such as a counter, etc. The mineOS database now downloads userlist from server first, and it defaults to not autoupdating (you can change it in settings.

Update 2.3.1 will be coming out later after a week or so. It changes up the mineOS database interface making it cleaner, adds a dark style, and adds lang file support (with english and russian translation only so far) Diagnostic tablet's edit mode also allows you to add or delete doors from multidoors and you can edit the passes of doors too (eliminating need for autoinstaller to edit doors theoretically) This update is still in works and there might be more added to it such as being able to change database settings straight from the database itself without needing to change the dbsettings.txt file.

Link to post
Share on other sites

Update 2.3.1 has been released a while back, so here is a list of what's next. I don't have time frames for any of this.

Update 2.3.2 will add in the ability to control doors from the diagnostic tablet. You can tell a specific door to lock open or stay open for a period of time without being near to it or swiping your card. its also good for locking open doors that usually can't. Probably something that won't be used much but helpful when needed.

Update 2.4.0 will be adding in Sectors to replace forceOpen and bypassLock. The idea will be that you can create and name sectors (ex: light security, medium security, home) and assign doors to that sector. A new program will be made to control sector functions like locking them down or forcing them to be open. I might also add additional features, like passes that can disable lockdowns or bypass lockdowns (depending on the sector's setting)

Some extra ideas I have are adding a passcode set on the server that databases are required to enter in order to change user settings, a better looking and more usable server using the GUI API, and a few more I dont have off the top of my head.

If you have any ideas on future updates or the ability to do certain things please do let me know! Im all ears :)

Link to post
Share on other sites

Update 2.4.0 is pretty much finished. All that's left is a big test of everything and ensuring all bugs are worked out before pulling to main branch and release.

The big thing with this update is the Sectors system, the replacement to the forceopen and bypasslock system. What this does is you can create sectors in the mineos database, which you can assign doors to if you like. Then you can control all the sectors from the sectorcontrol program using redstone. You assign certain sector functions to a side and redstone color (bundled redstone only, meaning you must have project red to use this) and can change the lockdown mode of sectors using redstone. The 2 lockdown modes and functions are Lock Open and Lockdown. Lockdown does exactly what it says and locks the door, keeping it from being opened. Lock Open also does what it says, locking doors of a sector open. Also coming with this are the ability to set certain passes to either bypass the sector lockdown or disable the lockdown. You can manage the passes through the manage passes menu on the database. You can also changed the bypass mode on the database, setting it either to disable lockdown or open door. Disable Lockdown lets you... disable the sector lockdown, closing all doors or unlocking all doors depending on it's lockdown. Open Door lets you bypass the sector lockdown and open it anyway, if you have the correct sector pass and correct door pass, however does nothing to a sector that's locked open.

The sector system also was built in a way that let me work on making the server itself modular, so introducing Modules! You can use the prefab here (if 2.4.0 isn't released it's here instead and subject to possible change) on the github and build your own modules to make third party programs that are compatable with the security server. Remember this is very experimental, and if you want anything added to the module system, let me know. I will make a wiki page on this soon.

Also with this is the first party range extending system. The diagnostic tablet, doorcontrols, autoinstaller, and securityAPI can all take a linking card along with the modem to work anywhere in the world (as long as the server is chunkloaded with the rangeextender computer) Once you put the linking card into the corresponding device, you can put the other in the range extending computer. This program has a theoretically infinite limit of linked cards (although you ARE limited to three if you are using a server, since one slot must be taken up by a modem. I don't know if there is a way to add more cards to a pc) The benefits of using this are that you can connect to a server using the linked card, but perform functions using the diagnostic tablet with the modem without interfering with eachother. Also, putting the linked card into a diagnostic tablet means if you happen to be anywhere in the world, you can still get the userlist settings using it.

The final thing (so far as of writing this) changed is the server's GUI. It's been refined to auto scroll up when it receives stuff to log on the server, and keeps the info on the top and soon to be bottom from scrolling out of frame. It also changes the history's size based on the screen tier and gpu (although a tier 3 is recommended, tier 2 works just fine, and tier 1 is a no no)

I think this is it. If you have any ideas or anything to maybe add quickly before release, let me know :)

Edit: The securityAPI also lets you crypt and decrypt strings with set cryptKey as well as send messages through the modem or linking card, depending on if a linking card is installed, and pulls modem messages to return if requested.

Edited by cadergator10
added something I forgot to mention
Link to post
Share on other sites

Work is being done on update 2.5.0 (may change to 3.0.0 due to scale of change) The major thing this is doing is completely seperating the security system from the server with modules. This will mean the server itself can be a base for other people's programs to use. The database is also going to be module-fied. It's a lot of work, but fun.

The Server is going to be put in a seperate github repo when I finish fully and change up the github page and such. It's going to be called servertine. The security system is still in development, I'm just seperating the two in case people want to make programs for the server and database.

Link to post
Share on other sites

Update on progress: I plan on this being the 3.0.0 update due to MASSIVE changes and refactoring, like rewriting of server and mineos database and doorcontrol level.
 

Sector system is going to be easier to manage due to the increased space for activity :D

Some other QOL improvements I plan on doing:

  1. Removing single door type in favor of multi door type (autoinstaller will still have a single door setup mode to simplify certain setups.)
  2. Multi-Door will support multiple readers to be able to activate one door (Allowing for INFINITE possibility :D)
  3. Sectors will now have the lock bypass type as individual passes, meaning a different pass could disable lockdown while another just lets you through.
  4. Sector passes will have priorities that can be assigned to them from 1 to 5. (priority 1 passes will be checked first while priority 5 is checked last.)

More info will come in a video some time soon hopefully :)

Link to post
Share on other sites

Progress update on system:
So far as of this point, security and sector module are working as intended, server modules are working as intended, permissions are working correctly, you can sign in from the database, users can have permissions set to them, you can create users from the database, database no longer requires restart for adding/deleting/editing vars, strings and multi-strings work as intended, port checking and multi-port system works as intended, and range extender, sector control, and doorcontrols are working as intended. There are definitely things missing here.

What doesn't work or hasn't been tested: Diagnostic tablet has some issues with certain features, Module installation hasn't been implemented, autoinstaller hasn't been tested, major test of entire system hasn't been done, etc.

Im getting close to finally being able to release this mammoth of an update and it excites me! :D

Link to post
Share on other sites

I feel like the most active person on this server LOL

But I am here to announce that this is pretty much ready for release!!!

It's gonna be a little bit of a process: gotta change ReadMe files, revise wiki, etc. but it's really gonna be worth it! It will "likely" be released tonight, so 12 hours I assume. However, I am unsure if the SecurityAPI will work by then, so as of the moment, it's incompatable. Here is a list of what I've done:

  1. Split apart the server and database completely from the security and sector system, and moved them to Servertine github
  2. Fixed security system module being unable to function without sector module installed too
  3. Modified Strings so that "string" is a single string which can be editable, uneditable, or hidden (cannot be seen on database) as well as "-string" being Multi-string which is where you can add multiple strings to one pass which can be checked by doors and is once again editable, uneditable, or hidden
  4. Security module no longer needs a reboot to add variables to the system, it changes it all on the fly
  5. Sector module is way easier to use on the database due to more room. Ability to view passes on a list instead of a combo box and you can edit the passes.
  6. Sector module passes now have a priority of 1 to 5: with 1 being checked first and 5 being checked last.
  7. Individual sector module passes have their own lockdown bypass setting, meaning 1 pass lets you unlock them and another just lets you bypass the lockdown.
  8. all the systems work on a port system now and are not fixed to one port, meaning multiple systems can be on one world.
  9. Door control has removed the selection of single and multi door to doorsystem. You can still choose single door setup on autoinstaller, however, it still sets it up like a multi door is set up, just automatically.
  10. One door can have multiple readers connected to it.

I think this might be all of it. It will take a while for wiki's to be updated, so stay tuned!

 

Link to post
Share on other sites

I feel like the most active person on this server LOL

But I am here to announce that this is pretty much ready for release!!!

It's gonna be a little bit of a process: gotta change ReadMe files, revise wiki, etc. but it's really gonna be worth it! It will "likely" be released tonight, so 12 hours I assume. However, I am unsure if the SecurityAPI will work by then, so as of the moment, it's incompatable. Here is a list of what I've done:

  1. Split apart the server and database completely from the security and sector system, and moved them to Servertine github
  2. Fixed security system module being unable to function without sector module installed too
  3. Modified Strings so that "string" is a single string which can be editable, uneditable, or hidden (cannot be seen on database) as well as "-string" being Multi-string which is where you can add multiple strings to one pass which can be checked by doors and is once again editable, uneditable, or hidden
  4. Security module no longer needs a reboot to add variables to the system, it changes it all on the fly
  5. Sector module is way easier to use on the database due to more room. Ability to view passes on a list instead of a combo box and you can edit the passes.
  6. Sector module passes now have a priority of 1 to 5: with 1 being checked first and 5 being checked last.
  7. Individual sector module passes have their own lockdown bypass setting, meaning 1 pass lets you unlock them and another just lets you bypass the lockdown.
  8. all the systems work on a port system now and are not fixed to one port, meaning multiple systems can be on one world.
  9. Door control has removed the selection of single and multi door to doorsystem. You can still choose single door setup on autoinstaller, however, it still sets it up like a multi door is set up, just automatically.
  10. One door can have multiple readers connected to it.

I think this might be all of it. It will take a while for wiki's to be updated, so stay tuned!

 

Link to post
Share on other sites

New update released for the Security System stuff

 

1. Added support for RFID Readers and KeyPad Reader
2. Split up variable creation and user pass editing into 2 tabs on the security module (little easier to understand and more intuitive)
3. DoorSetup module will clear a door's var passes if one of the passes are missing (like if you deleted one) to prevent crashes.
4. With Keypads, there are local and global keypads. Local are just how they sound: the code is stored on the door itself and unique to only itself. Global keypads are keypads whose codes are stored on the server. This is what you can now modify in the database. You can create global keypads and edit the codes, which the doors will all share.
5. For developers: Linking feature in SecurityAPI is now fully supported. I'll make a video on that later, but will add that into wiki soon.

All this will be written on wiki when I have the time.

NOTICE: Editing card readers on doors (using diagnostic.lua's runtime door editing) has been disabled for the moment due to major issues with how I store the readers. Be wary of this before you try and use it to add new doors. You can "technically" do it manually, but it's a pain. I do think the autoinstaller's door editing feature works fine? It's just a bit more of a hassel. 

 

Video series on how to install and configure everything will be rolled out over the next... weeks? When I get time I'll make videos. This will include a development tutorial to make your own programs near the end. I'll provide a link to the playlist once created

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.