You can make agreement table and make a record in agreement process, then "hide object when" calculation something like
not ExecuteSQL ( "SELECT COUNT(*) FROM agreement" ; "" ; "" )
Additional databases can be hold in container field of primary, then export it in the agreement process.
Create placeholder-db's that are delivered with the main file. So, the references (sources...) are present and a script can call values from those (ie 0 or 'not installed'). Call that script on startup and set $$Var's, hide buttons according to the values of the $$...