Package com.complexible.stardog.api
Class KernelAdminConnection
- java.lang.Object
-
- com.complexible.stardog.api.admin.AbstractAdminConnection
-
- com.complexible.stardog.api.KernelAdminConnection
-
- All Implemented Interfaces:
AdminConnection,java.lang.AutoCloseable
public final class KernelAdminConnection extends AbstractAdminConnection
- Since:
- 5.0
- Version:
- 5.0
- Author:
- Michael Grove
-
-
Field Summary
-
Fields inherited from interface com.complexible.stardog.api.admin.AdminConnection
NO_TIMEOUT
-
-
Constructor Summary
Constructors Constructor Description KernelAdminConnection(com.complexible.stardog.Kernel theKernel)KernelAdminConnection(com.complexible.stardog.Kernel theKernel, org.apache.shiro.subject.Subject theSubject, Options theOptions, Views<AdminConnection> theViews)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_close()protected Metadata_get(java.lang.String theName, java.lang.Iterable<? extends MetaProperty<?>> theOptions)protected <T> java.lang.String_set(java.lang.String theName, MetaProperty<T> theOption, T theValue)java.lang.Stringbackup(java.lang.String theDatabase, java.util.Optional<java.lang.String> theBackupUrl, Options theOptions)Create a backup of the given database in the specified location.java.lang.StringbackupAll(Options theOptions)Create a backup of the server in the specified location.<T> Tcall(java.util.concurrent.Callable<T> theAction)voidchangeEncryptionPassword(java.lang.String theOldPassword, java.lang.String theNewPassword)Change the user managed encryption password.java.util.Collection<java.lang.String>checkpoint(java.lang.String theDatabase, Options theOptions)Perform a checkpoint operation (list, create, restore) against selected database.voidcreateNewEncryptionKey(java.lang.String thePassPhrase, java.lang.String keyName)Add a new key for encrypting data.java.util.Map<java.lang.String,java.lang.Object>currentStatus(Options theOptions)Return the server status information, including Server/Protocols running, Stardog Home path, OS, etc.voiddisableEncryption(java.lang.String thePassPhrase)Stop the server from using data encryption on all future data.java.lang.Stringdrop(java.lang.String theName)Drop the database with the given name.java.util.Collection<java.lang.String>fileKeyList(java.lang.String thePassPhrase)Return the list of keys which have been used for encryption.java.io.FilegenerateDiagnosticReport(com.complexible.stardog.util.report.DiagnosticsReport theDiagnosticsReport)PermissionManagergetPermissionManager()Return thePermissionManagerfor changing user & role permissionscom.complexible.stardog.process.ProcessManagergetProcessManager()MetadatagetProperty(java.util.Collection<java.lang.String> thePropertyNames)Gets the property value for a server configuration option.QueryManagergetQueryManager()Return theQueryManagerfor managing running queriesRoleManagergetRoleManager()Return theRoleManagerto be used for role-centric security changescom.complexible.stardog.StoredFunctionsgetStoredFunctions()Returns the stored functions in this server.StoredQueriesgetStoredQueries()Returns the stored queries in this server.com.complexible.stardog.security.TokenManagergetTokenManager()Return a link to the object that will allow clients to interact with JWT bearer tokensUserManagergetUserManager()Return theUserManagerto be used for user-centric security changesjava.util.Collection<java.lang.String>list()List all the databases in the Stardog serverDatabaseBuildernewDatabaseBuilder()java.lang.Stringoffline(java.lang.String theName, long theTime, java.util.concurrent.TimeUnit theTimeUnit)Take the database offline waiting up to the specified timeout before performing a hard off-line.java.lang.Stringonline(java.lang.String theName)Makes the database online according to the default strategyjava.lang.Stringoptimize(java.lang.String theName, Metadata theOptions)Optimizes the indexes of a given database for query answering and disk utilization after the database has been heavily modified.voidremoveEncryptionPassword(java.lang.String thePassword)Remove the user managed password for the encryption of data.java.lang.Stringrepair(java.lang.String theName)Repairs the specified database if it is corrupted.java.lang.Stringrestore(java.io.File theBackup, boolean theOverwrite, java.lang.String theName)Restore the database backed up to the given locationjava.lang.Stringrestore(java.lang.String theBackup, boolean theOverwrite, java.lang.String theName)voidrun(java.lang.Runnable theAction)voidsetEncryptionPassword(java.lang.String thePassword)Encrypt all data keys against the given password.java.lang.StringsetProperty(java.lang.String thePropertyName, java.lang.String theNewValue)Requests that the specified server configuration option value be changed to the new value.voidshutdown()Shutdown the remote Stardog server.java.lang.Stringverify(java.lang.String theName)Verify the integrity of specified database's index.-
Methods inherited from class com.complexible.stardog.api.admin.AbstractAdminConnection
as, assertOpen, assertValidName, builder, close, disk, get, get, isOpen, newDatabase, offline, set
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.complexible.stardog.api.admin.AdminConnection
backup, backup, backup, currentStatus, optimize
-
-
-
-
Constructor Detail
-
KernelAdminConnection
public KernelAdminConnection(com.complexible.stardog.Kernel theKernel)
-
KernelAdminConnection
public KernelAdminConnection(com.complexible.stardog.Kernel theKernel, org.apache.shiro.subject.Subject theSubject, Options theOptions, Views<AdminConnection> theViews)
-
-
Method Detail
-
_close
protected void _close()
- Specified by:
_closein classAbstractAdminConnection
-
newDatabaseBuilder
public DatabaseBuilder newDatabaseBuilder()
- Specified by:
newDatabaseBuilderin classAbstractAdminConnection
-
_get
protected Metadata _get(java.lang.String theName, java.lang.Iterable<? extends MetaProperty<?>> theOptions) throws StardogException
- Specified by:
_getin classAbstractAdminConnection- Throws:
StardogException
-
_set
protected <T> java.lang.String _set(java.lang.String theName, MetaProperty<T> theOption, T theValue) throws StardogException- Specified by:
_setin classAbstractAdminConnection- Throws:
StardogException
-
getProperty
public Metadata getProperty(java.util.Collection<java.lang.String> thePropertyNames) throws StardogException
Gets the property value for a server configuration option. This value will be the default for the option or the override in the properties file.- Returns:
- Throws:
StardogException
-
setProperty
public java.lang.String setProperty(java.lang.String thePropertyName, java.lang.String theNewValue) throws StardogExceptionRequests that the specified server configuration option value be changed to the new value. This method will notify any listening server modules about the change request. It is not guaranteed that the listening module will update the value.- Returns:
- Throws:
StardogException
-
offline
public java.lang.String offline(java.lang.String theName, long theTime, java.util.concurrent.TimeUnit theTimeUnit) throws StardogExceptionTake the database offline waiting up to the specified timeout before performing a hard off-line. A database going offline will allow open connections to complete, but will not accept new, incoming connections.
Offline databases cannot be queried or updated and will be unaccessible to users.
Specifying a timeout of 0 will immediately shut down the database severing all open connections, i.e. a hard shutdown.
- Parameters:
theName- name of the databasetheTime- timeout duration, must be a positive numbertheTimeUnit- the unit of time for the timeout, cannot be null- Returns:
- the server output of offline
- Throws:
StardogException- if there was an error while offlining the database
-
online
public java.lang.String online(java.lang.String theName) throws StardogExceptionMakes the database online according to the default strategy- Parameters:
theName- the name of the database- Returns:
- the server output of onlining the database
- Throws:
StardogException- if there was an error while onlining the database
-
optimize
public java.lang.String optimize(java.lang.String theName, Metadata theOptions) throws StardogExceptionOptimizes the indexes of a given database for query answering and disk utilization after the database has been heavily modified. If a database has been modified with a large number of additions or removals, some internal structures may become less optimized for query answering. This utility will perform several operations that will help with query answering performance. Which operations are performed depends on the options given.Optimization will NOT modify the database contents. The data layout, indexes and other internal structures might change but the data stored in the database will remain same.
- Parameters:
theName- the name of the database to optimizetheOptions- options specifying the specific optimization steps to perform or empty for default optimizations- Returns:
- the server output of optimize
- Throws:
StardogException- if an error occurs during optimization
-
list
public java.util.Collection<java.lang.String> list() throws StardogExceptionList all the databases in the Stardog server- Returns:
- the list of databases
- Throws:
StardogException- if there was an error getting the list
-
repair
public java.lang.String repair(java.lang.String theName) throws StardogExceptionRepairs the specified database if it is corrupted. If the database is not corrupted, nothing will be repaired.- Parameters:
theName- the name of the database to repair- Returns:
- the server output of the repair
- Throws:
StardogException- if there was an error while repairing
-
verify
public java.lang.String verify(java.lang.String theName) throws StardogExceptionVerify the integrity of specified database's index.- Parameters:
theName- the name of the database to verify- Returns:
- the output of the verify operation
- Throws:
StardogException- if there was an error while verifying the database
-
shutdown
public void shutdown() throws com.complexible.stardog.security.StardogSecurityExceptionShutdown the remote Stardog server. You must be connected to the server as a super-user.- Throws:
com.complexible.stardog.security.StardogSecurityException- if you are attempting to shut down the embedded server or if you are not a super-user and are trying to shut down a remote server.
-
drop
public java.lang.String drop(java.lang.String theName) throws StardogExceptionDrop the database with the given name.- Parameters:
theName- the name of the database to drop- Returns:
- the Result of the invocation
- Throws:
StardogException- if there was an error while dropping the database
-
setEncryptionPassword
public void setEncryptionPassword(java.lang.String thePassword) throws StardogExceptionEncrypt all data keys against the given password. This will issue a command to Stardog which will set a user managed password for the encryption of data. If this is not set Stardog will fully manage the encryption keys and all secrets that access them.- Parameters:
thePassword- the password that will protect the encryption keys- Throws:
StardogException
-
changeEncryptionPassword
public void changeEncryptionPassword(java.lang.String theOldPassword, java.lang.String theNewPassword) throws StardogExceptionChange the user managed encryption password.- Parameters:
theOldPassword- the current passwordtheNewPassword- the new password- Throws:
StardogException
-
removeEncryptionPassword
public void removeEncryptionPassword(java.lang.String thePassword) throws StardogExceptionRemove the user managed password for the encryption of data. Once this is removed Stardog will maintain the unencrypted keys which are used to encrypt the data.- Parameters:
thePassword- the current password- Throws:
StardogException
-
createNewEncryptionKey
public void createNewEncryptionKey(java.lang.String thePassPhrase, java.lang.String keyName) throws StardogExceptionAdd a new key for encrypting data. This will create a new Stardog managed encryption key. All data added after this new key is created will be encrypted with it. Any previously added data will not be affected by it. If a user managed password has been set then it must be passed in.- Parameters:
thePassPhrase- the current encryption password. If no password is in use this can be an empty stringkeyName- the name of the key. This must be unique to the system- Throws:
StardogException
-
disableEncryption
public void disableEncryption(java.lang.String thePassPhrase) throws StardogExceptionStop the server from using data encryption on all future data. Currently encrypted data will be left encrypted. To re-enable encryption createNewEncryptionKey can be called again.- Parameters:
thePassPhrase- the current encryption password. If no password is in use this can be an empty string- Throws:
StardogException
-
fileKeyList
public java.util.Collection<java.lang.String> fileKeyList(java.lang.String thePassPhrase) throws StardogExceptionReturn the list of keys which have been used for encryption.- Parameters:
thePassPhrase- the current encryption password. If no password is in use this can be an empty string- Returns:
- - the Result of the invocation;
- Throws:
StardogException- if there is an error performing the backup.
-
backup
public java.lang.String backup(java.lang.String theDatabase, java.util.Optional<java.lang.String> theBackupUrl, Options theOptions) throws StardogExceptionDescription copied from interface:AdminConnectionCreate a backup of the given database in the specified location. The location can be a file path on the server or a URL pointing to S3 or GCP.Configuration optionscan be specified for the backup operation.- Parameters:
theDatabase- the name of the database to back uptheBackupUrl- where to store the backup or empty if the default location should be usedtheOptions- configuration options to use for backups- Returns:
- Throws:
StardogException
-
backupAll
public java.lang.String backupAll(Options theOptions) throws StardogException
Create a backup of the server in the specified location.- Parameters:
theOptions- Collection of BackupOptions- Returns:
- the output of the backup process
- Throws:
StardogException- if there is an error performing the backup.
-
restore
public java.lang.String restore(java.io.File theBackup, boolean theOverwrite, java.lang.String theName) throws StardogExceptionRestore the database backed up to the given location- Parameters:
theBackup- the location of the backuptheOverwrite- whether or not to overwrite any existing databasetheName- a new name for the restored database- Returns:
- the output of the restore process
- Throws:
StardogException- if there was an error restoring the database from a backup
-
restore
public java.lang.String restore(java.lang.String theBackup, boolean theOverwrite, java.lang.String theName) throws StardogException- Throws:
StardogException
-
checkpoint
public java.util.Collection<java.lang.String> checkpoint(java.lang.String theDatabase, Options theOptions) throws StardogExceptionDescription copied from interface:AdminConnectionPerform a checkpoint operation (list, create, restore) against selected database.- Parameters:
theDatabase- the name of the database for checkpoint operationtheOptions- configuration options for the checkpoint- Returns:
- Throws:
StardogException
-
getUserManager
public UserManager getUserManager()
Return theUserManagerto be used for user-centric security changes- Returns:
- the UserManager
-
getRoleManager
public RoleManager getRoleManager()
Return theRoleManagerto be used for role-centric security changes- Returns:
- the RoleManager
-
getPermissionManager
public PermissionManager getPermissionManager()
Return thePermissionManagerfor changing user & role permissions- Returns:
- the PermissionManager
-
getQueryManager
public QueryManager getQueryManager()
Return theQueryManagerfor managing running queries
-
getProcessManager
public com.complexible.stardog.process.ProcessManager getProcessManager()
- Returns:
- The
ProcessManagerfor managing running queries
-
getTokenManager
public com.complexible.stardog.security.TokenManager getTokenManager()
Return a link to the object that will allow clients to interact with JWT bearer tokens- Returns:
- the TokenManager
-
currentStatus
public java.util.Map<java.lang.String,java.lang.Object> currentStatus(Options theOptions) throws StardogException
Return the server status information, including Server/Protocols running, Stardog Home path, OS, etc. Theoptionscan be used to configure which metrics will be included in the results. The embedded connections do not support any options other thanMetricOptions.DATABASES.- Parameters:
theOptions-- Returns:
- the metrics showing the server status
- Throws:
StardogException- if there was an error retrieving the DBMS info- See Also:
MetricOptions
-
generateDiagnosticReport
public java.io.File generateDiagnosticReport(com.complexible.stardog.util.report.DiagnosticsReport theDiagnosticsReport)
-
getStoredQueries
public StoredQueries getStoredQueries()
Returns the stored queries in this server. Returned object can be used to add and remove stored queries.- Returns:
- the stored queries
-
getStoredFunctions
public com.complexible.stardog.StoredFunctions getStoredFunctions()
Returns the stored functions in this server. Returned object can be used to add and remove stored functions.- Returns:
- the stored functions
-
run
public void run(java.lang.Runnable theAction)
-
call
public <T> T call(java.util.concurrent.Callable<T> theAction)
-
-