Versions Compared

Key

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

Saga

...

Configuration

The Saga configuration can be use for the core library only or with the server, all the features available for the core library will work in the server, but the features for the server 

Server Access

Control the server's basic communication configuration

  • 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
    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

Tip

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


  • 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
    • Parameter
      summaryMaximum size in megabytes for each zip generated by the export
      namemaxSize
      typeinteger
    • Parameter
      summaryQuantity of entries per file
      namebatchSize
      typeinteger

External Libraries & Classes

Defines the location of external libraries and classes 

  • Parameter
    Parameter
    namesecurity
    typejson
    • Parameter
      nameencryptionKey
    • Parameter
      nameencryptionKeyFile
    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 tagManager
    typejson
    • Parameter
      nameresource
  • Parameter
    namepipelineManager
    typejson
    • Parameter
      nameresource
  • 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 UI handler to use. If the class is in a non-standard package path, the whole path needs to be specified
    nameuiHandlers
    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
    • 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
    Parameter
    summaryProvider configurations
    nameproviders
    typejson
    • 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
    name

    solutions

    logging_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


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

Here you can see a sample configuration (not functional) 

Code Block
languagejs
themeRDark
{
  "config": {
    }"apiPort": 8080,
    "pipelineManagersecureApiPort": {443,
    "host": "0.0.0.0",
 "resource   "allow-domains": "saga-provider:saga_pipelines"
    },
"localhost",
	"serverTimeout": 30000,
	"disableHTTPSSLVerification": false,
    "maxRequestPayloadSize": 1000000,
    "cors": {
      "providersallow_origins": [
        {"http://localhost:8080",
        "name": "filesystem-provider",https://localhost",
        "https://login.microsoftonline.com"
      ],
  "type    "allow_credentials": "FileSystemtrue",
      "allow_methods": ["*"],
      "baseDirallow_headers": ["./config*"],
      "expose_headers": ["*"]
    },
    "security":  {
      "enable": false,
      "nameencryptionKeyFile" : "saga-provider./bin/saga.ek",
      "inactiveInterval": 600,
      "typedefaultRole": "Elasticadmin",
      "users": [{
 "scheme       "username": "httpadmin",
        "hostnamepassword": "localhostnotpassword",
        "portroles": 9200,"admin"
      }],
      "timestamptype": "updatedAtnone",

        "excludeopenid": [{
        "serverURL":  "updatedAt"http://localhost:8080",
        "clientId":  "createdAtclientId",
        ]

"discoveryURI": "discoveryURI"
      }
    ]},
    "solutionsssl": [{
      {"enable": false,
      "keyStore": "./bin/saga.jks",
      "displaykeyStorePassword": "Sagaencrypted:KCe8RrPQ8MV3po8NqHo0G7q7sa6T6yzf1JrTQ5VD0uty0elmrqRuybaAmrEHJ37d",
    },
    "elasticSearchlibraryJars": {[
      "./lib"
    ],
    "schemeexportSettings" : "http"{
      "maxSize" : 40,
      "batchSize" : 5000
  "hostname  },
    "restHandlers": "localhost"[],
    "models": [],
      "uiHandlers": [],
    "portproviders": 9200,[
      {
        "indexNamename": "sagafilesystem-provider",
          "timeouttype": 30"FileSystem",
        "baseDir":  "delay": 5./config"
      },
      {
        "retriesname": 3"saga-provider",
        }"type": "Elastic",
      }   "nodeUrls": ["http://localhost:9200"],
    ]
  }
}

Saga Server Configuration

Code Block
languagejs
themeRDark
{
  "configtimestamp": {
"updatedAt",
        "apiPortindexName": 8080"saga",
        "ipAddressencryptionKeyFile" : "0.0.0.0/bin/saga.ek",

        "securityauthentication": {
"none",
        "enable"caFilePath": "",
		"trustAllSSL": false,
          "userstimeout": [{90,
        "usernamedelay": "admin"5,
        "passwordretries": "password"3,
        "rolesexclude": "admin"[ ]
      }
    ],
 	"logging_provider": {
      }]"name": "saga-logging-provider",
    }  "type": "Elastic",
      "datasetFoldernodeUrls": ["./datasets"http://localhost:9200"],
      "ssltimestamp": {"updatedAt",
      "enableindexName": false"saga",
      "keyStoreencryptionKeyFile" : "./bin/saga.jksek",
      "keyStorePasswordauthentication": "encrypted:NxepNROIgJ27pYpmKEw30llscPA8zCUpbQW676E7H8Nwo9DMABKQsIYF3fcSxQGGnone",
       }"caFilePath": "",
      "exportSettingstrustAllSSL" : {false,
      "maxSizetimeout" : 4090,
      "batchSizedelay" : 50005,
    }  "retries": 3,
      "restHandlersexclude": [], ]
    }
    "modelsgpt3": [],{
      "uiHandlerskey": []"",
      "gpt3openAIHost": {"https://api.openai.com",
      "keyopenAIAPIVersion": "encrypted:7E7nI0+ofh//r1bFvTQCnY7DQlG6Kh4aA1TQlh44/NoxR0DDzHaeZdBXqYAguEXcv1"
    }
  }
}