Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Parameter
    summaryPort of the Saga server. Use -1 to disable HTTP
    default8080
    nameapiPort
    typeinteger
  • Parameter
    summaryThe HTTPS port to use
    default443
    namesecureApiPort
    typeinteger
  • Parameter
    summaryIp address the server will be listening for request
    default0.0.0.0
    namehost
  • Parameter
    ipAddress
    summaryServer timeout for asynchronous requests.
    default30000
    nameserverTimeout
    typedouble
  • Parameter
    summaryDisables HTTPS SSL certificate verification when doing HTTP requests to thirds (e.g. the Python-Bridge).
    defaultfalse
    namedisableHTTPSSLVerification
    typeboolean
     (ADDED on 1.3.4)
  • Parameter
    summaryMax payload size limit for requests. The value is in bytes, so the default is 1000000 bytes or 1MB.
    default1000000
    namemaxRequestPayloadSize
    typedouble

CORS (added in 1.3.3)

Manages the security configuration regarding encrypted communication and authentication

  • Parameter
    summaryCORS configuration
    namecors
    typejson

    • Parameter
      summaryList or origins to allow, if you want to allow all just add ["*"]
      default*
      nameallow_origins
      typestring array
    • Parameter
      summaryAllow credentials, values "true" or "false"
      defaulttrue
      nameallow_credentials
    • Parameter
      summaryList or methods to allow, if you want to allow all just add ["*"]
      default*
      nameallow_methods
      typestring array
    • Parameter
      summaryList or headers to allow, if you want to allow all just add ["*"]
      default*
      nameallow_headers
      typestring array
    • Parameter
      summaryList or headers to expose in the response, if you want to expose all just add ["*"]
      default*
      nameexpose_headers
      typestring array

Security 

Manages the security configuration regarding encrypted communication and authentication

  • Parameter
    summarySecurity configuration
    namesecurity
    typejson

    • Parameter
      summaryEnables or not the security
      defaultfalse
      nameenable
      typeboolean
    • Parameter
      summaryIndicates the encryption key used in all encryption/decryption process
      nameencryptionKey
    • Parameter
      summaryPath to the file holding the encryption key. Recommended over encryptionKey
      nameencryptionKeyFile

    • Parameter
      summaryNumber of seconds of inactivity before expiring a session
      default600
      nameinactiveInterval
      typeinteger
Note

We recommend the use of encryptionKeyFile over the

...

encryptionKey directly in the configuration file. Never use both a the same time

...

Parameter
summaryUser profiles definitions, an array of json objects, each one representing a user
nameusers
typejson

...

Tip

For more details regarding Security on the Saga Server please see Security & Authentication


  • Parameter
    summary
    user accountnameusername
  • (server only) 
    Parameter
    summaryUser password
    namepassword
  • (server only) 
    Parameter
    summaryUser roles
    nameroles
    typestring array
     (not in use yet)
  • (server only) 
    Parameter
    summarySSL configuration
    namessl
    typejson
     (server only)
       
    • Parameter
      summaryEnables and disables the use of the SSL
      defaultfalse
      nameenable
      typeboolean
       (server only) 
    • Parameter
      summarykey store holding the certificate
      namekeyStore
       (server only) 
    • Parameter
      summaryPassword of the key store
      namekeyStorePassword
       (server only)

Export & Import (Server Only)

Manages the export functionality

...

  • Parameter
    summaryConfiguration for the export functionality
    nameexportSettings
    typejson
    • (server only) 
      Parameter
      summaryMaximum size in megabytes for each zip generated by the export
      namemaxSize
      typeinteger
    • (server only) 
      Parameter
      summaryQuantity of entries per file
      namebatchSize
      typeinteger

