Class AGServer
- All Implemented Interfaces:
Closeable
,AutoCloseable
An AGServer references
AGCatalog
s,
which reference
AGRepositories
, from which
connections
may be obtained,
on which data is manipulated and queried.
AGServer provides methods for User (and Role) Management.
AGServer also provides federated
repositories.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Default AG server port for HTTP connections.static final int
Default AG server port for HTTPS connections. -
Constructor Summary
ConstructorDescriptionAGServer
(AGHTTPClient httpClient) Creates an instance for interacting with an AllegroGraph server.Creates an instance for interacting with an AllegroGraph server.AGServer
(String username, String password, AGHTTPClient httpClient) Creates an instance for interacting with an AllegroGraph server.Creates an instance for interacting with an AllegroGraph server. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a role to this server.void
addRoleAccess
(String role, boolean read, boolean write, String catalog, String repository) Adds to a role's access list for this server.void
addRolePermission
(String role, String permission) Adds to a role's permission list.void
Adds a security filter for a role.void
Adds a user to the server.void
addUserAccess
(String user, boolean read, boolean write, String catalog, String repository) Adds to a user's access list for this server.void
addUserPermission
(String user, String permission) Adds to a user's permission list.void
addUserRole
(String user, String role) Adds a role for this user.void
Adds a security filter for a user.void
changeUserPassword
(String user, String password) Change the password for USER to PASSWORDvoid
close()
Close the HTTP connection resources to the AllegroGraph server.createCatalog
(String catalogID) Returns an AGCatalog instance for the given catalogID.createRepository
(String reponame) Creates or opens a repository in the root catalog.createRepository
(String reponame, AGCatalog catalog, boolean strict) Creates or opens a repository in the specified catalog.createRepository
(String reponame, String catname) Creates or opens a repository in the specified catalog.createRepository
(String reponame, String catname, boolean strict) Creates or opens a repository in the specified catalog.static AGRepository
createRepository
(String repoName, String catalogName, String serverURL, String username, String password) Creates or opens a repository in the specified catalog.createRepositoryConnection
(String reponame, AGCatalog cat, boolean strict) Creates or opens a repository in the specified catalog.createRepositoryConnection
(String reponame, String catname, boolean strict) Creates or opens a repository in the specified catalog.static AGRepositoryConnection
createRepositoryConnection
(String repoName, String catalogName, String serverURL, String username, String password) Creates or opens a repository in the specified catalog.void
deleteCatalog
(String catalogID) Deletes any catalog with the given repository id.void
deleteRepository
(String reponame, String catname) Deletes a repository.void
deleteRole
(String role) Deletes a role from this server.void
deleteRoleAccess
(String role, boolean read, boolean write, String catalog, String repository) Deletes from a role's access list for this server.void
deleteRolePermission
(String role, String permission) Delete from a role's permission list.void
Deletes a security filter for a role.void
deleteUser
(String user) Deletes a user from the server.void
deleteUserAccess
(String user, boolean read, boolean write, String catalog, String repository) Deletes from a user's access list for this server.void
deleteUserPermission
(String user, String permission) Deletes from a user's permission list.void
deleteUserRole
(String user, String role) Deletes a role for this user.void
Deletes a security filter for a user.federate
(AGAbstractRepository... repositories) Creates a federated view of multiple repositories.Returns the unnamed root catalog for this AllegroGraph server.getCatalog
(String catalogID) Gets the catalog instance for a given catalog id.Gets the default executor object that will be used by connections to schedule maintenance operations.Returns the AGHTTPClient instance for this server.Retrieves the whole log file as a single string.Returns the unnamed root catalog for this AllegroGraph server.Returns the URL of this AllegroGraph server.getUser()
Returns a List of catalog ids known to this AllegroGraph server.org.json.JSONArray
listRoleAccess
(String role) Returns a role's access list for this server.listRolePermissions
(String role) Returns a list of permissions for a role.Returns a list of roles known to this server.org.json.JSONArray
listRoleSecurityFilters
(String role, String type) Returns a list of security filters of the given type for a roleorg.json.JSONArray
listUserAccess
(String user) Returns a user's access list for this server.org.json.JSONArray
Returns a user's effective access list for this server.Returns a list of effective permissions for a user.listUserPermissions
(String user) Returns a list of permissions for a user.listUserRoles
(String user) Returns a list of roles for a user.Returns a List of user ids known to this AllegroGraph server.org.json.JSONArray
listUserSecurityFilters
(String user, String type) Returns a list of security filters of the given type for a userRetrieves the log file as a text stream.void
setExecutor
(ScheduledExecutorService executor) Changes the default executor object that will be used by connections to schedule maintenance operations.virtualRepository
(String storeSpec) Creates a virtual repository with the given store specification.
-
Field Details
-
DEFAULT_HTTP_PORT
public static final int DEFAULT_HTTP_PORTDefault AG server port for HTTP connections.- See Also:
-
DEFAULT_HTTPS_PORT
public static final int DEFAULT_HTTPS_PORTDefault AG server port for HTTPS connections.- See Also:
-
-
Constructor Details
-
AGServer
Creates an instance for interacting with an AllegroGraph server.Uses Basic authentication.
- Parameters:
serverURL
- the URL of the server (trailing slashes are removed)username
- a user id for authenticating with the serverpassword
- a password for authenticating with the server- See Also:
-
AGServer
Creates an instance for interacting with an AllegroGraph server.Uses Basic authentication with the server as configured in the httpClient instance.
- Parameters:
username
- a user id for authenticating with the serverpassword
- a password for authenticating with the serverhttpClient
- the AGHTTPClient instance to use
-
AGServer
Creates an instance for interacting with an AllegroGraph server.Attempts X.509 server and client authentication when no username and password have been set in the httpClient, and properties such as
javax.net.ssl.keyStore, javax.net.ssl.keyStorePassword, javax.net.ssl.keyStoreType, and javax.net.ssl.trustStore
have been set appropriately.
Also set SSL directives in the server's config file, e.g:
For more details, see Server configuration.SSLPort 10036 SSLClientAuthRequired true SSLClientAuthUsernameField CN SSLCertificate /path/agraph.cert SSLCAFile /path/ca.cert
- Parameters:
httpClient
- the AGHTTPClient instance to use- See Also:
-
AGServer
Creates an instance for interacting with an AllegroGraph server.Uses a new default AGHTTPClient instance having the given serverURL.
Attempts X.509 server and client authentication when properties such as
javax.net.ssl.keyStore, javax.net.ssl.keyStorePassword, javax.net.ssl.keyStoreType, and javax.net.ssl.trustStore
have been set appropriately.
Also set SSL directives in the server's config file, e.g:
SSLPort 10036 SSLClientAuthRequired true SSLClientAuthUsernameField CN SSLCertificate /path/agraph.cert SSLCAFile /path/ca.cert
For more details, see Server configuration.
- Parameters:
serverURL
- the URL of the server (trailing slashes are removed)- See Also:
-
-
Method Details
-
createRepository
public static AGRepository createRepository(String repoName, String catalogName, String serverURL, String username, String password) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
repoName
- name of the repository to createcatalogName
- name of the catalog where repoName will be createdserverURL
- URL at which the AG server is foundusername
- name of the authenticating user, or nullpassword
- password (plaintext) of the authenticating user, or null- Returns:
- an initialized
AGRepository
instance for the newly created repository - Throws:
RepositoryException
- if there is an error with this request
-
createRepositoryConnection
public static AGRepositoryConnection createRepositoryConnection(String repoName, String catalogName, String serverURL, String username, String password) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
repoName
- name of the repository to createcatalogName
- name of the catalog where repoName will be createdserverURL
- URL at which the AG server is foundusername
- name of the authenticating user, or nullpassword
- password (plaintext) of the authenticating user, or null- Returns:
- a connection to the newly created and initialized repository
- Throws:
RepositoryException
- if there is an error with this request.
-
getServerURL
Returns the URL of this AllegroGraph server.- Returns:
- the URL of this AllegroGraph server
-
getUser
-
getPassword
-
getHTTPClient
Returns the AGHTTPClient instance for this server.- Returns:
- the AGHTTPClient instance for this server
-
getVersion
- Returns:
- the server version
- Throws:
AGHttpException
- if there is an error with this request
-
getComparableVersion
- Returns:
- the server version as comparable AGServerVersion object.
- Throws:
AGHttpException
- if there is no cachedServerVersion and there was an error with getVersion() request.
-
getBuildDate
- Returns:
- the server's build date
- Throws:
AGHttpException
- if there is an error with this request
-
getRevision
- Returns:
- the server's revision info
- Throws:
AGHttpException
- if there is an error with this request
-
getRootCatalog
Returns the unnamed root catalog for this AllegroGraph server. Note: this method may be deprecated in an upcoming release.- Returns:
- the root catalog
- See Also:
-
listCatalogs
Returns a List of catalog ids known to this AllegroGraph server.- Returns:
- List of catalog ids
- Throws:
AGHttpException
- if there is an error with this request
-
getCatalog
Gets the catalog instance for a given catalog id.Returns the root catalog if the id is a root id. If the catalog Id is not found on the server, returns null.
- Parameters:
catalogID
- a catalog id- Returns:
- the corresponding catalog instance
- Throws:
AGHttpException
- if there is an error with this request
-
getCatalog
Returns the unnamed root catalog for this AllegroGraph server.- Returns:
- the root catalog
-
createCatalog
Returns an AGCatalog instance for the given catalogID.If the catalog already exists on the server, an AGCatalog instance is simply returned. If the catalog does not exist, it is created if the server has been configured to allow dynamic catalogs; otherwise, an exception is thrown.
- Parameters:
catalogID
- the id (the name) of the catalog- Returns:
- an AGCatalog instance
- Throws:
AGHttpException
- if there is an error with this request
-
deleteCatalog
Deletes any catalog with the given repository id.This method only applies to dynamically created catalogs.
- Parameters:
catalogID
- the name of the catalog to delete- Throws:
AGHttpException
- if there is an error with this request
-
virtualRepository
Creates a virtual repository with the given store specification.The storeSpec parameter is a string using the minilanguage for store specification described in the HTTP protocol document (see the store parameter there).
This syntax can be used to create federations, graph-filtered stores, reasoning stores, and compositions thereof.
- Parameters:
storeSpec
- the store specification- Returns:
- a virtual repository based on
storeSpec
-
federate
Creates a federated view of multiple repositories.- Parameters:
repositories
- repositories that will compose the virtual repository- Returns:
- a virtual repository that federates queries across multiple physical repositories
-
close
public void close()Close the HTTP connection resources to the AllegroGraph server.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
listUsers
Returns a List of user ids known to this AllegroGraph server.- Returns:
- List of user ids
- Throws:
AGHttpException
- if there is an error with this request
-
addUser
Adds a user to the server.- Parameters:
user
- user id to addpassword
- user's password- Throws:
AGHttpException
- if there is an error with this request
-
deleteUser
Deletes a user from the server.- Parameters:
user
- user id to delete- Throws:
AGHttpException
- if there is an error with this request
-
addUserAccess
public void addUserAccess(String user, boolean read, boolean write, String catalog, String repository) throws AGHttpException Adds to a user's access list for this server.Access is documented here.
- Parameters:
user
- user idread
- read accesswrite
- write accesscatalog
- catalog id, or "*" (or null) for all catalogsrepository
- repository id, or "*" (or null) for all repos, in the given catalog(s)- Throws:
AGHttpException
- if there is an error with this request
-
deleteUserAccess
public void deleteUserAccess(String user, boolean read, boolean write, String catalog, String repository) throws AGHttpException Deletes from a user's access list for this server.Access is documented here.
- Parameters:
user
- user idread
- read accesswrite
- write accesscatalog
- catalog id, or "*" (or null) for all catalogsrepository
- repository id, or "*" (or null) for all repos, in the given catalog(s)- Throws:
AGHttpException
- if there is an error with this request
-
listUserAccess
Returns a user's access list for this server.Access is documented here.
- Parameters:
user
- user id- Returns:
- a JSONArray describing
user
's access list - Throws:
AGHttpException
- if there is an error with this request
-
addUserSecurityFilter
public void addUserSecurityFilter(String user, String type, String s, String p, String o, String g) throws AGHttpException Adds a security filter for a user.- Parameters:
user
- user idtype
- filter type is "allow" or "disallow"s
- subject to allow/disallow, in NTriples formatp
- predicate to allow/disallow, in NTriples formato
- object to allow/disallow, in NTriples formatg
- graph to allow/disallow, in NTriples format- Throws:
AGHttpException
- if there is an error with this request
-
deleteUserSecurityFilter
public void deleteUserSecurityFilter(String user, String type, String s, String p, String o, String g) throws AGHttpException Deletes a security filter for a user.- Parameters:
user
- user idtype
- filter type is "allow" or "disallow"s
- subject to allow/disallow, in NTriples formatp
- predicate to allow/disallow, in NTriples formato
- object to allow/disallow, in NTriples formatg
- graph to allow/disallow, in NTriples format- Throws:
AGHttpException
- if there is an error with this request
-
listUserSecurityFilters
Returns a list of security filters of the given type for a user- Parameters:
user
- user idtype
- filter type is "allow" or "disallow"- Returns:
- a JSONArray of
user
's security filters - Throws:
AGHttpException
- if there is an error with this request
-
changeUserPassword
Change the password for USER to PASSWORD- Parameters:
user
- user idpassword
- the new password to require for user- Throws:
AGHttpException
- if there is an error with this request
-
listUserEffectiveAccess
Returns a user's effective access list for this server.Includes the access granted to roles that this user has.
- Parameters:
user
- user id- Returns:
- a JSONArray describing
user
's effective access - Throws:
AGHttpException
- if there is an error with this request
-
listUserPermissions
Returns a list of permissions for a user.Permissions are documented here.
- Parameters:
user
- user id- Returns:
- list of permissions
- Throws:
AGHttpException
- if there is an error with this request
-
listUserEffectivePermissions
Returns a list of effective permissions for a user.Includes the permission granted to roles that this user has.
Permissions are documented here.
- Parameters:
user
- user id- Returns:
- list of permissions
- Throws:
AGHttpException
- if there is an error with this request
-
addUserPermission
Adds to a user's permission list.- Parameters:
user
- user idpermission
- "super" or "eval" or "session"- Throws:
AGHttpException
- if there is an error with this request
-
deleteUserPermission
Deletes from a user's permission list.- Parameters:
user
- user idpermission
- "super" or "eval" or "session"- Throws:
AGHttpException
- if there is an error with this request
-
listRoles
Returns a list of roles known to this server.- Returns:
- a list of roles
- Throws:
AGHttpException
- if there is an error with this request
-
addRole
Adds a role to this server.- Parameters:
role
- role id- Throws:
AGHttpException
- if there is an error with this request
-
addRoleAccess
public void addRoleAccess(String role, boolean read, boolean write, String catalog, String repository) throws AGHttpException Adds to a role's access list for this server.Access is documented here.
- Parameters:
role
- role idread
- read accesswrite
- write accesscatalog
- catalog id, or "*" (or null) for all catalogsrepository
- repository id, or "*" (or null) for all repos, in the given catalog(s)- Throws:
AGHttpException
- if there is an error with this request
-
listRoleAccess
Returns a role's access list for this server.Access is documented here.
- Parameters:
role
- role id- Returns:
- the access list for the specified role
- Throws:
AGHttpException
- if there is an error with this request
-
addRoleSecurityFilter
public void addRoleSecurityFilter(String role, String type, String s, String p, String o, String g) throws AGHttpException Adds a security filter for a role.- Parameters:
role
- role idtype
- filter type is "allow" or "disallow"s
- subject to allow/disallow, in NTriples formatp
- predicate to allow/disallow, in NTriples formato
- object to allow/disallow, in NTriples formatg
- graph to allow/disallow, in NTriples format- Throws:
AGHttpException
- if there is an error with this request
-
listRoleSecurityFilters
Returns a list of security filters of the given type for a role- Parameters:
role
- role idtype
- filter type is "allow" or "disallow"- Returns:
- the security filters for the role
- Throws:
AGHttpException
- if there is an error with this request
-
deleteRoleSecurityFilter
public void deleteRoleSecurityFilter(String role, String type, String s, String p, String o, String g) throws AGHttpException Deletes a security filter for a role.- Parameters:
role
- role idtype
- filter type is "allow" or "disallow"s
- subject to allow/disallow, in NTriples formatp
- predicate to allow/disallow, in NTriples formato
- object to allow/disallow, in NTriples formatg
- graph to allow/disallow, in NTriples format- Throws:
AGHttpException
- if there is an error with this request
-
listUserRoles
Returns a list of roles for a user.- Parameters:
user
- the user to lookup- Returns:
- a list of roles
- Throws:
AGHttpException
- if there is an error with this request
-
addUserRole
Adds a role for this user.- Parameters:
user
- user idrole
- role id- Throws:
AGHttpException
- if there is an error with this request
-
deleteUserRole
Deletes a role for this user.- Parameters:
user
- user idrole
- role id- Throws:
AGHttpException
- if there is an error with this request
-
deleteRoleAccess
public void deleteRoleAccess(String role, boolean read, boolean write, String catalog, String repository) throws AGHttpException Deletes from a role's access list for this server.- Parameters:
role
- role idread
- read accesswrite
- write accesscatalog
- catalog id, or "*" (or null) for all catalogsrepository
- repository id, or "*" (or null) for all repos, in the given catalog(s)- Throws:
AGHttpException
- if there is an error with this request
-
deleteRole
Deletes a role from this server.- Parameters:
role
- role id- Throws:
AGHttpException
- if there is an error with this request
-
addRolePermission
Adds to a role's permission list.- Parameters:
role
- role idpermission
- "super" or "eval" or "session"- Throws:
AGHttpException
- if there is an error with this request
-
deleteRolePermission
Delete from a role's permission list.- Parameters:
role
- role idpermission
- "super" or "eval" or "session"- Throws:
AGHttpException
- if there is an error with this request
-
listRolePermissions
Returns a list of permissions for a role.Permissions are documented here.
- Parameters:
role
- role id- Returns:
- list of permissions
- Throws:
AGHttpException
- if there is an error with this request
-
getExecutor
Gets the default executor object that will be used by connections to schedule maintenance operations.- Returns:
- An executor instance
-
setExecutor
Changes the default executor object that will be used by connections to schedule maintenance operations.- Parameters:
executor
- An executor instance
-
createRepository
public AGRepository createRepository(String reponame, AGCatalog catalog, boolean strict) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
reponame
- name of the repository to createcatalog
- AGCatalog instance where the repository will be createdstrict
- if true, throw an exception if the repository exists. Otherwise the existing repository will be opened.- Returns:
- an initialized
AGRepository
instance for the newly created repository - Throws:
RepositoryException
- if there is an error with this request
-
createRepository
public AGRepository createRepository(String reponame, String catname, boolean strict) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
reponame
- name of the repository to createcatname
- name of the catalog in which to create the repositorystrict
- if true, throw an exception if the repository exists. Otherwise the existing repository will be opened.- Returns:
- an initialized
AGRepository
instance for the newly created repository - Throws:
RepositoryException
- if there is an error with this request
-
createRepository
Creates or opens a repository in the specified catalog.- Parameters:
reponame
- name of the repository to createcatname
- name of the catalog in which to create the repository- Returns:
- an initialized
AGRepository
instance for the newly created repository - Throws:
RepositoryException
- if there is an error with this request
-
createRepository
Creates or opens a repository in the root catalog.- Parameters:
reponame
- name of the repository to create- Returns:
- an initialized
AGRepository
instance for the newly created repository - Throws:
RepositoryException
- if there is an error with this request
-
createRepositoryConnection
public AGRepositoryConnection createRepositoryConnection(String reponame, AGCatalog cat, boolean strict) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
reponame
- name of the repository to createcat
- catalog in which to create the repositorystrict
- if true, throw an exception if the repository exists. Otherwise the existing repository will be opened.- Returns:
- a connection to the newly created and initialized repository
- Throws:
RepositoryException
- if there is an error with this request.
-
createRepositoryConnection
public AGRepositoryConnection createRepositoryConnection(String reponame, String catname, boolean strict) throws RepositoryException Creates or opens a repository in the specified catalog.- Parameters:
reponame
- name of the repository to createcatname
- name of the catalog in which to create the repositorystrict
- if true, throw an exception if the repository exists. Otherwise the existing repository will be opened.- Returns:
- a connection to the newly created and initialized repository
- Throws:
RepositoryException
- if there is an error with this request.
-
deleteRepository
Deletes a repository.- Parameters:
reponame
- Repository name.catname
- Catalog name, null or an empty string maps to the root catalog.
-
getLogFile
Retrieves the whole log file as a single string.- Returns:
- the log file.
- Throws:
AGHttpException
- if there is an error with this request
-
readLogFile
Retrieves the log file as a text stream. Note that it is important to close the returned stream, so the connection can be closed or reused.- Returns:
- Log file stream. Must be closed by the caller.
-