For safety reasons, please STOP scalr on ALL nodes with scalr-server-manage stop all command before upgrading your deployment.


With 7.17.0 release, if you use an external database (not from the Scalr package), make sure that sql_mode setting is set to:

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'



RSS Feed available here: https://goo.gl/jDqP7u

Scalr server 7.17.23

Release Date: 02/Nov/2021

Bug

Scalr server 7.17.22

Release Date: 05/Oct/2021

Improvement

Bug

Scalr server 7.17.21

Release Date: 31/Aug/2021

Improvement

Bug

Scalr server 7.17.20

Release Date: 10/Aug/2021

Improvement

Bug

Scalr 7.17.19 (server & agent)

Release Date: 08/July/2021

Bug

Scalr 7.17.18 (server & agent)

Release Date: 29/June/2021

Bug

Scalr 7.17.17 (server)

Release Date: 22/May/2021

Bug

Scalr 7.17.16 (server)

Release Date: 20/May/2021

Improvement

Scalr 7.17.15 (server & agent)

Release Date: 06/Apr/2021

Bug

Scalr 7.17.14 (server & agent)

Release Date: 09/Mar/2021

Improvement

Bug

Scalr 7.17.13 (server & agent)

Release Date: 09/Feb/2021

Bug

Scalr 7.17.12 (server & agent)

Release Date: 12/Jan/2021

Bug

Scalr 7.17.11 (server & agent)

Release Date: 15/Dec/2020

Feature

Improvement

Bug

Scalr 7.17.10 (server & agent)

Release Date: 24/Nov/2020

Bug

Scalr 7.17.9 (server)

Release Date: 10/Nov/2020

Bug

Scalr 7.17.8 (server)

Release Date: 20/Oct/2020

Feature

Improvement

Bug

Scalr 7.17.7 (server & agent)

Release Date: 29/Sep/2020

Improvement

Bug


Changes related only to GCE roles with XPN feature enabled.

Before

GCE cloud credentials supports XPN feature which allows service projects to access shared VPCs from the host one. If host project is not specified, Scalr searched for shared VPCs across all host projects (Scalr used alpha API that has been dropped recently by GCE).

After

Now user must specify host project to access shared VPCs. To fix cloud credentials users should manually specify the host projects for issued cloud credentials because now farm role management is broken.

Scalr 7.17.6 (server & agent)

Release Date: 8/Sep/2020

Improvement

Bug

Scalr 7.17.5 (server & agent)

Release Date: 25/Aug/2020

Improvement

Bug

Scalr 7.17.4 (server & agent)

Release Date: 11/Aug/2020

Improvement

Bug


Scalr 7.17.3 (server & agent)

Release Date: 21/Jul/2020

Bug

Scalr 7.17.2 (server & agent)

Release Date: 07/Jul/2020

Bug

Scalr 7.17.1 (server & agent)

Release Date: 23/Jun/2020

Feature

Bug

Scalr 7.17.0 (server & agent)

Release Date: 09/Jun/2020

Feature

Improvement

Bug


1. BC change in API

Before: Azure availabilitySet was in FarmRole.availabilityZone property
After: Azure AvailabilitySet is in FarmRole.cloudFeatures.availabilitySet property


New software:
libonig 6.9.4

Updated software:
curl 7.65.3 → 7.69.0
docker 18.09.5 → 19.03.7
erlang 20.3 → 22.1
git 2.21.0 → 2.25.1
apache httpd 2.4.39 → 2.4.41
libldap 2.4.47 → 2.4.50
mysql 5.7.26 → 2.7.29
nginx 1.17.3 → 1.17.9
openssl 1.1.1c → 1.1.1g
php 7.2.21 → 7.4.6
putty 0.69 → 0.73
python3 3.6.7 → 3.6.10
rabbitmq 3.7.7 → 3.8.2
ruby 2.4.5 → 2.6.6
supervisor 4.0.4 → 4.1.0

Removed software:
libgcrypt
libgmp
libgpg
libidn
libmnl
memcached
python2

Scalr 7.16.14 (server)

Release Date: 28/May/2020

Improvement

Scalr 7.16.13 (server)

Release Date: 15/May/2020

Improvement

Bug

Scalr 7.16.12 (server & agent)

Release Date: 27/Apr/2020

Improvement

Bug

Scalr 7.16.11 (server)

Release Date: 21/Apr/2020

The cloud service gateway has been deprecated. Prior to upgrading, please ensure that you disable the CSG service in the scalr-server.rb and/or the scalr-server-local.rb file. 

For enhanced cloud service functionality, please see the Scalr Infrastructure as Code Platform here: https://iacp.docs.scalr.com


Bug

Scalr 7.16.10 (server)

Release Date: 31/Mar/2020

Bug

Scalr 7.16.9 (server & agent)

Release Date: 17/Mar/2020

Bug

Scalr 7.16.8 (server & agent)

Release Date: 18/Feb/2020

Bug

Scalr 7.16.7 (server & agent)

Release Date: 04/Feb/2020

Bug

Scalr 7.16.6 (server)

Release Date: 21/Jan/2020

Bug

Scalr 7.16.5 (server & agent)

Release Date: 08/Jan/2020

Improvement

Bug

Scalr 7.16.4 (server & agent)

Release Date: 10/Dec/2019

Improvement

Bug

Scalr 7.16.3 (server & agent)

Release Date: 26/Nov/2019

Feature

Improvement

Bug

Scalr 7.16.2 (server)

Release Date: 30/Oct/2019

Feature

Improvement

Bug


1. BC change in API

Before: Azure availabilitySet was in FarmRole.availabilityZone property
After: Azure AvailabilitySet will be in FarmRole.cloudFeatures.availabilitySet property


Scalr 7.16.1 (server & agent)

Release Date: 17/Oct/2019

Bug

Scalr 7.16.0 (server & agent)

Release Date: 01/Oct/2019

Feature

Improvement

Bug


New software:
docker 18.09.5
git 2.21.0
iptables 1.8.2
libmnl 1.0.4
xzutils 5.2.4
mysqlrouter 8.0.17

Updated software:
cacerts 2019-01-23 → 2019-05-15
curl 7.64.1 → 7.65.3
mysql 5.7.25 → 5.7.26
nginx 1.15.10 → 1.17.3
openssl 1.1.1b → 1.1.1c
php 7.2.17 → 7.2.21
supervisor 3.3.1 → 4.0.4
composer 1.7.2 → 1.9.0
pcre 8.40 → 8.43

Removed software:
boost

7.15.9

Release Date: 17/Sep/2019

Bug

7.15.8

Release Date: 27/Aug/2019

Bug

7.15.7

Release Date: 13/Aug/2019

Bug

7.15.6

Release Date: 30/Jul/2019

Bug


7.15.5

Release Date: 16/Jul/2019

Bug


1. Change in behavior

Before: IPs were requested from remote IPPool after VM launch on VMware 
After: IPs is requested from remote IPPool before VM launch on VMware after hostname request


7.15.3/7.15.4

Release Date: 04/Jul/2019

Bug

7.15.2

Release Date: 20/Jun/2019

Bug

7.15.1

Release Date: 13/Jun/2019

Bug

7.15.0

Release Date: 04/Jun/2019

Feature

Improvement

Bug


1. BC change in API

Type of version filed changed from int to string for objects ScriptVersionForeignKey and ScriptVersionIdentity

2. BC change in API

Before: The minimum length for farm FarmRole.alias was one symbol.
After: The minimum length for farm FarmRole.alias are two symbols.

3. BC change in behavior

Before: Default action for failed servers was termination
AfterDefault action for failed servers is alert


Software upgrades:

  • openssl 1.0.2q → 1.1.1b
  • libevent 2.0.22 → 2.1.8
  • libsasl 2.1.26 → 2.1.27
  • apr 1.5.2 → 1.6.5
  • apr-util 1.5.4 → 1.6.1
  • libldap 2.4.44 → 2.4.47
  • ruby 2.1.6 → 2.4.5
  • rubygems 2.1.11 → 3.0.2
  • ssh-keygen 6.8p1 → 7.9p1
  • nginx 7.15.7 → 7.15.10
  • mysql 5.7.24 → 5.7.25
  • curl 7.62.0 → 7.64.1
  • php 7.2.12 → 7.2.17
  • apache 2.4.38 → 2.4.39

7.14.8

Release Date: 04/Jun/2019

Bug

7.14.7

Release Date: 28/May/2019

Bug

7.14.6

Release Date: 14/May/2019

Bug

7.14.5

Release Date: 24/Apr/2019

Bug

7.14.4

Release Date: 17/Apr/2019

Bug

7.14.3

Release Date: 5/Apr/2019

Bug

7.14.2

Release Date: 2/Apr/2019

Bug

7.14.1

Release Date: 28/Mar/2019

