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

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

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
Posted (edited)

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

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.

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.


  • Create New...

Important Information

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