public class NiFiProperties extends ApplicationProperties
| Constructor and Description |
|---|
NiFiProperties() |
NiFiProperties(Map<String,String> props) |
NiFiProperties(Properties props) |
| Modifier and Type | Method and Description |
|---|---|
static NiFiProperties |
createBasicNiFiProperties(String propertiesFilePath)
Creates an instance of NiFiProperties.
|
static NiFiProperties |
createBasicNiFiProperties(String propertiesFilePath,
Map<String,String> additionalProperties)
Creates an instance of NiFiProperties.
|
static NiFiProperties |
createBasicNiFiProperties(String propertiesFilePath,
Properties additionalProperties)
Creates an instance of NiFiProperties.
|
String |
getAdministrativeYieldDuration() |
String |
getAllowedContextPaths()
Returns the allowed proxy context paths as a comma-delimited string.
|
List<String> |
getAllowedContextPathsAsList()
Returns the allowed proxy context paths as a list of paths.
|
String |
getAllowedHosts()
Returns the allowed proxy hostnames (and IP addresses) as a comma-delimited string.
|
List<String> |
getAllowedHostsAsList()
Returns the allowed proxy hostnames (and IP addresses) as a List.
|
File |
getAuthorizerConfigurationFile() |
String |
getAutoRefreshInterval()
Returns the auto refresh interval in seconds.
|
boolean |
getAutoResumeState()
Returns whether the processors should be started automatically when the
application loads.
|
String |
getBannerText()
Get the banner text.
|
String |
getBoredYieldDuration() |
InetSocketAddress |
getClusterLoadBalanceAddress() |
String |
getClusterNodeConnectionTimeout() |
File |
getClusterNodeFirewallFile() |
int |
getClusterNodeMaxConcurrentRequests() |
InetSocketAddress |
getClusterNodeProtocolAddress() |
int |
getClusterNodeProtocolMaxPoolSize() |
Integer |
getClusterNodeProtocolPort() |
int |
getClusterNodeProtocolThreads()
Deprecated.
Use getClusterNodeProtocolCorePoolSize() and getClusterNodeProtocolMaxPoolSize() instead
|
String |
getClusterNodeReadTimeout() |
String |
getClusterProtocolHeartbeatInterval() |
String |
getClusterProtocolManagerToNodeApiScheme() |
String |
getClusterStateProviderId() |
File |
getComponentDocumentationWorkingDirectory() |
Integer |
getConfiguredHttpOrHttpsPort()
Determines the HTTP/HTTPS port NiFi is configured to bind to.
|
String |
getContentRepositoryEncryptionKey()
Returns the active content repository encryption key if a
StaticKeyProvider is in use. |
String |
getContentRepositoryEncryptionKeyId() |
private List<String> |
getContentRepositoryEncryptionKeyProperties() |
Map<String,String> |
getContentRepositoryEncryptionKeys()
Returns a map of keyId -> key in hex loaded from the
nifi.properties file if a
StaticKeyProvider is defined. |
Map<String,Path> |
getContentRepositoryPaths()
Returns the content repository paths.
|
Path |
getDatabaseRepositoryPath()
Returns the database repository path.
|
String |
getDefaultBackPressureDataSizeThreshold() |
Long |
getDefaultBackPressureObjectThreshold() |
int |
getDefaultListenerBootstrapPort() |
String |
getDiagnosticsOnShutdownDirectory() |
String |
getDiagnosticsOnShutdownDirectoryMaxSize() |
int |
getDiagnosticsOnShutdownMaxFileCount() |
Set<String> |
getDirectSubsequentTokens(String prefix)
Returns with all the possible next "tokens" after the given prefix.
|
File |
getEmbeddedZooKeeperPropertiesFile() |
File |
getExtensionsWorkingDirectory() |
String |
getFlowConfigurationArchiveDir() |
Integer |
getFlowConfigurationArchiveMaxCount() |
String |
getFlowConfigurationArchiveMaxStorage() |
String |
getFlowConfigurationArchiveMaxTime() |
File |
getFlowConfigurationFile() |
File |
getFlowConfigurationFileDir() |
File |
getFlowConfigurationJsonFile() |
Integer |
getFlowElectionMaxCandidates() |
String |
getFlowElectionMaxWaitTime() |
String |
getFlowFileRepoEncryptionKey()
Returns the active flowfile repository encryption key if a
StaticKeyProvider is in use. |
String |
getFlowFileRepoEncryptionKeyId() |
Map<String,String> |
getFlowFileRepoEncryptionKeys()
Returns a map of keyId -> key in hex loaded from the
nifi.properties file if a
StaticKeyProvider is defined. |
String |
getFlowFileRepositoryCheckpointInterval()
Returns the number of milliseconds between FlowFileRepository
checkpointing
|
private List<String> |
getFlowFileRepositoryEncryptionKeyProperties() |
Path |
getFlowFileRepositoryPath()
Returns the flow file repository path.
|
String |
getFlowServiceWriteDelay()
Get the flow service write delay.
|
File |
getFrameworkWorkingDirectory() |
Map<String,String> |
getHttpNetworkInterfaces()
Returns the network interface list to use for HTTP.
|
Map<String,String> |
getHttpsNetworkInterfaces()
Returns the network interface list to use for HTTPS.
|
Integer |
getIntegerProperty(String propertyName,
Integer defaultValue) |
String |
getKerberosAuthenticationExpiration() |
File |
getKerberosConfigurationFile() |
String |
getKerberosServiceKeytabLocation() |
String |
getKerberosServicePrincipal() |
String |
getKerberosSpnegoKeytabLocation() |
String |
getKerberosSpnegoPrincipal() |
Set<String> |
getKnoxAudiences()
Gets the configured Knox Audiences.
|
String |
getKnoxCookieName()
Returns the name of the Knox cookie.
|
Path |
getKnoxPublicKeyPath()
Returns the path to the Knox public key.
|
String |
getKnoxUrl()
Returns the Knox URL.
|
String |
getLocalStateProviderId() |
File |
getLoginIdentityProviderConfigurationFile() |
String |
getMaxAppendableClaimSize()
Returns the maximum size, in bytes, that claims should grow before writing a new file.
|
int |
getMaxFlowFilesPerClaim()
Returns the number of claims to keep open for writing.
|
Integer |
getMaxWebAccessTokenRequestsPerSecond() |
Integer |
getMaxWebRequestsPerSecond() |
File |
getNarAutoLoadDirectory() |
List<Path> |
getNarLibraryDirectories() |
File |
getNarWorkingDirectory() |
InetSocketAddress |
getNodeApiAddress() |
String |
getNodeHeartbeatInterval() |
List<String> |
getOidcAdditionalScopes()
Returns additional scopes to be sent when requesting the access token from the IDP.
|
String |
getOidcClaimIdentifyingUser()
Returns the claim to be used to identify a user.
|
String |
getOidcClientId()
Returns the OpenId Connect client id.
|
String |
getOidcClientSecret()
Returns the OpenId Connect client secret.
|
String |
getOidcClientTruststoreStrategy() |
String |
getOidcConnectTimeout()
Returns the OpenId Connect connect timeout.
|
String |
getOidcDiscoveryUrl()
Returns the OpenId Connect (OIDC) URL.
|
List<String> |
getOidcFallbackClaimsIdentifyingUser()
Returns the list of fallback claims to be used to identify a user when the configured claim is empty for a user
|
String |
getOidcPreferredJwsAlgorithm()
Returns the preferred json web signature algorithm.
|
String |
getOidcReadTimeout()
Returns the OpenId Connect read timeout.
|
int |
getPerformanceMetricTrackingPercentage() |
Integer |
getPort() |
Map<String,String> |
getPropertiesWithPrefix(String prefix)
Returns all properties where the property key starts with the prefix.
|
String |
getProperty(String key,
String defaultValue) |
private Integer |
getPropertyAsPort(String propertyName,
Integer defaultValue) |
String |
getProvenanceRepoEncryptionKey()
Returns the active provenance repository encryption key if a
StaticKeyProvider is in use. |
String |
getProvenanceRepoEncryptionKeyId() |
Map<String,String> |
getProvenanceRepoEncryptionKeys()
Returns a map of keyId -> key in hex loaded from the
nifi.properties file if a
StaticKeyProvider is defined. |
private List<String> |
getProvenanceRepositoryEncryptionKeyProperties() |
Map<String,Path> |
getProvenanceRepositoryPaths()
Returns the provenance repository paths.
|
Path |
getQuestDbStatusRepositoryPath()
Returns the directory where the QuestDB based status repository is expected to work within.
|
int |
getQueueSwapThreshold() |
String |
getRemoteInputHost()
The host name that will be given out to clients to connect to the Remote
Input Port.
|
Integer |
getRemoteInputHttpPort()
The HTTP or HTTPS Web API port for a Remote Input Port.
|
Integer |
getRemoteInputPort()
The socket port to listen on for a Remote Input Port.
|
private String |
getRepositoryEncryptionKey(String repositoryType)
Returns the encryption key property key for the specified repository type.
|
private String |
getRepositoryEncryptionKeyId(String repositoryType)
Returns the encryption key ID property key for the specified repository type.
|
private List<String> |
getRepositoryEncryptionKeyProperties(String repositoryType)
Returns the list of encryption key properties for the specified repository type.
|
Map<String,String> |
getRepositoryEncryptionKeys(String repositoryType)
Returns the map of key IDs to keys retrieved from the properties for the given repository type.
|
File |
getRestoreDirectory() |
String |
getSamlAuthenticationExpiration()
The expiration value for a JWT created from a SAML authentication.
|
String |
getSamlGroupAttributeName()
The name of the attribute in the SAML assertions that contains the groups the user belongs to.
|
String |
getSamlHttpClientConnectTimeout()
The connect timeout for the http client created for SAML operations.
|
String |
getSamlHttpClientReadTimeout()
The read timeout for the http client created for SAML operations.
|
String |
getSamlHttpClientTruststoreStrategy()
The truststore to use when interacting with a SAML IDP over https.
|
String |
getSamlIdentityAttributeName()
The name of an attribute in the SAML assertions that contains the user identity.
|
String |
getSamlIdentityProviderMetadataUrl()
The URL to obtain the identity provider metadata.
|
String |
getSamlServiceProviderEntityId()
The entity id for the service provider.
|
String |
getSamlSignatureAlgorithm()
The signing algorithm to use for signing SAML requests.
|
String |
getSamlSignatureDigestAlgorithm()
The digest algorithm to use for signing SAML requests.
|
String |
getSecurityAutoReloadInterval()
Returns the auto reload interval of the keystore and truststore.
|
Duration |
getSecurityUserJwsKeyRotationPeriod() |
Integer |
getSslPort() |
File |
getStateManagementConfigFile() |
Path |
getTemplateDirectory()
Returns the directory to which Templates are to be persisted
|
String |
getVariableRegistryProperties() |
Path[] |
getVariableRegistryPropertiesPaths() |
Set<String> |
getWebHttpsApplicationProtocols()
Get Web HTTPS Application Protocols defaults to HTTP/1.1
|
String |
getWebMaxContentSize()
Returns the
nifi.web.max.content.size value from nifi.properties. |
String |
getWebMaxHeaderSize() |
String |
getWebRequestIpWhitelist() |
String |
getWebRequestTimeout() |
int |
getWebThreads() |
File |
getWebWorkingDirectory() |
Boolean |
isAnonymousAuthenticationAllowed() |
boolean |
isClientAuthRequiredForRestApi()
Returns true if client certificates are required for REST API.
|
boolean |
isClustered() |
boolean |
isDiagnosticsOnShutdownEnabled() |
boolean |
isDiagnosticsOnShutdownVerbose() |
boolean |
isFlowConfigurationArchiveEnabled() |
boolean |
isHttpEnabled()
Is HTTP without TLS enabled based on configuring nifi.web.http.port property
|
boolean |
isHTTPSConfigured() |
boolean |
isKerberosSpnegoSupportEnabled()
Returns true if the Kerberos service principal and keytab location
properties are populated.
|
boolean |
isKnoxSsoEnabled()
Returns whether Knox SSO is enabled.
|
boolean |
isLoginIdentityProviderEnabled()
Returns true if the login identity provider has been configured.
|
boolean |
isNode() |
boolean |
isOidcEnabled()
Returns whether an OpenId Connect (OIDC) URL is set.
|
boolean |
isSamlEnabled()
Returns whether SAML is enabled.
|
boolean |
isSamlMessageLoggingEnabled()
Whether or not to log messages for debug purposes.
|
boolean |
isSamlMetadataSigningEnabled()
Whether or not to sign the service provider metadata.
|
boolean |
isSamlRequestSigningEnabled()
Whether or not to sign requests sent to the identity provider.
|
boolean |
isSamlSingleLogoutEnabled()
Whether or not logging out of NiFi should logout of the SAML IDP using the SAML SingleLogoutService.
|
boolean |
isSamlWantAssertionsSigned()
Whether or not the identity provider should sign assertions when sending response back.
|
boolean |
isSecurityAutoReloadEnabled()
Returns true if auto reload of the keystore and truststore is enabled.
|
Boolean |
isSiteToSiteHttpEnabled() |
Boolean |
isSiteToSiteSecure() |
boolean |
isStartEmbeddedZooKeeper() |
boolean |
isTlsConfigurationPresent() |
boolean |
isUnpackNarsToUberJar() |
boolean |
isZooKeeperClientSecure() |
boolean |
isZooKeeperTlsConfigurationPresent() |
private String |
normalizeContextPath(String cp) |
(package private) String |
normalizeHost(String host) |
private static void |
readFromPropertiesFile(String propertiesFilePath,
Properties properties) |
boolean |
shouldSendServerVersion() |
String |
toString() |
void |
validate()
This method is used to validate the NiFi properties when the file is loaded
for the first time.
|
getProperty, getPropertyKeys, getRawProperties, sizeprivate static final org.slf4j.Logger logger
public static final String PROPERTIES_FILE_PATH
public static final String FLOW_CONFIGURATION_FILE
public static final String FLOW_CONFIGURATION_JSON_FILE
public static final String FLOW_CONFIGURATION_ARCHIVE_ENABLED
public static final String FLOW_CONFIGURATION_ARCHIVE_DIR
public static final String FLOW_CONFIGURATION_ARCHIVE_MAX_TIME
public static final String FLOW_CONFIGURATION_ARCHIVE_MAX_STORAGE
public static final String FLOW_CONFIGURATION_ARCHIVE_MAX_COUNT
public static final String AUTHORIZER_CONFIGURATION_FILE
public static final String LOGIN_IDENTITY_PROVIDER_CONFIGURATION_FILE
public static final String REPOSITORY_DATABASE_DIRECTORY
public static final String RESTORE_DIRECTORY
public static final String WRITE_DELAY_INTERVAL
public static final String AUTO_RESUME_STATE
public static final String FLOW_CONTROLLER_GRACEFUL_SHUTDOWN_PERIOD
public static final String NAR_LIBRARY_DIRECTORY
public static final String NAR_LIBRARY_DIRECTORY_PREFIX
public static final String NAR_LIBRARY_AUTOLOAD_DIRECTORY
public static final String NAR_WORKING_DIRECTORY
public static final String UNPACK_NARS_TO_UBER_JAR
public static final String COMPONENT_DOCS_DIRECTORY
public static final String SENSITIVE_PROPS_KEY
public static final String SENSITIVE_PROPS_ALGORITHM
public static final String H2_URL_APPEND
public static final String REMOTE_INPUT_HOST
public static final String REMOTE_INPUT_PORT
public static final String SITE_TO_SITE_SECURE
public static final String SITE_TO_SITE_HTTP_ENABLED
public static final String SITE_TO_SITE_HTTP_TRANSACTION_TTL
public static final String REMOTE_CONTENTS_CACHE_EXPIRATION
public static final String TEMPLATE_DIRECTORY
public static final String ADMINISTRATIVE_YIELD_DURATION
public static final String BORED_YIELD_DURATION
public static final String PROCESSOR_SCHEDULING_TIMEOUT
public static final String BACKPRESSURE_COUNT
public static final String BACKPRESSURE_SIZE
public static final String LISTENER_BOOTSTRAP_PORT
public static final String REPOSITORY_ENCRYPTION_PROTOCOL_VERSION
public static final String REPOSITORY_ENCRYPTION_KEY_ID
public static final String REPOSITORY_ENCRYPTION_KEY_PROVIDER
public static final String REPOSITORY_ENCRYPTION_KEY_PROVIDER_KEYSTORE_LOCATION
public static final String REPOSITORY_ENCRYPTION_KEY_PROVIDER_KEYSTORE_PASSWORD
public static final String REPOSITORY_CONTENT_PREFIX
public static final String CONTENT_REPOSITORY_IMPLEMENTATION
public static final String MAX_APPENDABLE_CLAIM_SIZE
public static final String MAX_FLOWFILES_PER_CLAIM
public static final String CONTENT_ARCHIVE_MAX_RETENTION_PERIOD
public static final String CONTENT_ARCHIVE_MAX_USAGE_PERCENTAGE
public static final String CONTENT_ARCHIVE_BACK_PRESSURE_PERCENTAGE
public static final String CONTENT_ARCHIVE_ENABLED
public static final String CONTENT_ARCHIVE_CLEANUP_FREQUENCY
public static final String CONTENT_VIEWER_URL
public static final String CONTENT_REPOSITORY_ENCRYPTION_KEY
public static final String CONTENT_REPOSITORY_ENCRYPTION_KEY_ID
public static final String CONTENT_REPOSITORY_ENCRYPTION_KEY_PROVIDER_IMPLEMENTATION_CLASS
public static final String CONTENT_REPOSITORY_ENCRYPTION_KEY_PROVIDER_LOCATION
public static final String CONTENT_REPOSITORY_ENCRYPTION_KEY_PROVIDER_PASSWORD
public static final String FLOWFILE_REPOSITORY_IMPLEMENTATION
public static final String FLOWFILE_REPOSITORY_WAL_IMPLEMENTATION
public static final String FLOWFILE_REPOSITORY_ALWAYS_SYNC
public static final String FLOWFILE_REPOSITORY_DIRECTORY
public static final String FLOWFILE_REPOSITORY_CHECKPOINT_INTERVAL
public static final String FLOWFILE_REPOSITORY_ENCRYPTION_KEY
public static final String FLOWFILE_REPOSITORY_ENCRYPTION_KEY_ID
public static final String FLOWFILE_REPOSITORY_ENCRYPTION_KEY_PROVIDER_IMPLEMENTATION_CLASS
public static final String FLOWFILE_REPOSITORY_ENCRYPTION_KEY_PROVIDER_LOCATION
public static final String FLOWFILE_REPOSITORY_ENCRYPTION_KEY_PROVIDER_PASSWORD
public static final String FLOWFILE_SWAP_MANAGER_IMPLEMENTATION
public static final String QUEUE_SWAP_THRESHOLD
public static final String PROVENANCE_REPO_IMPLEMENTATION_CLASS
public static final String PROVENANCE_REPO_DIRECTORY_PREFIX
public static final String PROVENANCE_MAX_STORAGE_TIME
public static final String PROVENANCE_MAX_STORAGE_SIZE
public static final String PROVENANCE_ROLLOVER_TIME
public static final String PROVENANCE_ROLLOVER_SIZE
public static final String PROVENANCE_ROLLOVER_EVENT_COUNT
public static final String PROVENANCE_QUERY_THREAD_POOL_SIZE
public static final String PROVENANCE_INDEX_THREAD_POOL_SIZE
public static final String PROVENANCE_COMPRESS_ON_ROLLOVER
public static final String PROVENANCE_INDEXED_FIELDS
public static final String PROVENANCE_INDEXED_ATTRIBUTES
public static final String PROVENANCE_INDEX_SHARD_SIZE
public static final String PROVENANCE_JOURNAL_COUNT
public static final String PROVENANCE_REPO_ENCRYPTION_KEY
public static final String PROVENANCE_REPO_ENCRYPTION_KEY_ID
public static final String PROVENANCE_REPO_ENCRYPTION_KEY_PROVIDER_IMPLEMENTATION_CLASS
public static final String PROVENANCE_REPO_ENCRYPTION_KEY_PROVIDER_LOCATION
public static final String PROVENANCE_REPO_ENCRYPTION_KEY_PROVIDER_PASSWORD
public static final String PROVENANCE_REPO_DEBUG_FREQUENCY
public static final String COMPONENT_STATUS_REPOSITORY_IMPLEMENTATION
public static final String COMPONENT_STATUS_SNAPSHOT_FREQUENCY
public static final String STATUS_REPOSITORY_QUESTDB_PERSIST_NODE_DAYS
public static final String STATUS_REPOSITORY_QUESTDB_PERSIST_COMPONENT_DAYS
public static final String STATUS_REPOSITORY_QUESTDB_PERSIST_LOCATION
public static final String SECURITY_KEYSTORE
public static final String SECURITY_KEYSTORE_TYPE
public static final String SECURITY_KEYSTORE_PASSWD
public static final String SECURITY_KEY_PASSWD
public static final String SECURITY_TRUSTSTORE
public static final String SECURITY_TRUSTSTORE_TYPE
public static final String SECURITY_TRUSTSTORE_PASSWD
public static final String SECURITY_AUTO_RELOAD_ENABLED
public static final String SECURITY_AUTO_RELOAD_INTERVAL
public static final String SECURITY_USER_AUTHORIZER
public static final String SECURITY_ANONYMOUS_AUTHENTICATION
public static final String SECURITY_USER_LOGIN_IDENTITY_PROVIDER
public static final String SECURITY_OCSP_RESPONDER_URL
public static final String SECURITY_OCSP_RESPONDER_CERTIFICATE
public static final String SECURITY_IDENTITY_MAPPING_PATTERN_PREFIX
public static final String SECURITY_IDENTITY_MAPPING_VALUE_PREFIX
public static final String SECURITY_IDENTITY_MAPPING_TRANSFORM_PREFIX
public static final String SECURITY_GROUP_MAPPING_PATTERN_PREFIX
public static final String SECURITY_GROUP_MAPPING_VALUE_PREFIX
public static final String SECURITY_GROUP_MAPPING_TRANSFORM_PREFIX
public static final String SECURITY_USER_JWS_KEY_ROTATION_PERIOD
public static final String SECURITY_USER_OIDC_DISCOVERY_URL
public static final String SECURITY_USER_OIDC_CONNECT_TIMEOUT
public static final String SECURITY_USER_OIDC_READ_TIMEOUT
public static final String SECURITY_USER_OIDC_CLIENT_ID
public static final String SECURITY_USER_OIDC_CLIENT_SECRET
public static final String SECURITY_USER_OIDC_TRUSTSTORE_STRATEGY
public static final String SECURITY_USER_OIDC_PREFERRED_JWSALGORITHM
public static final String SECURITY_USER_OIDC_ADDITIONAL_SCOPES
public static final String SECURITY_USER_OIDC_CLAIM_IDENTIFYING_USER
public static final String SECURITY_USER_OIDC_FALLBACK_CLAIMS_IDENTIFYING_USER
public static final String SECURITY_USER_KNOX_URL
public static final String SECURITY_USER_KNOX_PUBLIC_KEY
public static final String SECURITY_USER_KNOX_COOKIE_NAME
public static final String SECURITY_USER_KNOX_AUDIENCES
public static final String SECURITY_USER_SAML_IDP_METADATA_URL
public static final String SECURITY_USER_SAML_SP_ENTITY_ID
public static final String SECURITY_USER_SAML_IDENTITY_ATTRIBUTE_NAME
public static final String SECURITY_USER_SAML_GROUP_ATTRIBUTE_NAME
public static final String SECURITY_USER_SAML_METADATA_SIGNING_ENABLED
public static final String SECURITY_USER_SAML_REQUEST_SIGNING_ENABLED
public static final String SECURITY_USER_SAML_WANT_ASSERTIONS_SIGNED
public static final String SECURITY_USER_SAML_SIGNATURE_ALGORITHM
public static final String SECURITY_USER_SAML_SIGNATURE_DIGEST_ALGORITHM
public static final String SECURITY_USER_SAML_MESSAGE_LOGGING_ENABLED
public static final String SECURITY_USER_SAML_AUTHENTICATION_EXPIRATION
public static final String SECURITY_USER_SAML_SINGLE_LOGOUT_ENABLED
public static final String SECURITY_USER_SAML_HTTP_CLIENT_TRUSTSTORE_STRATEGY
public static final String SECURITY_USER_SAML_HTTP_CLIENT_CONNECT_TIMEOUT
public static final String SECURITY_USER_SAML_HTTP_CLIENT_READ_TIMEOUT
public static final String WEB_HTTP_PORT
public static final String WEB_HTTP_PORT_FORWARDING
public static final String WEB_HTTP_HOST
public static final String WEB_HTTP_NETWORK_INTERFACE_PREFIX
public static final String WEB_HTTPS_PORT
public static final String WEB_HTTPS_PORT_FORWARDING
public static final String WEB_HTTPS_HOST
public static final String WEB_HTTPS_APPLICATION_PROTOCOLS
public static final String WEB_HTTPS_CIPHERSUITES_INCLUDE
public static final String WEB_HTTPS_CIPHERSUITES_EXCLUDE
public static final String WEB_HTTPS_NETWORK_INTERFACE_PREFIX
public static final String WEB_WORKING_DIR
public static final String WEB_THREADS
public static final String WEB_MAX_HEADER_SIZE
public static final String WEB_PROXY_CONTEXT_PATH
public static final String WEB_PROXY_HOST
public static final String WEB_MAX_CONTENT_SIZE
public static final String WEB_MAX_REQUESTS_PER_SECOND
public static final String WEB_MAX_ACCESS_TOKEN_REQUESTS_PER_SECOND
public static final String WEB_REQUEST_TIMEOUT
public static final String WEB_REQUEST_IP_WHITELIST
public static final String WEB_SHOULD_SEND_SERVER_VERSION
public static final String WEB_REQUEST_LOG_FORMAT
public static final String UI_BANNER_TEXT
public static final String UI_AUTO_REFRESH_INTERVAL
public static final String CLUSTER_PROTOCOL_HEARTBEAT_INTERVAL
public static final String CLUSTER_PROTOCOL_HEARTBEAT_MISSABLE_MAX
public static final String CLUSTER_PROTOCOL_IS_SECURE
public static final String CLUSTER_IS_NODE
public static final String CLUSTER_NODE_ADDRESS
public static final String CLUSTER_NODE_PROTOCOL_PORT
public static final String CLUSTER_NODE_PROTOCOL_MAX_THREADS
public static final String CLUSTER_NODE_CONNECTION_TIMEOUT
public static final String CLUSTER_NODE_READ_TIMEOUT
public static final String CLUSTER_NODE_MAX_CONCURRENT_REQUESTS
public static final String CLUSTER_FIREWALL_FILE
public static final String FLOW_ELECTION_MAX_WAIT_TIME
public static final String FLOW_ELECTION_MAX_CANDIDATES
public static final String LOAD_BALANCE_HOST
public static final String LOAD_BALANCE_PORT
public static final String LOAD_BALANCE_CONNECTIONS_PER_NODE
public static final String LOAD_BALANCE_MAX_THREAD_COUNT
public static final String LOAD_BALANCE_COMMS_TIMEOUT
public static final String ZOOKEEPER_CONNECT_STRING
public static final String ZOOKEEPER_CONNECT_TIMEOUT
public static final String ZOOKEEPER_SESSION_TIMEOUT
public static final String ZOOKEEPER_ROOT_NODE
public static final String ZOOKEEPER_CLIENT_SECURE
public static final String ZOOKEEPER_SECURITY_KEYSTORE
public static final String ZOOKEEPER_SECURITY_KEYSTORE_TYPE
public static final String ZOOKEEPER_SECURITY_KEYSTORE_PASSWD
public static final String ZOOKEEPER_SECURITY_TRUSTSTORE
public static final String ZOOKEEPER_SECURITY_TRUSTSTORE_TYPE
public static final String ZOOKEEPER_SECURITY_TRUSTSTORE_PASSWD
public static final String ZOOKEEPER_AUTH_TYPE
public static final String ZOOKEEPER_KERBEROS_REMOVE_HOST_FROM_PRINCIPAL
public static final String ZOOKEEPER_KERBEROS_REMOVE_REALM_FROM_PRINCIPAL
public static final String ZOOKEEPER_JUTE_MAXBUFFER
public static final String KERBEROS_KRB5_FILE
public static final String KERBEROS_SERVICE_PRINCIPAL
public static final String KERBEROS_SERVICE_KEYTAB_LOCATION
public static final String KERBEROS_SPNEGO_PRINCIPAL
public static final String KERBEROS_SPNEGO_KEYTAB_LOCATION
public static final String KERBEROS_AUTHENTICATION_EXPIRATION
public static final String STATE_MANAGEMENT_CONFIG_FILE
public static final String STATE_MANAGEMENT_LOCAL_PROVIDER_ID
public static final String STATE_MANAGEMENT_CLUSTER_PROVIDER_ID
public static final String STATE_MANAGEMENT_START_EMBEDDED_ZOOKEEPER
public static final String STATE_MANAGEMENT_ZOOKEEPER_PROPERTIES
public static final String VARIABLE_REGISTRY_PROPERTIES
public static final String ANALYTICS_PREDICTION_ENABLED
public static final String ANALYTICS_PREDICTION_INTERVAL
public static final String ANALYTICS_QUERY_INTERVAL
public static final String ANALYTICS_CONNECTION_MODEL_IMPLEMENTATION
public static final String ANALYTICS_CONNECTION_MODEL_SCORE_NAME
public static final String ANALYTICS_CONNECTION_MODEL_SCORE_THRESHOLD
public static final String MONITOR_LONG_RUNNING_TASK_SCHEDULE
public static final String MONITOR_LONG_RUNNING_TASK_THRESHOLD
public static final String DIAGNOSTICS_ON_SHUTDOWN_ENABLED
public static final String DIAGNOSTICS_ON_SHUTDOWN_VERBOSE
public static final String DIAGNOSTICS_ON_SHUTDOWN_DIRECTORY
public static final String DIAGNOSTICS_ON_SHUTDOWN_MAX_FILE_COUNT
public static final String DIAGNOSTICS_ON_SHUTDOWN_MAX_DIRECTORY_SIZE
public static final String DEFAULT_DIAGNOSTICS_ON_SHUTDOWN_DIRECTORY
public static final int DEFAULT_DIAGNOSTICS_ON_SHUTDOWN_MAX_FILE_COUNT
public static final String DEFAULT_DIAGNOSTICS_ON_SHUTDOWN_MAX_DIRECTORY_SIZE
public static final String TRACK_PERFORMANCE_PERCENTAGE
public static final int DEFAULT_TRACK_PERFORMANCE_PERCENTAGE
public static final Boolean DEFAULT_AUTO_RESUME_STATE
public static final String DEFAULT_AUTHORIZER_CONFIGURATION_FILE
public static final String DEFAULT_LOGIN_IDENTITY_PROVIDER_CONFIGURATION_FILE
public static final Integer DEFAULT_REMOTE_INPUT_PORT
public static final Path DEFAULT_TEMPLATE_DIRECTORY
private static final String DEFAULT_WEB_HTTPS_APPLICATION_PROTOCOLS
public static final int DEFAULT_WEB_THREADS
public static final String DEFAULT_WEB_MAX_HEADER_SIZE
public static final String DEFAULT_WEB_WORKING_DIR
public static final String DEFAULT_WEB_MAX_CONTENT_SIZE
public static final int DEFAULT_WEB_MAX_REQUESTS_PER_SECOND
public static final int DEFAULT_WEB_MAX_ACCESS_TOKEN_REQUESTS_PER_SECOND
public static final String DEFAULT_WEB_REQUEST_TIMEOUT
public static final String DEFAULT_NAR_WORKING_DIR
public static final boolean DEFAULT_UNPACK_NARS_TO_UBER_JAR
public static final String DEFAULT_COMPONENT_DOCS_DIRECTORY
public static final String DEFAULT_NAR_LIBRARY_DIR
public static final String DEFAULT_NAR_LIBRARY_AUTOLOAD_DIR
public static final String DEFAULT_FLOWFILE_CHECKPOINT_INTERVAL
public static final int DEFAULT_MAX_FLOWFILES_PER_CLAIM
public static final String DEFAULT_MAX_APPENDABLE_CLAIM_SIZE
public static final int DEFAULT_QUEUE_SWAP_THRESHOLD
public static final long DEFAULT_BACKPRESSURE_COUNT
public static final String DEFAULT_BACKPRESSURE_SIZE
public static final String DEFAULT_ADMINISTRATIVE_YIELD_DURATION
public static final String DEFAULT_COMPONENT_STATUS_SNAPSHOT_FREQUENCY
public static final String DEFAULT_BORED_YIELD_DURATION
public static final String DEFAULT_ZOOKEEPER_CONNECT_TIMEOUT
public static final String DEFAULT_ZOOKEEPER_SESSION_TIMEOUT
public static final String DEFAULT_ZOOKEEPER_ROOT_NODE
public static final boolean DEFAULT_ZOOKEEPER_CLIENT_SECURE
public static final String DEFAULT_ZOOKEEPER_AUTH_TYPE
public static final String DEFAULT_ZOOKEEPER_KERBEROS_REMOVE_HOST_FROM_PRINCIPAL
public static final String DEFAULT_ZOOKEEPER_KERBEROS_REMOVE_REALM_FROM_PRINCIPAL
public static final int DEFAULT_ZOOKEEPER_JUTE_MAXBUFFER
public static final String DEFAULT_SECURITY_AUTO_RELOAD_INTERVAL
public static final String DEFAULT_SITE_TO_SITE_HTTP_TRANSACTION_TTL
public static final String DEFAULT_FLOW_CONFIGURATION_ARCHIVE_ENABLED
public static final String DEFAULT_FLOW_CONFIGURATION_ARCHIVE_MAX_TIME
public static final String DEFAULT_FLOW_CONFIGURATION_ARCHIVE_MAX_STORAGE
public static final String DEFAULT_SECURITY_USER_OIDC_CONNECT_TIMEOUT
public static final String DEFAULT_SECURITY_USER_OIDC_READ_TIMEOUT
public static final String DEFAULT_SECURITY_USER_OIDC_TRUSTSTORE_STRATEGY
public static final String DEFAULT_SECURITY_USER_SAML_METADATA_SIGNING_ENABLED
public static final String DEFAULT_SECURITY_USER_SAML_REQUEST_SIGNING_ENABLED
public static final String DEFAULT_SECURITY_USER_SAML_WANT_ASSERTIONS_SIGNED
public static final String DEFAULT_SECURITY_USER_SAML_SIGNATURE_ALGORITHM
public static final String DEFAULT_SECURITY_USER_SAML_DIGEST_ALGORITHM
public static final String DEFAULT_SECURITY_USER_SAML_MESSAGE_LOGGING_ENABLED
public static final String DEFAULT_SECURITY_USER_SAML_AUTHENTICATION_EXPIRATION
public static final String DEFAULT_SECURITY_USER_SAML_SINGLE_LOGOUT_ENABLED
public static final String DEFAULT_SECURITY_USER_SAML_HTTP_CLIENT_TRUSTSTORE_STRATEGY
public static final String DEFAULT_SECURITY_USER_SAML_HTTP_CLIENT_CONNECT_TIMEOUT
public static final String DEFAULT_SECURITY_USER_SAML_HTTP_CLIENT_READ_TIMEOUT
private static final String DEFAULT_SECURITY_USER_JWS_KEY_ROTATION_PERIOD
public static final String DEFAULT_WEB_SHOULD_SEND_SERVER_VERSION
public static final int DEFAULT_LISTENER_BOOTSTRAP_PORT
public static final String DEFAULT_CLUSTER_PROTOCOL_HEARTBEAT_INTERVAL
public static final int DEFAULT_CLUSTER_PROTOCOL_HEARTBEAT_MISSABLE_MAX
public static final String DEFAULT_CLUSTER_NODE_READ_TIMEOUT
public static final String DEFAULT_CLUSTER_NODE_CONNECTION_TIMEOUT
public static final int DEFAULT_CLUSTER_NODE_MAX_CONCURRENT_REQUESTS
public static final int DEFAULT_CLUSTER_NODE_PROTOCOL_THREADS
public static final int DEFAULT_CLUSTER_NODE_PROTOCOL_MAX_THREADS
public static final String DEFAULT_FLOW_ELECTION_MAX_WAIT_TIME
public static final int DEFAULT_LOAD_BALANCE_PORT
public static final int DEFAULT_LOAD_BALANCE_CONNECTIONS_PER_NODE
public static final int DEFAULT_LOAD_BALANCE_MAX_THREAD_COUNT
public static final String DEFAULT_LOAD_BALANCE_COMMS_TIMEOUT
public static final String DEFAULT_STATE_MANAGEMENT_CONFIG_FILE
public static final String DEFAULT_KERBEROS_AUTHENTICATION_EXPIRATION
public static final String DEFAULT_ANALYTICS_PREDICTION_ENABLED
public static final String DEFAULT_ANALYTICS_PREDICTION_INTERVAL
public static final String DEFAULT_ANALYTICS_QUERY_INTERVAL
public static final String DEFAULT_ANALYTICS_CONNECTION_MODEL_IMPLEMENTATION
public static final String DEFAULT_ANALYTICS_CONNECTION_SCORE_NAME
public static final double DEFAULT_ANALYTICS_CONNECTION_SCORE_THRESHOLD
public static final int DEFAULT_COMPONENT_STATUS_REPOSITORY_PERSIST_NODE_DAYS
public static final int DEFAULT_COMPONENT_STATUS_REPOSITORY_PERSIST_COMPONENT_DAYS
public static final String DEFAULT_COMPONENT_STATUS_REPOSITORY_PERSIST_LOCATION
public NiFiProperties()
public NiFiProperties(Properties props)
public File getFlowConfigurationFile()
public File getFlowConfigurationJsonFile()
public File getFlowConfigurationFileDir()
public int getQueueSwapThreshold()
public String getAdministrativeYieldDuration()
public String getRemoteInputHost()
public Integer getRemoteInputPort()
public Boolean isSiteToSiteSecure()
public Boolean isSiteToSiteHttpEnabled()
public Integer getRemoteInputHttpPort()
public Path getTemplateDirectory()
public String getFlowServiceWriteDelay()
public boolean getAutoResumeState()
public String getFlowFileRepositoryCheckpointInterval()
public File getRestoreDirectory()
public File getAuthorizerConfigurationFile()
public File getLoginIdentityProviderConfigurationFile()
public Integer getPort()
public Integer getSslPort()
public boolean isHttpEnabled()
public boolean isHTTPSConfigured()
public Integer getConfiguredHttpOrHttpsPort() throws RuntimeException
RuntimeExceptionpublic Set<String> getWebHttpsApplicationProtocols()
public String getWebMaxHeaderSize()
public String getWebMaxContentSize()
nifi.web.max.content.size value from nifi.properties.
Does not provide a default value because the presence of any value here enables the
ContentLengthFilter.public Integer getMaxWebRequestsPerSecond()
public Integer getMaxWebAccessTokenRequestsPerSecond()
public String getWebRequestTimeout()
public String getWebRequestIpWhitelist()
public int getWebThreads()
public int getClusterNodeMaxConcurrentRequests()
public File getWebWorkingDirectory()
public File getComponentDocumentationWorkingDirectory()
public File getNarWorkingDirectory()
public boolean isUnpackNarsToUberJar()
public File getFrameworkWorkingDirectory()
public File getExtensionsWorkingDirectory()
public File getNarAutoLoadDirectory()
public String getBannerText()
public String getAutoRefreshInterval()
public boolean isSecurityAutoReloadEnabled()
public String getSecurityAutoReloadInterval()
public Duration getSecurityUserJwsKeyRotationPeriod()
public String getClusterProtocolHeartbeatInterval()
public String getNodeHeartbeatInterval()
public String getClusterNodeReadTimeout()
public String getClusterNodeConnectionTimeout()
public boolean isNode()
public InetSocketAddress getClusterNodeProtocolAddress()
public InetSocketAddress getClusterLoadBalanceAddress()
public Integer getClusterNodeProtocolPort()
@Deprecated public int getClusterNodeProtocolThreads()
public int getClusterNodeProtocolMaxPoolSize()
public boolean isClustered()
public File getClusterNodeFirewallFile()
public String getClusterProtocolManagerToNodeApiScheme()
public File getKerberosConfigurationFile()
public String getKerberosServicePrincipal()
public String getKerberosServiceKeytabLocation()
public String getKerberosSpnegoPrincipal()
public String getKerberosSpnegoKeytabLocation()
public String getKerberosAuthenticationExpiration()
public boolean isKerberosSpnegoSupportEnabled()
public boolean isLoginIdentityProviderEnabled()
public Boolean isAnonymousAuthenticationAllowed()
public boolean isOidcEnabled()
public String getOidcDiscoveryUrl()
public String getOidcConnectTimeout()
public String getOidcReadTimeout()
public String getOidcClientId()
public String getOidcClientSecret()
public String getOidcPreferredJwsAlgorithm()
public List<String> getOidcAdditionalScopes()
public String getOidcClaimIdentifyingUser()
public List<String> getOidcFallbackClaimsIdentifyingUser()
public String getOidcClientTruststoreStrategy()
public boolean shouldSendServerVersion()
public boolean isDiagnosticsOnShutdownEnabled()
public boolean isDiagnosticsOnShutdownVerbose()
public String getDiagnosticsOnShutdownDirectory()
public int getDiagnosticsOnShutdownMaxFileCount()
public String getDiagnosticsOnShutdownDirectoryMaxSize()
public boolean isKnoxSsoEnabled()
public String getKnoxUrl()
public Set<String> getKnoxAudiences()
public Path getKnoxPublicKeyPath()
public String getKnoxCookieName()
public boolean isSamlEnabled()
public String getSamlIdentityProviderMetadataUrl()
public String getSamlServiceProviderEntityId()
public String getSamlIdentityAttributeName()
If not specified, or missing, the NameID of the Subject will be used.
public String getSamlGroupAttributeName()
public String getSamlSignatureAlgorithm()
public String getSamlSignatureDigestAlgorithm()
public boolean isSamlMetadataSigningEnabled()
public boolean isSamlRequestSigningEnabled()
public boolean isSamlWantAssertionsSigned()
public boolean isSamlMessageLoggingEnabled()
public String getSamlAuthenticationExpiration()
public boolean isSamlSingleLogoutEnabled()
public String getSamlHttpClientTruststoreStrategy()
public String getSamlHttpClientConnectTimeout()
public String getSamlHttpClientReadTimeout()
public boolean isClientAuthRequiredForRestApi()
- login identity provider is not populated - Kerberos service support is not enabled - openid connect is not enabled - knox sso is not enabled - anonymous authentication is not enabled
public InetSocketAddress getNodeApiAddress()
public Path getDatabaseRepositoryPath()
InvalidPathException - If the configured path is invalidpublic Path getFlowFileRepositoryPath()
InvalidPathException - If the configured path is invalidpublic Map<String,Path> getContentRepositoryPaths()
InvalidPathException - If any of the configured paths are invalidpublic Map<String,Path> getProvenanceRepositoryPaths()
public int getMaxFlowFilesPerClaim()
Default is DEFAULT_MAX_FLOWFILES_PER_CLAIM
public String getMaxAppendableClaimSize()
Default is DEFAULT_MAX_APPENDABLE_CLAIM_SIZE
public String getProperty(String key, String defaultValue)
getProperty in interface ReadablePropertiesgetProperty in class StandardReadablePropertiespublic String getBoredYieldDuration()
public File getStateManagementConfigFile()
public String getLocalStateProviderId()
public String getClusterStateProviderId()
public int getPerformanceMetricTrackingPercentage()
public File getEmbeddedZooKeeperPropertiesFile()
public boolean isStartEmbeddedZooKeeper()
public boolean isFlowConfigurationArchiveEnabled()
public String getFlowConfigurationArchiveDir()
public String getFlowElectionMaxWaitTime()
public Integer getFlowElectionMaxCandidates()
public String getFlowConfigurationArchiveMaxTime()
public String getFlowConfigurationArchiveMaxStorage()
public Integer getFlowConfigurationArchiveMaxCount()
public String getVariableRegistryProperties()
public Path[] getVariableRegistryPropertiesPaths()
public Map<String,String> getHttpNetworkInterfaces()
public Map<String,String> getHttpsNetworkInterfaces()
public boolean isZooKeeperClientSecure()
public boolean isZooKeeperTlsConfigurationPresent()
public boolean isTlsConfigurationPresent()
public String getFlowFileRepoEncryptionKeyId()
public String getFlowFileRepoEncryptionKey()
StaticKeyProvider is in use.
If no key ID is specified in the properties file, the default
nifi.flowfile.repository.encryption.key value is returned. If a key ID is specified in
nifi.flowfile.repository.encryption.key.id, it will attempt to read from
nifi.flowfile.repository.encryption.key.id.XYZ where XYZ is the provided key
ID. If that value is empty, it will use the default property
nifi.flowfile.repository.encryption.key.public Map<String,String> getFlowFileRepoEncryptionKeys()
nifi.properties file if a
StaticKeyProvider is defined. If FileBasedKeyProvider is defined this method will return an empty map.public Map<String,String> getRepositoryEncryptionKeys(String repositoryType)
repositoryType - "provenance", "content", or "flowfile"private List<String> getRepositoryEncryptionKeyProperties(String repositoryType)
repositoryType - "provenance", "content", or "flowfile"private String getRepositoryEncryptionKey(String repositoryType)
repositoryType - "provenance", "content", or "flowfile"FLOWFILE_REPOSITORY_ENCRYPTION_KEY)private String getRepositoryEncryptionKeyId(String repositoryType)
repositoryType - "provenance", "content", or "flowfile"FLOWFILE_REPOSITORY_ENCRYPTION_KEY_ID)public String getProvenanceRepoEncryptionKeyId()
public String getProvenanceRepoEncryptionKey()
StaticKeyProvider is in use.
If no key ID is specified in the properties file, the default
nifi.provenance.repository.encryption.key value is returned. If a key ID is specified in
nifi.provenance.repository.encryption.key.id, it will attempt to read from
nifi.provenance.repository.encryption.key.id.XYZ where XYZ is the provided key
ID. If that value is empty, it will use the default property
nifi.provenance.repository.encryption.key.public Map<String,String> getProvenanceRepoEncryptionKeys()
nifi.properties file if a
StaticKeyProvider is defined. If FileBasedKeyProvider is defined this method will return an empty map.public String getContentRepositoryEncryptionKeyId()
public String getContentRepositoryEncryptionKey()
StaticKeyProvider is in use.
If no key ID is specified in the properties file, the default
nifi.content.repository.encryption.key value is returned. If a key ID is specified in
nifi.content.repository.encryption.key.id, it will attempt to read from
nifi.content.repository.encryption.key.id.XYZ where XYZ is the provided key
ID. If that value is empty, it will use the default property
nifi.content.repository.encryption.key.public Map<String,String> getContentRepositoryEncryptionKeys()
nifi.properties file if a
StaticKeyProvider is defined. If FileBasedKeyProvider is defined this method will return an empty map.public String getAllowedHosts()
somehost.com, somehost.com:port, or 127.0.0.1.
Note: Calling NiFiProperties.getProperty(NiFiProperties.WEB_PROXY_HOST) will not normalize the hosts.
public List<String> getAllowedHostsAsList()
somehost.com, somehost.com:port, or 127.0.0.1.public String getAllowedContextPaths()
/some/context/path.
Note: Calling NiFiProperties.getProperty(NiFiProperties.WEB_PROXY_CONTEXT_PATH) will not normalize the paths.
public List<String> getAllowedContextPathsAsList()
/some/context/path.private List<String> getFlowFileRepositoryEncryptionKeyProperties()
private List<String> getProvenanceRepositoryEncryptionKeyProperties()
private List<String> getContentRepositoryEncryptionKeyProperties()
public Long getDefaultBackPressureObjectThreshold()
public String getDefaultBackPressureDataSizeThreshold()
public int getDefaultListenerBootstrapPort()
public Path getQuestDbStatusRepositoryPath()
public Map<String,String> getPropertiesWithPrefix(String prefix)
prefix - The exact string the returned properties should start with. Dots are considered, thus prefix "item" will return both
properties starting with "item." and "items". Properties with empty value will be included as well.public Set<String> getDirectSubsequentTokens(String prefix)
For example if there are "parent.sub1" and a "parent.sub2" properties are set, and the prefix is "parent", the method will return with a set, consisting of "sub1" and "sub2. Only directly subsequent tokens are considered, so in case of "parent.sub1.subsub1", the result will contain "sub1" as well.
prefix - The prefix of the request.public static NiFiProperties createBasicNiFiProperties(String propertiesFilePath)
propertiesFilePath - if provided properties will be loaded from
given file; else will be loaded from System property.
Can be null. Passing "" skips any attempt to load from the file system.public static NiFiProperties createBasicNiFiProperties(String propertiesFilePath, Map<String,String> additionalProperties)
propertiesFilePath - if provided properties will be loaded from
given file; else will be loaded from System property.
Can be null. Passing "" skips any attempt to load from the file system.additionalProperties - allows overriding of properties with the
supplied values. these will be applied after loading from any properties
file. Can be null or empty.public static NiFiProperties createBasicNiFiProperties(String propertiesFilePath, Properties additionalProperties)
propertiesFilePath - if provided properties will be loaded from
given file; else will be loaded from System property.
Can be null. Passing "" skips any attempt to load from the file system.additionalProperties - allows overriding of properties with the
supplied values. these will be applied after loading from any properties
file. Can be null or empty.private static void readFromPropertiesFile(String propertiesFilePath, Properties properties)
public void validate()
Copyright © 2022 Apache NiFi Project. All rights reserved.