Bug

7.14.0

Release Date: 21/Mar/2019

Feature

Improvement

Bug


1. BC Change in behavior

Before: Users who didn't have ACL permission Allow to execute Scripts were able to create Orchestration Rules to execute scripts as well as add scheduled script executions in Scheduler Tasks.
After: Users who don't have both ACL permissions Allow to execute Scripts as root and Allow to execute Scripts as non-root are not able to create Orchestration Rules to execute scripts as well as add scheduled script executions in Scheduler Tasks.


Software upgrades:

  • apache 2.4.35 → 2.4.38
  • cacerts 2018.06.20 → 2019-01-23
  • php 7.2.12 → 7.2.14

7.13.3

Release Date: 19/Mar/2019

Bug

7.13.2

Release Date: 21/Feb/2019

Bug

7.13.1

Release Date: 31/Jan/2019

Bug

7.13.0

Release Date: 16/Jan/2019

Feature

Improvement

Bug



1. BC Change in API related to Global Variables (GV)

  • A new type field that matches the type of a variable was added. GlobalVariableString|GlobalVariableJson|GlobalVariableList|GlobalVariableRemoteList
    BEFORE: 
    • GlobalVariableString
       POST /api/v1beta0/user/5/global-variables HTTP/1.1
      {
      	"name": "exampleStringGlobalVariable",
      	"value": "value"
      }
      ...
      {
      	"meta": {
      		"requestId": "6ca0f418-7b09-4c69-8810-bf4c087d70b3"
      	},
      	"data": {
      		"declaredIn": "environment",
      		"definedIn": "environment",
      		"name": "exampleStringGlobalVariable",
      		"value": "value",
      		"computedValue": "value"
      	},
      	"warnings": []
      }
      
    • GlobalVariableJson
      POST /api/v1beta0/user/5/global-variables HTTP/1.1
      {
      	"name": "exampleJsonGlobalVariable",
      	"value": "{\"example\":\"exampleJsonValue\"}"
      }
      ...
      {
      	"meta": {
      		"requestId": "ec395750-fa29-4e3e-942f-a42bd6b98ff6"
      	},
      	"data": {
      		"declaredIn": "environment",
      		"definedIn": "environment",
      		"name": "exampleJsonGlobalVariable",
      		"value": "{\"example\":\"exampleJsonValue\"}",
      		"outputFormat": "json",
      		"computedValue": "{\"example\":\"exampleJsonValue\"}"
      	},
      	"warnings": []
      }
      
    • GlobalVariableList
      POST /api/v1beta0/user/5/global-variables HTTP/1.1
      {
      	"name": "exampleListGlobalVariable",
      	"value": "test1",
      	"validationPattern": "\/^(test1|test2|test3|test4)$\/"
      }
      ...
       {
       	"meta": {
       		"requestId": "193f0459-f81f-4fea-ac15-459c65872860"
       	},
       	"data": {
       		"declaredIn": "environment",
       		"definedIn": "environment",
       		"name": "exampleListGlobalVariable",
       		"value": "test1",
       		"validationPattern": "\/^(test1|test2|test3|test4)$\/",
       		"computedValue": "test1"
       	},
       	"warnings": []
       }

      AFTER:

    • GlobalVariableString
       POST /api/v1beta0/user/5/global-variables HTTP/1.1
       {
       	"name": "exampleStringGlobalVariable",
       	"type": "GlobalVariableString",
       	"value": "value"
       }
      ...
      {
      	"meta": {
      		"requestId": "ef6beeff-2b4f-4eff-9273-dd766eb2570c"
      	},
      	"data": {
      		"name": "exampleStringGlobalVariable",
      		"type": "GlobalVariableString",
      		"hidden": false,
      		"locked": false,
      		"declaredIn": "environment",
      		"definedIn": "environment",
      		"value": "value",
      		"computedValue": "value"
      	},
      	"warnings": []
      }
      
    • GlobalVariableJson
      POST /api/v1beta0/user/5/global-variables HTTP/1.1
      {
      	"name": "exampleJsonGlobalVariable",
      	"type": "GlobalVariableJson",
      	"value": "{\"example\":\"exampleJsonValue\"}"
      }
      ...
      {
       	"meta": {
       		"requestId": "099d5036-9e7b-4ea2-8987-00a025386ba3"
       	},
       	"data": {
       		"name": "exampleJsonGlobalVariable",
       		"type": "GlobalVariableJson",
       		"hidden": false,
       		"locked": false,
       		"declaredIn": "environment",
       		"definedIn": "environment",
       		"value": "{\"example\":\"exampleJsonValue\"}",
       		"computedValue": "{\"example\":\"exampleJsonValue\"}"
       	},
       	"warnings": []
       }
      
    • GlobalVariableList
      POST /api/v1beta0/user/5/global-variables HTTP/1.1
      {
      	"name": "exampleListGlobalVariable",
      	"type": "GlobalVariableList",
      	"value": "test1",
      	"allowedValues": [{
      		"value": "test1"
      	}, {
      		"value": "test2"
      	}, {
      		"value": "test3"
      	}, {
      		"value": "test4"
      	}]
      }
      ...
      {
      	"meta": {
      		"requestId": "302ddc48-15c9-4715-af31-6693aae67467"
      	},
      	"data": {
      		"name": "exampleListGlobalVariable",
      		"type": "GlobalVariableList",
      		"hidden": false,
      		"locked": false,
      		"declaredIn": "environment",
      		"definedIn": "environment",
      		"value": "test1",
      		"computedValue": "test1",
      		"allowedValues": [{
      			"value": "test1"
      		}, {
      			"value": "test2"
      		}, {
      			"value": "test3"
      		}, {
      			"value": "test4"
      		}]
      	},
      	"warnings": []
      }
      
  • Fields hidden and locked are always included in the response. Before and after examples can be seen in the responses above.
  • The property computedCategory was deleted. Category of Global Variable will be always shown in the category field
  • The computedValue field won’t be included in the response if the GlobalVariable is declared on the higher scopes and the flag hidden is set to ‘true’
    BEFORE:
     GET /api/v1beta0/user/5/global-variables/exampleHidden
    {
    	"meta": {
    		"requestId": "9277ce50-7573-4e10-87e8-f09a40e6c3de"
    	},
    	"data": {
    		"declaredIn": "account",
    		"definedIn": "account",
    		"hidden": true,
    		"name": "exampleHidden",
    		"computedValue": "******",
    		"computedCategory": "testcategory"
    	},
    	"warnings": []
    }
    

    AFTER:

    GET /api/v1beta0/user/5/global-variables/exampleHidden
    {
    	"meta": {
    		"requestId": "a51922f5-f20d-4da1-abc1-2061461379ce"
    	},
    	"data": {
    		"name": "exampleHidden",
    		"type": "GlobalVariableString",
    		"category": "testcategory",
    		"hidden": true,
    		"locked": false,
    		"declaredIn": "account",
    		"definedIn": "account"
    	},
    	"warnings": []
    }
    
  • The Scalr API supports an inverted request compatibility according to the request specification before release 7.13, but the request object will be converted according to the current specification. Please, see the table of conversion below.


    request before 7.13converted request
    {
    	"name": "GlobalVariableString",
    	"value": "test"
    }
    
    {
    	"name": "GlobalVariableString",
            "type": "GlobalVariableString",
    	"value": "test"
    }
    
    {
    	"name": "GlobalVariableRegExp",
    	"value": "test_pattern",
    	"validationPattern": "/test_pattern/"
    }
    {
    	"name": "GlobalVariableRegExp",
    	"value": "test_pattern",
            "type": "GlobalVariableString",
    	"validationPattern": "/test_pattern/"
    }
    {
    	"name": "GlobalVariableJson",
    	"value": "{\"test\":\"value\"}",
    	"outputFormat": "json"
    }
    {
    	"name": "GlobalVariableJson",
    	"value": "{\"test\":\"value\"}",
    	"type": "GlobalVariableJson",
    }
    {
    	"name": "GlobalVariableList",
    	"value": "test1",
    	"validationPattern": "/(test1|test2|test3|test4)\\$/"
    }
    {
    	"name": "GlobalVariableList",
    	"value": "test1",
    	"allowedValues": [{
    			"value": "test1"
    		},
    		{
    			"value": "test2"
    		},
    		{
    			"value": "test3"
    		},
    		{
    			"value": "test4"
    		}
    	]
    }



Software upgrades:

  • OpenSSL 1.0.2p → 1.0.2q
  • CURL 7.61.1 → 7.62.0
  • nginx 1.15.5 → 1.15.7
  • Apache 2.4.35 → 2.4.37
  • MySQL 5.6.40 → 5.7.24
  • PHP 7.1.22 → 7.2.12
  • Python3 3.5.5 → 3.6.7