...

  • Parameter
    summaryLocations for external libraries, the locations can be either folder paths or paths directly to the jars files
    namelibraryJars
    typestring array
  • Parameter
    summaryIndicates the class name of the external REST handler to use. If the class is in a non-standard package path, the whole path needs to be specified
    namerestHandlers
    typestring array
     (server only) 
  • Parameter
    summaryIndicates the class name of the external REST UI handler to use. If the class is in a non-standard package path, the whole path needs to be specified
    namerestHandlersuiHandlers
    typestring array
     (server only) 
  • Parameter
    summaryIndicates the class name of the external Model to use. If the class is in a non-standard package path, the whole path needs to be specified
    namemodels
    typestring array
     (server only)

Server Proxys Configuration

...

(

...

Server Only)

...

  • Parameter
    summaryConfiguration for the GTP3 proxy
    namegpt3
    (server only) 
    • Parameter
      summarySecret key for the OpenAI API
      namekey
    • Parameter
      summaryHost for the OpenAI API
      nameopenAIHost
    • Parameter
      summaryOpenAI API version to use.
      nameopenAIAPIVersion

Providers & Resources

  • Parameter
    summaryProvider configurations
    nameproviders
    typejson
        Each provider has it own configuration, which will not be review in this section
    • Parameter
      summaryProvider name
      namename
    • Parameter
      summaryType of provider, the type is the name segment of the class name (e.g. TheName is the type for TheNameProvider class)
      nametype

      Info

      As explained in the Resources page, a resource provides access to a specific set of resources from a particular storage technology.  In order for the Saga to use these providers, we need to specify them in the config file under the providers field.  The declaration of each Resource Provider depends of the resource per se; the details of each one can be find here.

  • Parameter
    summaryLogging Provider configurations
    namelogging_provider
    typejson
    (ADDED on 1.3.4)

    Code Block
    languagejs
    titleLogging_provider Example Configuration
    collapsetrue
    "logging_provider": {
          "name": "saga-logging-provider",
          "type": "Elastic",
          "nodeUrls": ["http://localhost:9200"],
          "timestamp": "updatedAt",
          "indexName": "saga",
          "encryptionKeyFile" : "./bin/saga.ek",
          "authentication": "none",
          "caFilePath": "",
          "trustAllSSL": false,
          "timeout": 90,
          "delay": 5,
          "retries": 3,
          "exclude": [ ]
        }


  • Parameter
    summaryTag manager configuration
    nametagManager
    typejson
    • Parameter
      summaryName of the resource to use for the tags. The value should be form by "<provider_name>:<source_name>"
      defaultsaga-provider:saga_tags
      nameresource
  • Parameter
    summaryPipeline manager configuration
    namepipelineManager
    typejson
    • Parameter
      summaryName of the resource to use for the pipelines. The value should be form by "<provider_name>:<source_name>"
      defaultsaga-provider:saga_pipelines
      nameresource
    (server only) 
    Parameter
    summaryConnections for the server user interface (one at the moment ¯\_(ツ)_/¯ ). Use to manage the patterns, tags, and pretty much every single stored element in elasticsearch
    namesolutions
    typejson
    Parameter
    summaryElasticsearch configuration
    nameelasticSearch
    typejson
  • Parameter
    summaryProtocol to use for the connection
    defaulthttp
    nameschema
  • Parameter
    summaryHostname of the Elasticsearch server
    defaultlocalhost
    namehostname
  • Parameter
    summaryElasticsearch port
    default9200
    nameport
    typeinteger
  • Parameter
    summaryThis will be the prefix for all the indexes created for this Saga solution
    defaultsaga
    nameindexName
  • Parameter
    summaryTimeout in seconds for all the connections use by the user interface
    default30
    nametimeout
    typeinteger
  • Parameter
    summaryTime in seconds to wait before a retry of a failed connection
    default5
    namedelay
  • ParametersummaryNumber of times to retry a failed connectiondefault3nameretriestypeinteger


Connecting Saga to an Elasticsearch on HTTPS

In addition to change the schema in the 'nodeUrls' parameter in the solutions and providers sections in the config file from 'http' to 'https',  you also need to add the Elasticsearch CA certificate to the java keystore using the keytool command.

Something like this:

keytool -importcert -alias elastic_ca -cacerts -storepass changeit -file /tmp/es_ca.crt -noprompt

Saga Core & Server Configuration

...

Code Block
languagejs
themeRDark
{
  "config": {
    "apiPort": 8080,
    "secureApiPort": 443,
    "ipAddresshost": "0.0.0.0",
    "allow-domains": "security"localhost",
	"serverTimeout": {
   30000,
	"disableHTTPSSLVerification": false,
    "maxRequestPayloadSize": 1000000,
    "enablecors": false,{
      "encryptionKeyallow_origins": "SDFW$%GW$S%S# [
        "http://localhost:8080",
        "encryptionKeyFile": "./bin/saga.ekhttps://localhost",
        "https://login.microsoftonline.com"
      ],
      "allow_credentials": "true",
      "usersallow_methods": [{"*"],
      "allow_headers": ["*"],
      "usernameexpose_headers": ["admin*",]
    },
    "passwordsecurity": "password",
  {
      "enable": false,
      "rolesencryptionKeyFile" : "admin"
./bin/saga.ek",
       }]
"inactiveInterval": 600,
      }"defaultRole": "admin",
      "libraryJarsusers": [{
        "./lib""username": "admin",
    ],
    "tagManagerpassword": {
"notpassword",
        "resourceroles": "saga-provider:saga_tagsadmin"
      }],
      "type": "pipelineManager"none",

      "openid": {
        "resourceserverURL": "saga-provider:saga_pipelines"http://localhost:8080",
    },
     "clientId": "clientId",
        "datasetFolderdiscoveryURI": "./datasets"discoveryURI"
      }
    },
    "ssl": {
      "enable": false,
      "keyStore": "./bin/saga.jks",
      "keyStorePassword": "encrypted:NxepNROIgJ27pYpmKEw30llscPA8zCUpbQW676E7H8Nwo9DMABKQsIYF3fcSxQGGKCe8RrPQ8MV3po8NqHo0G7q7sa6T6yzf1JrTQ5VD0uty0elmrqRuybaAmrEHJ37d"
    },
    "libraryJars": [
      "./lib"
    ],
    "exportSettings" : {
      "maxSize" : 40,
      "batchSize" : 5000
    },
    "restHandlers": [],
    "models": [],
    "uiHandlers": [],
    "gpt3": {
      "key": "encrypted:7E7nI0+ofh//r1bFvTQCnY7DQlG6Kh4aA1TQlh44/NoxR0DDzHaeZdBXqYAguEXc"
    },
    "providers": [
      {
        "name": "filesystem-provider",
        "type": "FileSystem",
        "baseDir": "./config"
      },
      {
        "name": "saga-provider",
        "type": "Elastic",
        "schemenodeUrls": ["http://localhost:9200"],
        "hostnametimestamp": "localhostupdatedAt",
        "portindexName": 9200"saga",
        "timestampencryptionKeyFile" : "updatedAt./bin/saga.ek",
        "excludeauthentication": ["none",
         "caFilePath": "updatedAt",
		"trustAllSSL": false,
        "timeout": 90,
        "createdAtdelay": 5,
         ]"retries": 3,
      }
  "exclude": [ ],
     "solutions": [}
    ],
 	"logging_provider": {
        "displayname": "Sagasaga-logging-provider",
        "elasticSearchtype": {
    "Elastic",
      "schemenodeUrls": ["http://localhost:9200"],
      "timestamp": "updatedAt",
      "hostnameindexName": "localhostsaga",
      "encryptionKeyFile" : "./bin/saga.ek",
      "portauthentication": 9200"none",
          "indexNamecaFilePath": "saga",
      "trustAllSSL": false,
      "timeout": 3090,
      "delay": 5,
      "delayretries": 53,
      "exclude": [ ]
    }
    "retriesgpt3": 3{
      "key": "",
    }  "openAIHost": "https://api.openai.com",
      }"openAIAPIVersion": "v1"
    ]}
  }
}