I am working on a job with pretty strict privacy requirements to keep student data secure, and tonight I am working on a deployment schematic as part of the IT requirements documentation for the university.
What I envision is a setup where actual production data is mirrored to a development/test server, and a back-end model that keeps student ID’s (PK’s) in one table with a 1-1 relationship to the actual student names, addresses, phone #'s, and other sensitive personal info in a separate table.
The idea is that on the test server the Student Info table can have dummy data, and if end-users call a member of the development/support team with a question they will refer to specific students only by ID #. The support person can then connect to the test server and look up that student by ID #, test/resolve/answer the issue or question, and the student’s actual personal data is completely protected. (As an aside, I believe this is how things are handled for applications that must be HIPAA-compliant…)
What I’m having trouble visualizing for my schematic, and what I am not equipped with enough servers in my office to figure out here, is exactly how to handle repository, database connection and database naming issues.
I’m thinking that these are potential problems with the setup:
-
the production db and test db could not share the same name (since they will be on the same network/subnet, perhaps even on the same db server), which would complicate matters when, after making changes to the repository while connected to the test db, that repository needs to be “ported” to use the production db instead. How to solve?
a. Should the test repository be kept local on Servoy Developer workstations, so that the database server connection name would not be an issue? In other words, if the db connection is named “university_db” on one machine it could point to the test database and on the actual Servoy Server a connection of the same name could be established that now points to the actual production data?
This solves the connection-naming issue but makes version management amongst the various developers a bit of a drag … I don’t like the idea of various builds being scattered among a development team (tho’ not the end of the world, to be sure, done every day I guess)
OR
b. Should there be a single repository (perhaps even multi-dev) on the Servoy Server box at the client’s with separate connections to the test db and the production db?
This would solve the version-management issues but would mean the connection to the test server and to the production server would have to have two different names, so how to export new versions from the copy of the solution that connects to the test server and import to the solution that has a differently named db connection??
OR
c. Am I overcomplicating things and perhaps there is some easier approach to a situation where:
– there are several dev’s
– they cannot be given access to actual production data when supporting end-users or modifying the solution
thanks for any help brainstorming this. How to obscure personal data while allowing developers & support personnel to serve a client is becoming more and more an issue these days. Maybe someone else has already worked through this?
kazar