7.12.4

Release Date: 03/Jan/2019

Bug

7.12.3

Release Date: 21/Dec/2018

Bug

7.12.2

Release Date: 07/Dec/2018

Bug

7.12.1

Release Date: 23/Nov/2018

Bug

7.12.0

Release Date: 21/Nov/2018

Feature

Improvement

Bug


1. BC Change in API

Before: 
You're allowed to set mounting options for shared disks.
Example:

{
	"type": "PersistentStorageConfiguration",
	"template": {
		"cloudFeatures": {
			"type": "VmwareStorageTemplateCloudFeatures",
			"isSharedDisk": true
		},
		"size": 20,
		"type": "provisioning-thick-eager"
	},
	"mounting": {
		"enabled": true,
		"fileSystem": "ext3",
		"mountPoint": "\\D"
	},
	"reUse": 1,
	"fromTemplateIfMissing": 0
}

After: 
Previous request will cause error, as you're not allowed to set mounting options for shared disks.

"code": "ConfigurationMismatch"
"responseCode": 422

This request should be used:
Example:

{
	"type": "PersistentStorageConfiguration",
	"template": {
		"cloudFeatures": {
			"type": "VmwareStorageTemplateCloudFeatures",
			"isSharedDisk": true
		},
		"size": 20,
		"type": "provisioning-thick-eager"
	},
	"reUse": 1,
	"fromTemplateIfMissing": 0
}

Note: Disk sharing available only for "type":"provisioning-thick-eager"

2. BC Change in GV

Before: Previously server_type Global Variable has been an identifier of the Instance Type
After: Now server_type Global Variable is the Name of the Instance Type


system software

InfluxDB 1.5 → 1.6.4

curl 7.60.0 → 7.61.1

apache 2.4.33 → 2.4.35

nginx 1.13.12 → 1.15.5

openssl 1.0.2o → 1.0.2p

php-yaml 2.0.0 → 2.0.2

php 7.1.18 → 7.1.22

New software:

boost 1.66.0

Removed software:

libmcrypt

php-mcrypt


7.11.5 (7.11.6)

Release Date: 13/Nov/18

Bug

7.11.4

Release Date: 31/Oct/18

Bug

7.11.3

Release Date: 23/Oct/18

Bug

7.11.2

Release Date: 09/Oct/18

Bug

7.11.1

Release Date: 25/Sep/18

Bug

7.11.0

Release Date: 17/Sep/18

  • As part of our 7.11.0 release, we are excited to announce a preview of the new Scalr documentation site found here: http://docs.scalr.com/

  • Starting with 7.11.0, we will be matching the Scalarizr version numbers with each Scalr server major release version. Please check the release notes for Scalarizr 7.11.0 to determine if you need to upgrade: http://update.scalr.net/ . It is not necessary to upgrade the Scalarizr version with each release unless it contains a bug fix or feature that you require.

New Feature

Improvement

Bug


1. BC Change in Webhooks

Before: webhook request sent X-Scalr-Webhook-Enpoint-Id header
After: webhook request sends X-Scalr-Webhook-Endpoint-Id header


New platforms (for Scalr deployments):

  • Ubuntu 18.04

Added software:

  • heptio-authenticator-aws == 0.3.0 (Apache 2.0)

Updated software:

  • erlang 20.0 → 20.3
  • curl 7.54.1 → 7.60.0
  • cacerts 2017-01-18 → 2018-06-20
  • rabbitmq 3.6.4 → 3.7.7
  • php_memcached 3.0.3 → 3.0.4
  • zlib 1.2.8 → 1.2.11
  • libedit 20150325-3.1 → 20170329-3.1

Removed software:

  • libgcrypt
  • libgpg_error

7.10.4

Release Date: 06/Sep/18

Bug

7.10.3

Release Date: 24/Aug/18

Bug

7.10.2

Release Date: 01/Aug/18

Bug

7.10.1

Release Date: 23/Jul/18

Bug

7.10.0

Release Date: 09/Jul/18

New Feature

Improvement

Bug


1. BC Change in APIv2

Before:
UI > Openstack FarmRole > NETWORK SETTINGS - users were able to set any active network 
API > Openstak FarmRole > The field networking.networks.* accepted any active network
After:
UI > Openstack FarmRole > NETWORK SETTINGS - only networks that flagged with router:external = false are accepted
API > Openstak FarmRole > The field networking.networks.* accepts only identifiers of the networks that have router:external = false.


php: 7.1.14 -> 7.1.18
nginx: 1.13.9 -> 1.13.12
openssl: 1.0.2n -> 1.0.2o
apache: 2.4.29 -> 2.4.33
influxdb: 1.4.3 -> 1.5.3


7.9.6

Release Date: 26/Jun/18

Bug

7.9.5

Release Date: 22/Jun/18

Bug

7.9.4

Release Date: 08/Jun/18

Bug

7.9.3

Release Date: 05/Jun/18

Bug

7.9.2

Release Date: 23/May/18

Bug

7.9.1

Release Date: 14/May/18

Bug

7.9.0

Release Date: 03/May/18

IMPORTANT: 

New Feature

Improvement

Bug


7.8.0

Release Date: 15/Mar/18

IMPORTANT: There are two changes in Scalr 7.8.0 that all customers must be aware of prior to upgrading, please click on the links below:


New Feature

Improvement

Bug


1. BC Change

Before: SCALR_CLOUD_LOCATION variable had datacenter ID as a value (example: datacenter-27)

After: SCALR_CLOUD_LOCATION variable has datacenter Name as a value (example: DC1)



influxdb 1.3.5 -> 1.4.3
nginx 1.13.7 -> 1.13.9
PHP 7.1.13 -> 7.1.14
python 2.7.11 -> 2.7.14
python3 3.5.2 -> 3.5.5


7.7.12

Release Date: 15/Feb/18

New Feature

Improvement

Bug


1. BC Change in APIv2

  • Added field cloudFeatures.vCenterHost that is required for VMware images on Global and Account scopes.

    Before:
    POST http://SCALR/api/v1beta0/account/1/images HTTP/1.1
    Content-Type: application/json; charset=utf-8
    X-Scalr-Key-Id: APIK412345
    X-Scalr-Date: 2018-02-14T14:07:25Z
    X-Scalr-Signature: V1-HMAC-SHA256 ....
    X-Scalr-Debug: 1
    Content-Length: 176
    { "name": "mbeh1-ubuntu1604-devel-17102017-vmware", "cloudImageId": "vm-12345", "cloudLocation": "datacenter-21", "cloudPlatform": "vmware", "architecture": "x86_64", "os": "ubuntu-16-04" } HTTP/1.1 201 Created Server: nginx/1.12.2 Date: Wed, 14 Feb 2018 14:07:25 GMT Content-Type: application/json; utf-8 Content-Length: 811 Connection: keep-alive Vary: Accept-Encoding { "meta": { "requestId": "1c750047-60ee-493a-a1e0-993f76994588", "stringToSign": "POST\n2018-02-14T14:07:25Z\n\/api\/v1beta0\/account\/1\/images\n\n{\"name\":\"mbeh1-ubuntu1604-devel-17102017-vmware\",\"cloudImageId\":\"vm-12345\",\"cloudLocation\":\"datacenter-21\",\"cloudPlatform\":\"vmware\",\"architecture\":\"x86_64\",\"os\":\"ubuntu-16-04\"}" }, "data": { "id": "093ecc5e-1079-45d8-9969-6627f396d7c7", "name": "mbeh1-ubuntu1604-devel-17102017-vmware", "cloudImageId": "vm-12345", "cloudLocation": "datacenter-21", "cloudPlatform": "vmware", "added": "2018-02-14T14:07:25Z", "lastUsed": null, "scalrAgentInstalled": true, "cloudInitInstalled": false, "architecture": "x86_64", "size": null, "deprecated": false, "source": "Manual", "status": "active", "type": null, "statusError": null, "scope": "account", "os": { "id": "ubuntu-16-04" } }, "warnings": [] }

    After:

    POST http://SCALR/api/v1beta0/account/1/images HTTP/1.1
    Content-Type: application/json; charset=utf-8
    X-Scalr-Key-Id: APIK412345
    X-Scalr-Date: 2018-02-14T14:11:07Z
    X-Scalr-Signature: V1-HMAC-SHA256 ....
        X-Scalr-Debug: 1
    Content-Length: 176
    { "name": "mbeh1-ubuntu1604-devel-17102017-vmware", "cloudImageId": "vm-12345", "cloudLocation": "datacenter-21", "cloudPlatform": "vmware", "architecture": "x86_64", "os": "ubuntu-16-04" } HTTP/1.1 400 Bad Request Server: nginx/1.12.2 Date: Wed, 14 Feb 2018 14:11:07 GMT Content-Type: application/json; utf-8 Content-Length: 462 Connection: keep-alive Vary: Accept-Encoding { "meta": { "requestId": "b810d5c2-09ce-4910-9639-5efbd24a4b0a", "stringToSign": "POST\n2018-02-14T14:11:07Z\n\/api\/v1beta0\/account\/1\/images\n\n{\"name\":\"mbeh1-ubuntu1604-devel-17102017-vmware\",\"cloudImageId\":\"vm-12345\",\"cloudLocation\":\"datacenter-21\",\"cloudPlatform\":\"vmware\",\"architecture\":\"x86_64\",\"os\":\"ubuntu-16-04\"}" }, "errors": [{ "code": "InvalidStructure", "message": "'Image.cloudFeatures.vCenterHost' is required on 'account' scope." }] }
    POST http://SCALR/api/v1beta0/account/1/images HTTP/1.1
    Content-Type: application/json; charset=utf-8
    X-Scalr-Key-Id: APIK412345
    X-Scalr-Date: 2018-02-14T14:15:54Z
    X-Scalr-Signature: V1-HMAC-SHA256 ....
        X-Scalr-Debug: 1
    Content-Length: 275
    
    {
            "name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    	"cloudImageId": "vm-12345",
    	"cloudLocation": "datacenter-21",
    	"cloudPlatform": "vmware",
    	"architecture": "x86_64",
    	"os": "ubuntu-16-04",
    	"cloudFeatures": {
                "type": "VmwareImageCloudFeatures",
                 "vCenterHost": "vcenter.dev.vmware.scalr.cloud"
    	}
    }
    
    
    HTTP/1.1 201 Created
    Server: nginx/1.12.2
    Date: Wed, 14 Feb 2018 14:15:54 GMT
    Content-Type: application/json; utf-8
    Content-Length: 1007
    Connection: keep-alive
    Vary: Accept-Encoding
    
    {
        "meta": {
        "requestId": "21efcb27-d0f3-4a39-867c-1cc745b0359f",
    		"stringToSign": "POST\n2018-02-14T14:15:54Z\n\/api\/v1beta0\/account\/1\/images\n\n{\"name\":\"mbeh1-ubuntu1604-devel-17102017-vmware\",\"cloudImageId\":\"vm-12345\",\"cloudLocation\":\"datacenter-21\",\"cloudPlatform\":\"vmware\",\"architecture\":\"x86_64\",\"os\":\"ubuntu-16-04\",\"cloudFeatures\":{\"type\":\"VmwareImageCloudFeatures\",\"vCenterHost\":\"vcenter.dev.vmware.scalr.cloud\"}}"
    	},
    	"data": {
        "id": "d4145027-297d-4f80-93e1-534c5ee0cb24",
    		"name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    		"cloudImageId": "vm-12345",
    		"cloudLocation": "datacenter-21",
    		"cloudPlatform": "vmware",
    		"added": "2018-02-14T14:15:54Z",
    		"lastUsed": null,
    		"scalrAgentInstalled": true,
    		"cloudInitInstalled": false,
    		"architecture": "x86_64",
    		"size": null,
    		"deprecated": false,
    		"source": "Manual",
    		"status": "active",
    		"statusError": null,
    		"scope": "account",
    		"os": {
            "id": "ubuntu-16-04"
    		},
    		"cloudFeatures": {
                            "type": "VmwareImageCloudFeatures",
    			"vCenterHost": "vcenter.dev.vmware.scalr.cloud"
    		}
    	},
    	"warnings": []
    }
  • Field image.type for AWS images was replaced with cloudFeatures.virtualization=hvm|paravirtual

    After:

    POST http://SCALR/api/v1beta0/account/1/images HTTP/1.1
    Content-Type: application/json; charset=utf-8
    X-Scalr-Key-Id: APIK12345
    X-Scalr-Date: 2018-02-14T14:29:55Z
    X-Scalr-Signature: ....
    X-Scalr-Debug: 1
    Content-Length: 183
    
    {
             "name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    	"cloudImageId": "ec-image2",
    	"cloudLocation": "us-east-1",
    	"cloudPlatform": "ec2",
    	"architecture": "x86_64",
    	"os": "ubuntu-16-04",
    	"type": "ebs"
    }
    
    HTTP/1.1 201 Created
    Server: nginx/1.12.2
    Date: Wed, 14 Feb 2018 14:29:55 GMT
    Content-Type: application/json; utf-8
    Content-Length: 1008
    Connection: keep-alive
    Vary: Accept-Encoding
    
    {
        "meta": {
        "requestId": "706c1886-58aa-4337-9f6f-9f06feef5baf",
    		"stringToSign": "POST\n2018-02-14T14:29:55Z\n\/api\/v1beta0\/account\/1\/images\n\n{\"name\":\"mbeh1-ubuntu1604-devel-17102017-vmware\",\"cloudImageId\":\"ec-image2\",\"cloudLocation\":\"us-east-1\",\"cloudPlatform\":\"ec2\",\"architecture\":\"x86_64\",\"os\":\"ubuntu-16-04\",\"type\":\"ebs\"}"
    	},
    	"data": {
                    "id": "140b0d86-8dc3-4e9f-8f99-f86372845b18",
    		"name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    		"cloudImageId": "ec-image2",
    		"cloudLocation": "us-east-1",
    		"cloudPlatform": "ec2",
    		"added": "2018-02-14T14:29:55Z",
    		"lastUsed": null,
    		"scalrAgentInstalled": true,
    		"cloudInitInstalled": false,
    		"architecture": "x86_64",
    		"size": null,
    		"deprecated": false,
    		"source": "Manual",
    		"status": "active",
    		"statusError": null,
    		"scope": "account",
    		"os": {
                       "id": "ubuntu-16-04"
    		},
    		"cloudFeatures": {
                            "type": "AwsImageCloudFeatures",
    			"virtualization": "paravirtual"
    		}
    	},
    	"warnings": [{
                    "code": "Deprecated",
    		"message": "Property 'Image.type' is deprecated and will be removed soon. Use 'cloudFeatures' instead."
    	}]
    }
    
    POST http://SCALR/api/v1beta0/account/1/images HTTP/1.1
    Content-Type: application/json; charset=utf-8
    X-Scalr-Key-Id: APIK1234
    X-Scalr-Date: 2018-02-14T14:26:38Z
    X-Scalr-Signature: V1-HMAC-SHA256 ....
    X-Scalr-Debug: 1
    Content-Length: 249
    
    {
            "name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    	"cloudImageId": "ec-image",
    	"cloudLocation": "us-east-1",
    	"cloudPlatform": "ec2",
    	"architecture": "x86_64",
    	"os": "ubuntu-16-04",
    	"cloudFeatures": {
                    "type": "AwsImageCloudFeatures",
    		"virtualization": "paravirtual"
    	}
    }
    
    
    HTTP/1.1 201 Created
    Server: nginx/1.12.2
    Date: Wed, 14 Feb 2018 14:26:38 GMT
    Content-Type: application/json; utf-8
    Content-Length: 955
    Connection: keep-alive
    Vary: Accept-Encoding
          
    {
        "meta": {
        "requestId": "a80a9488-d18c-4b19-8822-d05742947f89",
    		"stringToSign": "POST\n2018-02-14T14:26:38Z\n\/api\/v1beta0\/account\/1\/images\n\n{\"name\":\"mbeh1-ubuntu1604-devel-17102017-vmware\",\"cloudImageId\":\"ec-image\",\"cloudLocation\":\"us-east-1\",\"cloudPlatform\":\"ec2\",\"architecture\":\"x86_64\",\"os\":\"ubuntu-16-04\",\"cloudFeatures\":{\"type\":\"AwsImageCloudFeatures\",\"virtualization\":\"paravirtual\"}}"
    	},
    	"data": {
                    "id": "e1359b29-5757-4a2a-aa9e-7d6a796eab40",
    		"name": "mbeh1-ubuntu1604-devel-17102017-vmware",
    		"cloudImageId": "ec-image",
    		"cloudLocation": "us-east-1",
    		"cloudPlatform": "ec2",
    		"added": "2018-02-14T14:26:38Z",
    		"lastUsed": null,
    		"scalrAgentInstalled": true,
    		"cloudInitInstalled": false,
    		"architecture": "x86_64",
    		"size": null,
    		"deprecated": false,
    		"source": "Manual",
    		"status": "active",
    		"statusError": null,
    		"scope": "account",
    		"os": {
                         "id": "ubuntu-16-04"
    		},
    		"cloudFeatures": {
                           "type": "AwsImageCloudFeatures",
    			"virtualization": "paravirtual"
    		}
    	},
    	"warnings": []
    }

7.7.11

Release Date: 06/Feb/18

New Feature

Improvement

Bug

7.7.10

Release Date: 19/Jan/18

New Feature

Improvement

Bug


1. BC Change in behavior

Before: The following restrictions applied to tags: Tag name should contain only lowercase letters, numbers and dashes. Length from 3 to 10 chars
After: The following restrictions apply to tags: Tag name should contain only lowercase letters, numbers and dashes, started and finished with letter or numeral. Length from 3 to 10 chars


libssh2: 1.4.3 -> 1.8.0
php-ssh2: 1.0 -> 1.1.2
php: 7.7.11 -> 7.7.13
openssl: 1.0.2k -> 1.0.2m
nginx: 1.13.5 -> 1.13.7
mysql: 5.6.33 -> 5.6.38

7.7.9

Release Date: 20/Dec/17

New Feature

Improvement

Bug


1. BC Change which required an user action on deploy

When a Server is launched:
Before: Scalr has tried to fetch a Security Groups from the corresponding Network's Resource Group

After: Scalr is trying to fetch a Security Groups from the corresponding Application's Resource Group


2. BC Change in behavior

Before: When a Farm is terminated, all Farm's Servers are terminated immediately ignoring a configurable timeout.

After: After a Farm is terminated, all corresponding Servers stay in pending terminate state for the time which is specified in the scalr.system.server_terminate_timeout scalr configuration file.

7.7.8

Release Date: 13/Dec/17

Bug

7.7.7

Release Date: 07/Dec/17


New Feature

Improvement

Bug


1. BC Change in APIv2

Before: A field FarmRole.networking.networks was optional for CREATE / UPDATE Farm Roles or Farm Templates.

After: A field FarmRole.networking.networks is mandatory for the Openstack platform for CREATE / UPDATE Farm Roles or Farm Templates.


2. BC Change in APIv2

 Role Object.  Role.deprecated has been replaced with inherited object with the information about deprecation. The field Role.deprecated became read only.


Before:

     {
	    "deprecated": true
     }
    

After:

    {
	    "deprecated": {
		  "deprecated": "2017-12-07T09:52:37Z",
		  "replacement": {
			"id": 41402
		  }
	    }      
    }
   

It is impossible to deprecate a Role through the PATCH /api/v1beta0/user/envId/roles/roleId/ action.

A new POST /api/v1beta0/user/envId/roles/roleId/actions/deprecate action must be used instead.

Before:

PATCH http://SCALR/api/v1beta0/user/5/roles/38775/ HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK4IZNYS0UXAJDIENJ
X-Scalr-Date: 2017-12-07T10:12:13Z
X-Scalr-Signature: ....
Content-Length: 19
{"deprecated":true}

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Thu, 07 Dec 2017 10:12:13 GMT
Content-Type: application/json; utf-8
Content-Length: 428
{
	"meta": {
		"requestId": "86ebe675-655b-4686-a977-6e080c458fb9"
	},
	"data": {
		"id": 38775,
		"name": "base-centos6-devel",
		"description": "Development role",
		"quickStart": false,
		"deprecated": true,
		"useScalrAgent": true,
		"scope": "environment",
		"os": {
			"id": "centos-6-x"
		},
		"category": {
			"id": 9
		},
		"builtinAutomation": ["base", "chef"]
	},
	"warnings": []
}

After:

POST http://SCALR/api/v1beta0/user/5/roles/38775/actions/deprecate HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK12345
X-Scalr-Date: 2017-12-07T10:04:12Z
X-Scalr-Signature: .....
Content-Length: 40
{
	"deprecate": true,
	"replacement": {
		"id": 41402
	}
}

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Thu, 07 Dec 2017 10:04:13 GMT
Content-Type: application/json; utf-8
Content-Length: 530
Connection: keep-alive
{
	"meta": {
		"requestId": "c5ca9c46-c7c7-415f-bbe6-b9e9699ef208",
	},
	"data": {
		"id": 38775,
		"name": "base-centos6-devel",
		"description": "Development role",
		"quickStart": false,
		"deprecated": {
			"deprecated": "2017-12-07T10:04:13Z",
			"replacement": {
				"id": 41402
			}
		},
		"useScalrAgent": true,
		"scope": "environment",
		"os": {
			"id": "centos-6-x"
		},
		"category": {
			"id": 9
		},
		"builtinAutomation": ["base", "chef"]
	},
	"warnings": []
}

Endpoint GET /api/v1beta0/user/envId/roles/ (all scopes) does not support a filter by a deprecated field (?deprecated=true|false)

7.7.6

Release Date: 30/Nov/17


New Feature

Improvement

Bug


php-memcached: 2.2.0 -> 3.0.3
php-pecl_http: 2.6.0 -> 3.1.0
php-propro: 1.0.0 -> 2.0.1
php-raphf: 1.1.0 -> 2.0.0
php-ssh2: 0.12 -> 1.0
php-yaml: 1.3.0 -> 2.0.0
php-zmq: 1.1.2 -> 1.1.3
php: 5.6.30 -> 7.1.11
apache: 2.4.25 -> 2.4.29


1. BC Change in APIv2

Previously on Account Scope was not possible to set up Payer Account which Cloud Credentials was defined on Admin Scope.
Now it is possible to set up Payer Account with credentials that defined on either Scopes (Account, Admin).

AwsDetailedBilling object:


Before:

{
  "bucket": "string", 
  "cloudLocation": "string", 
  "payerAccount": "string"
}

After:

{
  "bucket": "string", 
  "cloudCredentials": {
    "id": "string"
  }, 
  "cloudLocation": "string", 
  "enabled": true,
}
  • Added property enabled (default is false)
  • Removed property payerAccount
  • Added property cloudCredentials . This property should countain identifier of the Billing creadentials. Empty 'cloudCredentials' available - means current billing credentials to use.

2. BC Change in APIv2

Changed warning format for deprecated endpoints:

Before:

GET http://SCALR/api/v1beta0/account/roles/25052 HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK12345
X-Scalr-Date: 2017-11-10T15:41:51Z
X-Scalr-Signature: ...

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Fri, 10 Nov 2017 15:41:52 GMT
Content-Type: application/json; utf-8
Content-Length: 409

{
	"meta": {
		"requestId": "d1fb4b05-4ac7-4355-b931-9b65f93b5d4f"
	},
	"data": {
		"id": 25052,
		"name": "base64-windows2008",
		"description": "",
		"quickStart": true,
		"deprecated": false,
		"useScalrAgent": true,
		"quickStartGroup": "Base",
		"scope": "scalr",
		"os": {
			"id": "windows-2008"
		},
		"category": {
			"id": 1
		},
		"builtinAutomation": ["base"]
	},
	"warnings": [{
		"code": "301 Moved Permanently",
		"message": "Location \/api\/v1beta0\/account\/1\/roles\/25052"
	}]
}

After:

GET http://SCALR/api/v1beta0/account/roles/25052 HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK12345
X-Scalr-Date: 2017-11-10T15:37:58Z
X-Scalr-Signature: ...

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Fri, 10 Nov 2017 15:37:58 GMT
Content-Type: application/json; utf-8
Content-Length: 404

{
	"meta": {
		"requestId": "5682eb1d-8bc9-4827-a0d6-0229b3c792a9"
	},
	"data": {
		"id": 25052,
		"name": "base64-windows2008",
		"description": "",
		"quickStart": true,
		"deprecated": false,
		"useScalrAgent": true,
		"quickStartGroup": "Base",
		"scope": "scalr",
		"os": {
			"id": "windows-2008"
		},
		"category": {
			"id": 1
		},
		"builtinAutomation": ["base"]
	},
	"warnings": [{
		"code": "MovedPermanently",
		"message": "Location \/api\/v1beta0\/account\/1\/roles\/25052"
	}]
}

7.7.5

Release Date: 06/Nov/17

New Feature

Improvement

Bug


1. BC change in APIv2.

Farm role creation without explicitly specified FarmRole.scaling.enabled = true won't have auto-scaling enabled by default. If you want Scalr to launch instances automatically, you need to explicetly pass FarmRole.scaling.enabled = true to the API call or specify it in Farm Template.


Farms / Farm Roles: Create 


Before:

POST http://my.scalr.com/api/v1beta0/user/5/farms/9800014/farm-roles HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK12345
X-Scalr-Date: 2017-10-30T15:19:47Z
X-Scalr-Signature: ....
Content-Length: 185
{
	"alias": "farm-role-example",
	"cloudPlatform": "ec2",
	"cloudLocation": "us-east-1",
	"role": {
		"id": 64080
	},
	"security": {
		"securityGroups": [{
			"id": "sg-4faa5424"
		}]
	},
	"instanceType": {
		"id": "m1.small"
	}
}

HTTP/1.1 201 Created
Server: nginx/1.12.1
Date: Mon, 30 Oct 2017 15:19:49 GMT
Content-Type: application/json; utf-8
Content-Length: 957
{
	"meta": {
		"requestId": "d9c691e5-8182-4faf-a5f6-dae148057088"
	},
	"data": {
		"id": 74,
		"alias": "farm-role-example",
		"farm": {
			"id": 9800014
		},
		"role": {
			"id": 64080
		},
		"cloudPlatform": "ec2",
		"cloudLocation": "us-east-1",
		"availabilityZones": [],
		"instanceType": {
			"id": "m1.small"
		},
		"scaling": {
			"considerSuspendedServers": "running",
			"enabled": true,
			"maxInstances": 2,
			"minInstances": 1,
			"rules": [],
			"scalingBehavior": "launch-terminate"
		},
		"networking": {
			"hostname": {
				"type": "TemplateHostnameConfiguration"
			}
		},
		"security": {
			"securityGroups": [{
				"id": "sg-4faa5424"
			}, {
				"id": "sg-307ea059"
			}, {
				"id": "sg-4c19c224"
			}]
		},
		"cloudFeatures": {
			"type": "AwsCloudFeatures",
			"ebsOptimized": false
		}
	},
	"warnings": []
}

After:

POST http://my.scalr.com/api/v1beta0/user/5/farms/9800014/farm-roles HTTP/1.1
Content-Type: application/json; charset=utf-8
X-Scalr-Key-Id: APIK12345
X-Scalr-Date: 2017-10-30T15:26:18Z
X-Scalr-Signature: ....
Content-Length: 185
{
	"alias": "farm-role-example",
	"cloudPlatform": "ec2",
	"cloudLocation": "us-east-1",
	"role": {
		"id": 64080
	},
	"security": {
		"securityGroups": [{
			"id": "sg-4faa5424"
		}]
	},
	"instanceType": {
		"id": "m1.small"
	}
}

HTTP/1.1 201 Created
Server: nginx/1.12.1
Date: Mon, 30 Oct 2017 15:26:20 GMT
Content-Type: application/json; utf-8
Content-Length: 811
Connection: keep-alive
{
	"meta": {
		"requestId": "945ce4ef-34e4-4f02-b410-fe238367c7e6"
	},
	"data": {
		"id": 74,
		"alias": "farm-role-example",
		"farm": {
			"id": 9800014
		},
		"role": {
			"id": 64080
		},
		"cloudPlatform": "ec2",
		"cloudLocation": "us-east-1",
		"availabilityZones": [],
		"instanceType": {
			"id": "m1.small"
		},
		"networking": {
			"hostname": {
				"type": "TemplateHostnameConfiguration"
			}
		},
		"security": {
			"securityGroups": [{
				"id": "sg-4faa5424"
			}, {
				"id": "sg-307ea059"
			}, {
				"id": "sg-4c19c224"
			}]
		},
		"cloudFeatures": {
			"type": "AwsCloudFeatures",
			"ebsOptimized": false
		}
	},
	"warnings": []
}


memcached: 1.4.22 -> 1.4.39 


7.7.4

Release Date: 23/Oct/17

This release is dedicated to beautiful Demyan, son of Oleksandr and Roksolana Timoshyn. On behalf of the entire Scalr team, we wish you the very best.

New Feature

Improvement

Bug


1. BC change.

VMware storage policies was changed.

Before: vmware.datastores, vmware.storage_pods

After: vmware.storage.placements


7.7.3

Release Date: 12/Oct/17

New Feature

Improvement

Bug


Python libraries:

  • Added influxdb 4.1.1
  • Added python-dateutil 2.6.1

PHP libraries:

  • Added symphony/cache 3.3.9


Service changes:

  • The proxy component is now using nginx by default.

Updated software:

  • chef-gem: 12.3.0 → 12.5.1

New software:

  • erlang 20.0
  • influxdb 1.3.5
  • nginx 1.13.5
  • rabbitmq 3.6.12
  • influxdb-gem 0.3.17


1. BC change in behavior.

Suspending servers.

Openstack & VMWare:
Before:

  • API : Action `suspend` suspends the Virtual machine.
  • UI : Action `suspend` allows to select a method `power off`

After:

  • API : Action `suspend` powers off the Virtual machine by default.
  • UI : Action `suspend` powers off the virtual machine by default (method selection is not available)


2. BC change in Audit Log

Changes in user.auth.login event:

Before

"user.auth.login.teams": {10: "foo", 12: "bar"}

After

"user.auth.login.teams": [{"id": 10, "name": "foo"}, {"id": 12, "name": "bar"}]

7.7.2

Release Date: 20/Sep/17

This release is dedicated to beautiful Polina, daughter of Andrey and Yuliya Penchuk. On behalf of the entire Scalr team, we wish you the very best.

New Feature

Improvement

Bug


Python

updated requests to 2.17.3
updated urllib3 to 1.21.1
removed google-api-python-client 
removed oauth2client

PHP

updated pecl_http to 2.6.0

System

updated curl to 7.54.1


1. BC change in APIv2.

ScalingConfiguration object
Added default value to ScalingConfiguration.minInstances field equals 1
Added default value to ScalingConfiguration.maxInstances field equals 2
Endpoint /:envId/farm-roles/:farmRoleId/scaling/* Now it will validate an object stucture. 

Before

PATCH http://6fb20e698068.test-env.scalr.com/api/v1beta0/user/5/farm-roles/68/scaling HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIK12345 
X-Scalr-Date: 2017-06-14T13:57:35Z 
X-Scalr-Signature: .... 
Content-Length: 20 
{"fakeField":"test"}

HTTP/1.1 200 OK 
Server: nginx/1.12.0 
Date: Wed, 14 Jun 2017 13:59:22 GMT 
Content-Type: application/json; utf-8 
Content-Length: 218 
{
	"meta": {
		"requestId": "af683f73-c2f1-467c-a2e5-572777ebbf94"
	},
	"data": {
		"enabled": true,
		"minInstances": 1,
		"maxInstances": 1,
		"scalingBehavior": "launch-terminate",
		"considerSuspendedServers": "running",
		"rules": []
	},
	"warnings": []
}


After

PATCH http://54022340b9f7.test-env.scalr.com/api/v1beta0/user/5/farm-roles/68/scaling HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIK12345 
X-Scalr-Date: 2017-06-14T13:59:14Z 
X-Scalr-Signature: provided
Content-Length: 20 
{"fakeField":"test"}

HTTP/1.1 400 Bad Request 
Server: nginx/1.12.0 
Date: Wed, 14 Jun 2017 14:01:01 GMT 
Content-Type: application/json; utf-8 
Content-Length: 177 

{
	"meta": {
		"requestId": "8ef9cced-8621-4296-a628-0ae270d30fe8"
	},
	"errors": [
		{
			"code": "InvalidStructure",
			"message": "You are trying to set property 'fakeField' which does not exist."
		}
	]
}


Error code has been changed when ScalingConfiguration.minInstances more than ScalingConfiguration.maxInstances

Before: UnacceptableObjectConfiguration

After: ConfigurationMismatch


If Farm Role's Scaling has enabled: false, then Scaling subset will not be presented as the part of the response and you cannot modify it.

HTTP/1.1 422
"errors":[{"code":"ConfigurationMismatch","message":"Can not modify disabled scaling configuration. Expected 'scaling.enabled' property value."}]


To change any Scaling related property it should be enabled  (scaling.enabled must be true)

2. BC change in APIv2
AzureCloudCredentials object: property : tenantName renamed to tenantId
Before:

{
  "cloudCredentialsType": "AzureCloudCredentials", 
  "description": "string", 
  "id": "string", 
  "name": "string", 
  "provider": "string", 
  "scope": "scalr", 
  "status": "disabled", 
  "subscription": "string", 
  "tenantName": "string"
}

After:

{
  "cloudCredentialsType": "AzureCloudCredentials", 
  "description": "string", 
  "id": "string", 
  "name": "string", 
  "provider": "string", 
  "scope": "scalr", 
  "status": "disabled", 
  "subscription": "string", 
  "tenantId": "string"
}


3. BC change in System Global Variables

SCALR_IS_SUSPEND on HostDown event was NULL in case if server was terminated. Starting from Scalr 7.7.2 it will be "0" if server was terminated and "1" if it was suspended. 

7.7.1

Release Date: 11/Aug/17

New Feature

Improvement

Bug


1. BC change in behavour.

Before:

Cloud resources that are created automatically by scalr inherit owbershop from the farm and any further changes in ownership are not affecting this cloud resources

After:

Cloud resources that are created automatically by scalr and will follow all changes in Farm ownership.

2. BC change in APIv2

Security groups in API response will reflect policies.

Changes in secruity groups output for SGs that are not yet created on the cloud:

Before:

"security": {
	"securityGroups": [{
		"id": "sg-3b45eb40"
	}, {
		"id": "not-existed.group"
	}]
}

After:

"security": {
	"securityGroups": [{
		"id": "sg-3b45eb40"
	}, {
		"name": "not-existed.group"
	}]
}

7.7.0

Release Date: 24/Jul/17

New Feature

Improvement

Bug


1. BC change in APIv2.

All account scope APIv2 endpoints have been changed. Now URL must contain identifier of the account.

Before: /api/v1beta0/account/roles/

After: /api/v1beta0/account/:accountId/roles/

For example: /api/v1beta0/account/2/roles/, where 2 is identifier of the account.

2. BC changes in behavior

Before: Azure Security Group management was restricted by policies.
After: Azure Security Group management is restricted by Access Control List (ACL).

3. BC change in APIv2

Field type of the Server object has been renamed to instanceType and it referes to InstanceTypeForeignKey object

Before

{
	"meta": {
		"requestId": "9e175505-4f52-4a66-bcb9-cc15fcc1dfce"
	},
	"data": {
		"id": "f6bd249c-68a2-4069-924d-60858771f8f0",
		"cloudServerId": "6b65d5a2-2ce5-4e98-a031-6ab5212a877e",
		"cloudLocation": "Region-One",
		"type": "1GB Standard Instance",
		...
		"hostname": "f6bd249c-68a2-4069-924d-60858771f8f0",
		"launchReason": "Farm launched"
	},
	"warnings": []
}

After:

{  
   "meta":{  
      "requestId":"9e175505-4f52-4a66-bcb9-cc15fcc1dfce"
   },
   "data":{  
      "id":"f6bd249c-68a2-4069-924d-60858771f8f0",
      "cloudServerId":"6b65d5a2-2ce5-4e98-a031-6ab5212a877e",
      "cloudLocation":"Region-One",
      "instanceType":{  
         "id":"2"
      },
      ...
      "hostname":"f6bd249c-68a2-4069-924d-60858771f8f0",
      "launchReason":"Farm launched"
   },
   "warnings":[  

   ]
}

4. BC Change in behavior

Due to changes in GCE tag concept (now it's called as 'network tag' and mostly using for the networking purposes) all tags will be eliminated for the newly created instances (with the exception of 'scalr' tag as base security group attribute)

5. BC Change in APIv2

The type of the field OrchestrationRule.id has been changed to string (uuid).

A list of allowed values of OrchestrationRule.target field have been changed. NullTarget isn't allowed anymore. To disable specified orchestration you should set a false value for the OrchestrationRule.enabled field.

SelectedFarmRolesTarget was removed. As an alternative solution SelectedFarmRolesCondition object should be set to the field FarmTarget.conditions.

6. BC Change in behavior

Before: The MAX number of Servers in the Farm Role's scaling setting was limited by 400.

After: The MAX number of Servers is not limited anymore in the Farm Role's scaling setting. New Quotas feature is designed to limit this option for the specified scope (account or environment).


apr: 1.5.1 -> 1.5.2
cairo: 1.12.18 -> 1.14.8
freetype: 2.5.5 -> 2.7.1
gettext: 0.18.3.1 -> 0.19.8
glib: 2.42.1 -> 2.52.2
harfbuzz: 0.9.37 -> 1.4.6
libedit: 3.0 -> 3.1
libffi: 3.0.13 -> 3.2.1
libiconv: 1.14 -> 1.15
libldap: 2.4.40 -> 2.4.44
liblzma: removed
libpng: 1.5.17 -> 1.6.29
logrotate: 3.9.1 -> 3.12.2
m4: removed
pango: 1.36.8 -> 1.40.5
pcre: 8.31 -> 8.40
php-rrd: removed
putty: 0.64 -> 0.69
python-m2crypto: removed
rrdtool: 1.4.9 -> 1.6.0
sqlite: 3.8.9.0 -> 3.18.0.0
curl 7.34.0

php-yaml 1.1.1 -> 1.3.0


  • updated google-api-php-client to v2.2.0

7.6.3

Release Date: 20/Jun/17

New Feature

Improvement

Bug


Added headers

Header add strict-transport-security “max-age=31536000; includeSubDomains”
Header add x-frame-options “SAMEORIGIN”
Header add X-Content-Type-Options “nosniff”
Header add X-XSS-Protection “1; mode=block”
Header add Referrer-Policy “no-referrer”


1. BC change in APIv2. Network identifier for GCE cloud was changed.

Before:

POST /api/v1beta0/user/5/farms/9800016/farm-roles/ HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIK4I12345 
X-Scalr-Date: 2017-06-19T16:18:49Z 
X-Scalr-Signature: PROVIDED  
Content-Length: 264 
{"alias":"gce-farm-role-test","cloudPlatform":"gce","role":{"id":"64080"},"cloudLocation":"us-central1","availabilityZones":["us-central1-a"],"instanceType":{"id":"n1-standard-1"},"networking":{"networks":[{"id":"network-test"}],"subnets":[{"id":"network-test"}]}} 

HTTP/1.1 201 Created 
Server: nginx/1.12.0 
Date: Mon, 19 Jun 2017 16:18:50 GMT 
Content-Type: application/json; utf-8 
Content-Length: 573 
Connection: keep-alive 
Vary: Accept-Encoding 
X-Powered-By: Scalr API/1beta0 
X-Original-Content-Length: 573 

{"meta":{"requestId":"46ba2685-91dc-4910-bc32-86664115e669"},"data":{"id":77,"alias":"gce-farm-role-test","farm":{"id":9800016},"role":{"id":64080},"cloudPlatform":"gce","cloudLocation":"us-central1","availabilityZones":["us-central1-a"],"instanceType":{"id":"n1-standard-1"},"scaling":{"enabled":true,"minInstances":1,"maxInstances":2,"scalingBehavior":"launch-terminate","considerSuspendedServers":"running","rules":[]},"networking":{"networks":[{"id":"network-test"}],"subnets":[{"id":"network-test"}],"hostname":{"type":"TemplateHostnameConfiguration"}}},"warnings":[]}

After:

POST /api/v1beta0/user/5/farms/9800016/farm-roles/ HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIK412345 
X-Scalr-Date: 2017-06-19T16:27:55Z 
X-Scalr-Signature: PROVIDED  
Content-Length: 324 
{"alias":"gce-farm-role-test","cloudPlatform":"gce","role":{"id":"64080"},"cloudLocation":"us-central1","availabilityZones":["us-central1-a"],"instanceType":{"id":"n1-standard-1"},"networking":{"networks":[{"id":"scalr-labs\/global\/networks\/network-test"}],"subnets":[{"id":"network-test"}]}}

HTTP/1.1 201 Created 
Server: nginx/1.12.0 
Date: Mon, 19 Jun 2017 16:27:57 GMT 
Content-Type: application/json; utf-8 
Content-Length: 633 
Connection: keep-alive 
Vary: Accept-Encoding 
X-Powered-By: Scalr API/1beta0 
X-Original-Content-Length: 633 

{"meta":{"requestId":"e145a35e-c175-44ac-a69e-237eb584394d"},"data":{"id":98,"alias":"gce-farm-role-test","farm":{"id":9800016},"role":{"id":64080},"cloudPlatform":"gce","cloudLocation":"us-central1","availabilityZones":["us-central1-a"],"instanceType":{"id":"n1-standard-1"},"scaling":{"enabled":true,"minInstances":1,"maxInstances":2,"scalingBehavior":"launch-terminate","considerSuspendedServers":"running","rules":[]},"networking":{"networks":[{"id":"scalr-labs\/global\/networks\/network-test"}],"subnets":[{"id":"network-test"}],"hostname":{"type":"TemplateHostnameConfiguration"}}},"warnings":[]}


7.6.2

Release Date: 9/Jun/17

New Feature

Improvement

Bug


1. BC change in APIv2

After: Clone Farm responds with 201 HTTP Status code. Before: It responded with 200.

After: Copy Image responds with 201 HTTP Status Code. Before: It responded with 200.


7.6.1

Release Date: 1/Jun/17

Improvement

Bug


1. BC change in behavior

Almost all services will not handle objects from the suspended Environments.

2. BC change in APIv1 and APIv2

Forbid terminating, suspending and resuming operations for all Servers from locked Farms.

3. BC change in APIv2

Farm.alias size will be validated and should not be more than 100 characters.

Requests like:

PATCH http://84a25f59c550.test-env.scalr.com/api/v1beta0/user/5/farm-roles/46/ HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIK12345678 
X-Scalr-Date: 2017-06-01T17:53:23Z 
X-Scalr-Signature: V1-HMAC-SHA256 12345678= 
Content-Length: 251 
{"alias":"new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value-new-very-looooong-alias-value"}

Responds with:
{
	"meta": {
		"requestId": "f1e990ce-2241-45d3-bd4a-77bc469ddc8c"
	},
	"errors": [{
		"code": "InvalidValue",
		"message": "The maximum length for property 'alias' is 100."
	}]
}

7.6.0

Release Date: 25/May/17

New Feature

Improvement

Bug


1. BC change in APIv2

Azure FarmRole object:

  • Field FarmRole.cloudFeatures.storageAccount - is optional now
  • Field FarmRole.availabilityZones[0] (availabilitySets). Managed availabilitySets cannot be used together with FarmRole.cloudFeatures.storageAccount

Changed HTTP code for some error situations: 422 -> 409

  • When on AWS Farm Roles field EphemeralStorage.template is used
  • When on AWS Farm Roles field RootStorageConfiguration.tempalte.sourceSnapshot is used
  • When size of the snapshot is bigger than PersistentStorageTemplate.tempalte.size field
  • When on AWS PersistentStorageTemplate.tempalte.sourceSnapshot snapshot is not encrypted but PersistentStorageTemplate.template.cloudFeatures.isEncrypted=true is passed

2. BC change in behavior

Before:
dateAdded - a date when the server was launched (created). It had been updated on every Server resume.
dateInitialized - a date when the server initially goes running. It had never been changed.

After:
dateAdded - a date when the server was launched (created). It won't be changed.
dateInitialized - a date when the server wen running for the last time (resume). It is updated after successful launch or resume.

3. BC change in behavior

In case if agent is not available API will return an error on attempt to execute Orchestration on the target server


  • updated apache-libcloud to 2.0

  • updated pbr to 3.0.1
  • added mitmproxy 0.18.2

7.5.3

Release Date: 27/Apr/17

For a summary see the Scalr Enterprise 7.5.3 Product Update blog post

New Feature

Improvement

Bug


  • updated cryptography to 1.8.1
  • updated apache-libcloud to 2.0.0rc2
  • removed m2crypto
  • removed pycrypto
  • added scalr/fatmouse

7.5.2

Release Date: 06/Apr/17

New Feature

Improvement

Bug


1. BC change in APIv2

FarmRole cloudFeatures.customSpecification field was renamed to cloudFeatures.customizationSpec.
Before:

"cloudFeatures": {
    "computeResource": "string", 
    "customSpecification": "string", 
    "dataStore": "string", 
    "folder": "string", 
    "hosts": [
      "string"
    ], 
    "resourcePool": "string", 
    "type": "VmwareCloudFeatures"
  }

After:

"cloudFeatures": {
    "computeResource": "string", 
    "сustomizationSpec": "string", 
    "dataStore": "string", 
    "folder": "string", 
    "hosts": [
      "string"
    ], 
    "resourcePool": "string", 
    "type": "VmwareCloudFeatures"
  }

7.5.1

Release Date: 21/Mar/17

New Feature

Improvement

Bug


  • docopt to 0.6.2
  • cherrypy to 10.1.1

7.5.0

Release Date: 02/Mar/17

New Feature

Improvement

Bug


BC сhanges in APIv2

FarmRole object was completely rediscovered

BeforeAfter
Renamed (with changes in structure in some cases)
FarmRole.platformFarmRole.cloudPlatform
FarmRole.instances.instanceType.idFarmRole.instanceType.id
FarmRole.placement.regionFarmRole.cloudLocation
FarmRole.placement.availabilityZonesFarmRole.availabilityZones
FarmRole.placement.vpcFarmRole.networking.network
FarmRole.placement.subnetsFarmRole.networking.subnets
Removed
FarmRole.instance
FarmRole.placement
FarmRole.placement.router
(object) PlacementConfiguration
(object) AwsVpcPlacementConfiguration
(object) AwsClassicPlacementConfiguration
Added
FarmRole.networking
FarmRole.bootstrapping
FarmRole.security
FarmRole.cloudFeatures
(object) NetworkConfiguration
(object) ChefServerBootstrapConfiguration
(object) ChefSoloBoostrapConfiguration
(object) SecurityConfiguration
(object) CloudFeatures


BC Changes in Farm's owner history

All history of the changes of owners and teams of the Farms are writing now to auditlog as farm.ownership_change event.



  • onelogin/php-saml to v2.10.4
  • adodb/adodb-php to v5.20.9


7.4.0

Release Date: 14/Feb/17

New Feature

Improvement

Bug


1. BC change in APIv2

ReadOnly properties must not be used in API requests. 
Before:
Request to create Farm


POST http://my.scalr.lo/api/v1beta0/user/5/farms/ HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIEXAMPLEKEY 
X-Scalr-Date: 2017-02-08T12:15:07Z 
Content-Length: 215 

{
	"name":"api-example-before",
	"description":"",
	"status":"terminated",
	"teams":[{
		"id":4,
		"name":"Users"
	}],
	"project":{
		"id":"96082d7c-1b16-4f8e-abde-0db37848db73"
	},
	"timezone":"Europe\/Moscow",
	"launchOrder":"sequential"
}


Response created Farm


{
	"meta": {
		"requestId": "7f0c2c4c-8894-4e4d-9d8f-8ad064bf4ecb"
	},
	"data": {
		"id": 9800017,
		"name": "api-example-before",
		"description": "",
		"status": "terminated",
		"owner": {
			"id": 2,
			"email": "test@scalr.com"
		},
		"teams": [{
			"id": 4,
			"name": "Users"
		}],
		"project": {
			"id": "96082d7c-1b16-4f8e-abde-0db37848db73"
		},
		"timezone": "Europe\/Moscow",
		"launchOrder": "sequential"
	},
	"warnings": []
}


After:
the same request to create Farm


POST http://my.scalr.lo/api/v1beta0/user/5/farms/ HTTP/1.1 
Content-Type: application/json; charset=utf-8 
X-Scalr-Key-Id: APIEXAMPLEKEY 
X-Scalr-Date: 2017-02-08T12:23:11Z  
Content-Length: 214 

{
	"name":"api-example-after",
	"description":"",
	"status":"terminated",
	"teams":[{"id":4,"name":"Users"}],
	"project":{"id":"96082d7c-1b16-4f8e-abde-0db37848db73"},
	"timezone":"Europe\/Moscow",
	"launchOrder":"sequential"
}

You will get the next error message with http 400 code


 {
 	"meta": {
 		"requestId": "25d5852c-2676-4e3b-a683-17578003b336"
 	},
 	"errors": [{
 		"code": "InvalidStructure",
 		"message": "You are trying to set read-only property 'status'."
 	}]
 }


2. BC Change in APIv2

Before: The following property values of objects returned as an integer instead of boolean type:

  • Script
    • blockingDefault
  • Image
    • scalrAgentInstalled
    • cloudInitInstalled]
  • OpenstackCloudCredentials
    • sslVerification
  • GlobalVariable
    • hidden
    • locked

After: The following property values of objects return as boolean type:

  • Script
    • blockingDefault
  • Image
    • scalrAgentInstalled
    • cloudInitInstalled]
  • OpenstackCloudCredentials
    • sslVerification
  • GlobalVariable
    • hidden
    • locked


7.3.2

Release Date: 30/Jan/17


New Feature

Improvement

Bug


  • boto to 2.45.0


  • Apache to 2.4.25
  • OpenSSL to 1.0.2k
  • PHP to 5.6.30


7.3.1

Release Date: 23/Jan/17


Improvement

Bug


IMPORTANT UPDATE: VPC Configuration Moves from FARM to FARM ROLE - User action may be required


  • google/apiclient to v2.1.1
  • php-amqplib/php-amqplib to 2.6.3


7.3.0

Release Date: 10/Jan/17


New Feature

Improvement

Bug

openssl - 1.0.1u
php - 5.6.28


7.2.2

Release Date: 12/Dec/16

Improvement

Bug


7.2.1

Release Date: 05/Dec/16

Improvement

Bug


Roles with Scalr Agent v. <= 0.13.6 with XML type of messages are not supported anymore


7.2.0

Release Date: 01/Dec/16

New Feature

Improvement

Bug


  • pyvmomi to 6.5


7.1.1

Release Date: 14/Nov/16

Improvement

Bug

7.1.0

Release Date: 31/Oct/16

New Feature

Improvement

Bug


1. BC change in APIv2:

If object violates Scalr Policy, API will return 409 ApiErrorResponse with PolicyViolation code. Previously it returned different error codes.


  • onelogin/php-saml to 2.10.1


7.0.0

Release Date: 05/Oct/16

New Feature

Improvement

Bug

1. BC change in Policy Engine:

Lease Management setting has become one of the Policy Engine policy and can be configured with Policy Group of Reclamation type. Therefore users which did not have access to Governance but had access to Lease Configuration will loose access to Lease Management.


  • justinrainbow/json-schema to 3.0.1


Previous versions