Skip to content

Changelog

3 August 2021

PORTAL

  • Update: Added missing Colocation Network information to the details pages
  • Update: If a Dedicated Server is not configured with an aggregated network usage graph, we generate one based the sum of all network interface usages of a machine.
  • Update: Ticket overview page; better column distribution.
  • Update: Application Build Wizard - refresh files on a CDN origin automatically when possible, and added a refresh icon to manually reload the list of files available on a CDN origin.
  • Update: Utility Template edit - there was an error upon saving a template due to missing data. The data was there, but not populated by FE into the form.

API

  • Update: API key failures logging. Where applicable and possible, we show these errors to clients a well, in the activity log.
  • Update: ApplicationInstall related API endpoints have been marked as deprecated (were already gone from Portal). Can be removed in near future. The CDN is now the only way to upload and distribute game builds.

6 July 2021

PORTAL

  • Fix: Updating ApplicationBuild labels through the portal did not always happen correctly.
  • Fix: Submitting a cross connect order failed due to Ticket Category name changes.

API

  • Fix: Requests on the endpoint DELETE /applicationInstance could result in a 500 error. This has been fixed by applying an optimization resulting in fetching much less data from the database which was the cause of the crash.

Background Services

  • Update: The scaler logic has been refined: the internal virtual buffer sizing was improved; scaler will no longer scale down instances immediately, allowing newly created application instances to be kept online for longer, giving less problems with allocation of instances, where the scaler is also actively checking if game instances are online. If this is not the case, and when they are in setup status they will be destroyed. Otherwise if instances are in an offline state they will be restarted. This makes the system more reliable for game publishers and will involve less manual work for the publisher.
  • Update: Task execution (connection) retry. If a task was not yet running, it will be started at a later time. If the task was already running and it needs to move to the next action in the Task, but it could not proceed, the Task will be timed out. The scaler will then retry the whole Task a little bit later.
  • Fix: VM instance cores were not always calculated correctly. This functionality has been refactored to be correct and predictable.

28 June 2021

PORTAL

  • New: an additional "Private Network Port" application property has been added. This allows one to differentiate between public and private ports for a game server. The private ports can be put behind an ACL, preventing the public from reaching it. Useful for management ports. The range of ports available to the private ports goes from 30000 - 49151.
  • Update: The range of the public ports has changed to 10240 - 29999.

API

  • Fix: When there is no utility template assigned to a Fleet and then you add one while there are instances deployed in the fleet, the utility template would not be saved.

Background Services

  • Fix: under certain circumstances, a newly deployed application instance could get stuck in Setup status forever.
  • Fix: when deploying the maximum amount of instances onto a host, its utilities - if defined - would not (always) be deployed.

8 June 2021

PORTAL

  • Update: Patch Job, design fixes and more accurate status indicator and other improvements
  • Update: Colocation network usage graph on the back of the flip card now shows usage for the last 12 months

API

11 May 2021

PORTAL

  • Update: the flip cards on the main details tabs of the colocation and connectivity services now have working usage graphs on the back of the cards (flip the cards to see them)
  • Update: the colocation prices have been added to the details pages
  • Update: additional columns have been added to the Colocation services overview:
    • Contract Start & End
    • Monthly Cost
  • Update: connectivity service endpoint traffic graphs are only shown for those endpoints that we can monitor. Private endpoints will not have graphs because we don't monitor those connections
  • Update: PatchJob auto-update logic for running PatchJobs has been improved for both the overview and detials pages in order to properly show you the most up-to-date information
  • Update: many layout improvements have been applied

API

  • Fix: the v4 /allocate endpoint's labels filter was not working. Though this has been fixed, we recommend using the new filters query argument to filter results, as this method is more flexible and faster
  • Update: requests to any /host endpoint that resulted in a 404 would not contain an error message in the error body
  • Update: we have ensured that all services prices are now returned in cents (regardless of currency)
  • Fix: the telemetry endpoints for colocation and dedicated servers did not return the unit property which also did not dynamically adjust according to the request data range

Background Services

  • Update: several performance improvements have been applied to speed up the patching process
  • Fix: the auto-restart functionality for an application instance could be set to disabled in case a task timed out. Auto-restart will only be disabled in case the start instance command resulted in an error
  • Update: several instance deployment performance improvements have been applied. This is especially noticable when deploying many instances onto a single host
  • Fix: if during initial instance deployment the creation of an instance session would fail or timeout, it would not be cleaned in the back end. But deployment would be retried, resulting in multiple undeployed remnants of a session being reported

28 April 2021

PORTAL

  • Update: additional columns have been added to the Cross Connect services overview:
    • Connectivity type
    • Cable Type
    • Contract Start & End
    • Monthly Cost
  • Update: Cross Connect details have been expanded. More information on the details of a cross connect and usage graphs have now been included
  • Fix: Cross Connect connector types were incorrect
  • Update: Colocation services overview has additional columns:
    • Contract Start & End
    • Monthly Cost
  • Fix: Updating colocation / dedicated server rDns entries would not visually update after a change
  • Fix: Invoice payment date (paid invoices) was displayed incorrectly or not at all

API

  • Update: additional properties have been added to the /crossConnect model:
    • uplinks - The available uplinks for this cross connect. Their IDs can be used to fetch Cross Connect traffic graphs
    • connectivityType - the type of connectivity service Following will be possible values:
      • Connectivity: Transport
      • Connectivity: IP connectivity
      • Connectivity: Crossconnect
    • outgoingTrafficSum - the outgoing traffic (Mbit or GB - defined by "bandwidthBillingType")
    • incomingTrafficSum - the incoming traffic (Mbit or GB - defined by "bandwidthBillingType")
    • bandwidthBillingType - the bandwidth billing method for this service:
      • 1: unmetered connection
      • 2: measured in TB per month
      • 3: measured in mbit 95th percentile
  • New: Cross Connect traffic endpoints have been added
  • Update: a Cross Connect name can be set to empty
  • Update: PatchJob - the task delay has been removed from the Download step, ensuring downloads are executed as quickly as possible
  • Update: Port generation for PatchJobs has been optimized, allowing faster Task generation
  • New: if during a PUT /allocation request no game server could be allocated, a 404 Not Found will be returned with an error object in the response body. A new v4 endpoint has been introduced due to incomaptible changes
  • Fix: under certain circumstances, some (automatically generated) Host labels for VMs could be prematurely removed, such as the fleetId label
  • Update: in the experimental event stream, the AIMAllocated event would not have its typeName property set

13 April 2021

PORTAL

  • Fix: Dedicated Server hardware (RAM) graph had its x-axis inverted
  • New: Colocated server PDU / power usage graph and information

API

  • Update: during a PUT /allocation request, game servers on BMs are prioritized over game servers on VMs
  • Fix: when deleting Application Properties, the regional variants would not be deleted
  • Update: GET /v3/pingsite is now a public endpoint which no longer requires an API key
  • Update: the response of GET /telemetry/pdu/{pduId} now includes a unit property like the other telemetry endpoints, indicating the unit of one data point.

16 March 2021

PORTAL

  • Update: more information has been added to the Application Instance details pages:
    • Startup settings
    • Properties
    • Labels
    • Meta data
    • Live status
    • Fleet status
  • New: for an Application Build you can now indicate whether you want to run instances as root or a low privilege user
    • Only works for Linux
    • Only works for Application type Game Server and Utility
  • Update: in the Host Capacity template, the limit of instances per physical core has been raised from 15 to 60

API

  • Update: for an Application Build you can now indicate whether you want to run instances as root or a low privilege user. This can be indicated via the new property runAsRoot
    • Only works for Linux
    • Only works for Application type Game Server and Utility
  • Fix: when updating meta data, a TypeError could cause a 500 Internal Server error in /v3/applicationInstance/{applicationInstanceId}
  • Fix: when using a Dependency Installer in your Fleet, application instances could be started before the Dependency Installer was finished or failed
  • Fix: an error could be thrown when using quoted filters in any endpoint that supports filters
  • Fix: the Host.cpuLoad property would always be 1. Additionally, the value type has been updated from integer to float, for more precise values
  • New: added a new /host/liveState endpoint to easily obtain live cpu and memory metrics for all hosts in your account
  • Update: the memMax property has been added to the endpoint /v3/telemetry/host/{hostId}/memory

Background Services

  • Update: we have increased the port range used for instance port assignments to 50,000 - 65,535
  • New: a new AIMAllocated event has been added to the experimental event stream

27 February 2021

PORTAL

  • New: Application Instance details pages, displaying:
    • Detailed deployment status and information
    • CPU and Memory usage history
    • Crash overview
    • Task overview
  • Update: you can now indicate your desired origin location in the "Request a CDN account" wizard
  • Fix: a "password is too short" error would prevent you from updating your password if your current password was shorter than 12 characters
  • Fix: for colocation detail pages, a "PDU not found" error could occur
  • Fix: it was not possible to create a new Dependency Installer Template, because the Uninstaller options would always be disabled

API

  • Update: the ApplicationInstance model has two new properties:
    • executable: the executable name of the instance
    • startupParams: the parsed startup parameters for the executable
  • Update: the PUT /allocation endpoint now supports game servers using the Arcus V2 management protocol
  • Fix: during concurrent Application Instance allocations, it was possible that an instance would be double-allocated

Background Services

  • Update: if an Arcus V2 connection cannot be established and fails for 15 seconds or more, the application instance will be regarded non-functional and will be destroyed
  • Fix: the errorCode property of the experimental AIMStopped Event would always be empty

16 February 2021

PORTAL

  • New: an Application Build can now be created, pointing to a file on the CDN
  • New: a CDN account can now be requested via a form accessible via the Application Build edit wizard or the CDN section in the platform

API

Background Services

  • Fix: an Application Instance's status was not correctly updated after allocation
  • Fix: after a restart of an Application Instance, its platform-defined, inherited Application properties were not updated

2 February 2021

PORTAL

  • Update: the Application Instance overview now has sorting and basic filtering options
  • Fix: colocation clients with a 95th percentile network connection agreement would see wrong network usage details on their colocation details page
  • Update: several Patch Job page related display tweaks and fixes

API

  • New: an additional Trigger rule type has been added: TimeTriggerRule. With this you can create a rule that will perform an action after an indicated amount of uptime. Usually used to restart a game server after a certain period of uptime. See the Trigger documentation for usage information
  • Update: the Application Instance model has been given additional "name" properties for:
    • deploymentEnvironmentName
    • fleetName
    • applicationName
    • applicationBuildName
    • dcLocationName
    • regionName
  • Update: the endpoint /v3/cloud/dcLocation/vicinityMapping has been updated to include all available i3D.net and cloud datacenters
  • Update: the game server allocation endpoint now immediately issues the allocation command towards the game server upon allocating it. There used to be a delay of about 5 seconds
  • Fix: manually deploying a game server via the API would result in a 500 error in some cases
  • Fix: Metadata updates could be wrongly interpreted when passing the value "0" for a key / value pair. The key / value pair would then be deleted. Now, all string values will be stored and only they value null will remove a key / pair, as described in the documentation

Background Services

  • New: we now track and store which Arcus version a game server is using
  • several fixes and optimizations have been applied to improve scalability and performance of background services

19 January 2021

PORTAL

  • Update: implemented proper pagination for the Application Instance overview, making it possible to quickly paginate over very large lists
  • Update: performed internal restructuring of files and code to be more modular and cater for better (lazy) loading of elements

API

  • Fix: certain IP ranges assigned to colocation customers could display too many IPs
  • Update: added new pagination functionality to all GET ApplicationInstance endpoints:
    • /v3/applicationInstance
    • /v3/applicationInstance/summary
    • /v3/applicationInstance/host/{hostId}
    • /v3/applicationInstance/{applicationInstanceId}
    • /v3/applicationInstance/application/{applicationId}
    • /v3/patchJob/{patchJobId}/failedApplicationInstances

5 January 2021

PORTAL

  • New: Patch Job details pages
    • Settings and selection summary
    • Progress indicator
    • List of failed instances
  • Fix: the "forgot password" feature would throw an API request error
  • Update: in Patch Jobs, we replaced the term "preload" with "download"

API

  • Update: when cancelling a Patch Job with a reversal instruction, the new reversal Patch Job's ID will be stored with the original Patch Job (and vice versa)
  • Fix: Calling the /allocate endpoint with no JSON body would result in an error. A request without body is now allowed
  • Fix: Adding an IPv6 address to an API key's whitelist would result in a range with an IPv4 start address

Background Services

  • Update: Patch Job optimizations have been performed to increase deployment speed and lower resource usages
  • Update: Application Instances that are marked for deletion are now always removed eventually by a back-up background clean up process
  • Update: Game Hosting scaling
    • Rewritten the logic for handling VM errors. We check for any VM errors that have been dispatched within the last 5 minutes and are related to a client's game hosting project

14 December 2020

PORTAL

  • Fix: flickering icons on the Deployment Region pages. Icons on the PatchJob overview pages would not load until hovered over
  • Fix: added missing Azure logo on the Host Capacity Templates page
  • Update: we have re-visited the flow of updating the main email address in your account. Pending updates are indicated clearly, emails and their contents have been updated to better reflect required actions and a separate notification is sent to he old email address
  • Update: the application instance graphs on the dashboard now include the total amount of instances
  • Update: better error message display on the login screen

API

  • Fix: in a PatchJob we now exclude any instances that have been marked for deletion
  • Fix: adding an IPv6 range to an API key could result in the start address showing as an IPv4 address
  • Fix: under certain conditions, signup of a new i3D.net account could fail if the client already had an email conversation with us
  • Update: you cannot update your main account email address anymore via PUT /v3/account/details. Instead, use the new endpoint PUT /v3/account/email/change

Background Services

  • A new service has been added that ensures instance that have been marked for deletion are indeed cleaned up

23 November 2020

PORTAL

  • New: you can now add file attachments to your tickets via drag and drop or classic file selection
  • Update: the ticket overview has colored rows indicating which tickets have unread replies
  • Fix: in the final signup step, Billing Details, we asked for an Abuse email address. We meant to ask for an optional Billing email address
  • Update: the maximum range of an IPv4 address assigned to an API Key whitelist has been increased from /24 to /16 (IPv6 still has a maximum prefix of /48)
  • Fix: within the PatchJob setup wizard, returning to page 1 from page 2 would forget the Fleet values
  • Fix: Cross Connect request tickets are now set to the proper department for quicker handling. In additions the contents of said ticket now include all pricing information as well.
  • Update: several tiny formatting and styling tweaks, including proper tooltip alignment to the element it belongs to

API

  • New: Ticket attachment endpoints allow you to add attachments to a new ticket or reply
  • Update: the Ticket element's clientLastReadAt property was not updated properly. Now, it always indicated the last time a ticket was viewed. Its value is update after each call to /v3/tickets/{ticketId}
  • Fix: the Ticket element's department property was ignored
  • Update: the Trigger endpoint Swagger documentation has been improved
  • Update: the /v3/pingsite endpoint has a new hostname property that we recommend you use. This allows for possible IP changes to occur without you noticing

Background Services

  • Update: VM related errors (INSTANCE_QUOTA_EXCEEDED and INSTANCE_ZONE_RESOURCE_POOL_EXHAUSTED) will be remembered by the system up to 15 minutes, preventing our scaling system to deploy on the platform that emitted those errors during that time
  • Fix: null pointer exception in one of our PatchJob Event micro services would cause it to crash, stalling the progress of a PatchJob

10 November 2020

PORTAL

  • Fix: certain phone number formatting would not validate as expected during signup
  • New: integrated Hotjar for page usage analysis
  • Update: renamed Invoice related links and titles from Billing to Invoice, including the invoice url which is now https://one.i3d.net/Invoices (the old url redirects to the new)
  • Update: more graceful handling of error codes like 404 and 500. A better informative page will then be displayed
  • Fix: client assigned BMC IPs for dedicated servers were not displayed on a server's details page

API

  • Update: the rules for deleting an ApplicatioBuild are better defined and will clean up possibly empty templates afterwards:
    • Game Build: may not be deleted if assigned to a GameTemplate, which in turn is assigned to a Fleet. If the build can be deleted, a resulting empty GameTemplate will be deleted
    • Utility Build: may not be deleted if assigned to a UtilityTemplate, which in turn is assigned to a Fleet. If the build can be deleted, a possibly resulting empty UtilityTemplate will be deleted
    • Dependency (Un-)Installer Build: may not be deleted if assigned to a DependencyTemplate, which in turn is assigned to a Fleet. If the removed Build concerns a Dependency Installer, only that build will be removed from any DependencyTemplates it's assigned to, leaving the Uninstaller Builds assigned to those templates. If removal of an Uninstaller Build was requested, both Installer and Uninstaller builds are moved from all templates they are assigned to
  • Update: any GET endpoint that responds with an ApplicationInstance that has the markedForDeletion property set to true will now still work
  • Fix: /v3/patchJob/applicationInstancePreview did not work when using an ApplicationBuild pointing to a file on a CDN Build Origin
  • Update: the maximum range of an IPv4 address assigned to an API Key whitelist has been increased from /24 to /16 (IPv6 still has a maximum prefix of /48)
  • Fix: the buildProvisionRegistrationId property in /v3/buildProvisioning/storage/file/{id} would contain the wrong value

26 October 2020

PORTAL

  • New: Colocation IPv4 and IPv6 management tab
  • Update: the Dedicated Server details page now lists the service tag and rack location
  • Update: the upper limit of instances on a single host has been updated to 1000 in the Host Capacity template to accomodate for hosts with many cores
  • Fix: dual CPU bare metal servers listed the number of cores of a single CPU in the Host Capacity template
  • Fix: traffic numbers for dedicated servers and colocation used a wrong divisor, ending up with numbers that were slightly off
  • Fix: on Dashboard graphs it is now possible to see the last value while hovering over the end of the graph
  • Fix: creating an Application Install failed with the error "installHasExe missing value"

API

  • New: Ticket attachment upload POST /v3/tickets/attachment. First upload an attachment which will return the attachment's ID. Then pass that attachment ID to the POST /v3/tickets/{ticketId}/reply endpoint to add it to a reply
  • New: internal preparations to support the new features of the Arcus V2 protocol for platform <-> Game Server communication
  • Update: the VAT number property of an account is now always optional
  • Update: streamlined and simplified the Trigger feature making it easier to understand and use
  • Fix: pagination for Tickets was not working
  • Fix: PatchJob update counters were wrong, resulting in an invalid and out of range progress bar on the front end
  • Fix: when rapidly scaling up Game Instances, the platform would sometimes deploy too many of them

Host Agent

12 October 2020

PORTAL

  • New: in the dedicated server overview, you can now filter by service tag
  • Update: the cross connect order form handles certain fields more logically and intuitively
  • Fix: pagination when filtered would not always re-calculate the visible number of rows correctly
  • Fix: all links that take you to another page are now a regular anchor element
  • Fix: the Fleet edit wizard now allows you to reset optional fields back to "not set"
  • Fix: the maximum length of Colocation name is limited to 128 characters
  • and mane other small GUI quality of like improvements

API

  • New: PatchJob endpoint to list all instances that failed to update /v3/patchJob/{patchJobId}/failedApplicationInstances
  • Update: added an internal option to slow down PatchJob processing, preventing game instances to come online all at once, possibly overloading client systems. This will become a user configurable option in the future
  • Fix: the invoice overview endpoint did not list currencies correctly /v3/account/invoice
  • Fix: automatic scaling based only on game server occupation has been improved
  • Fix: changing the name of a colocation service would fail /v3/colocation/{colocationId}
  • Fix: sometimes a PatchJob would not fully reach the end of the job and get stuck
  • Fix: under certain conditions, updating a PatchJob's details would result in a 500 Internal Server error
  • Fix: Ticket contents are now formatted correctly
  • and many other small platform stability updates

29 September 2020

PORTAL

Due to the release of https://one.i3d.net not many new features have been added. Instead, many small fixes and improvements have been performed.

  • New: (Game) Instances tab for Dedicated Servers used for game hosting

GAME HOSTING

  • Dynamic Scaler & Deployer - Several optimizations have been performed in our game server scaling and deployment processor, resulting in a dramatic decrease of response time (it's a lot faster now)

31 August 2020

PORTAL

  • New: created the Portal's main dashboard page with the first Widgets
    • Network Status
    • Tickets
    • Invoices
    • Dedicated Server status
    • (Game) Instance Distribution
    • Historic (Game) Instance Distribution
  • New: download invoice PDF
  • New: Colocation Usage tab

API

HOST AGENT

17 August 2020

PORTAL

  • Fix: the Google map indicating your colocation data center did not work
  • Fix: colocation contractual traffic figures were displayed wrong
  • New: Cross Connect details page lists invoices related to the service
  • New: Cross Connect cancellation functionality

API

  • Fix: Azure IP addresses would sometimes not be de-allocated after VM destruction
  • Fix: Utility instances would be deployed much later than Game instances
  • Fix: Colocation purchase order is now allowed to be empty in PUT /colocation
  • New: summed historic Colocation power usage via /v3/telemetry/colocation/powerUsage
  • New: summed current Colocation power usage via /v3/telemetry/colocation/powerUsage/current
  • New: Ticket endpoint to get all open and unread tickets /v3/tickets/openOrUnread
  • New: Invoice endpoint to get all unpaid invoices /v3/account/invoice/unpaid
  • New: Application Instance deployment distribution endpoint /v3/telemetry/applicationInstance/distribution/current
  • Removed: deprecated endpoints with the base /v3/application/{applicationId}/deployment/numInstancesPerBM have now been removed completely

3 August 2020

PORTAL

  • New: Cross Connect order form and service overview + details pages
  • New: searchable drop down component in many places. Start typing to filter down the list of options
  • Update: more hierachical order of the items in the Navigation Menu
  • Update: easier to use API Key bulk-IP whitelisting
  • Fix: text formatting fixes on invoice details page
  • Security: the front end now points to one.i3d.net/api allowing use of session cookies again, but without the risk of session hijacking

API

  • New: Build Provisioning endpoints (Swagger documentation)
  • New: Cross Connect GET and PUT endpoints
  • Update: added "Build download instruction" event and "Download finished" event to the Logstash stream
  • Update: renamed endpoint /v3/cloud/provider/uc/network to /v3/cloud/provider/uc/settings
  • Update: Patch report emails contain more details about the Patch Job
  • Fix: PUT /colocation resulted in a 500 Internal Server Error
  • Fix: creating an applicationBuild does not set its createdAt
  • Fix: it was possible for game servers to be assigned duplicate ports
  • Fix: /colocation height property always was 0
  • Fix: /host/12345 (an unknown id) returns 200 OK - expecting 404

HOST AGENT

  • New: added support for the new Build Provisioning feature
  • Update: automatically strip \r from Dependency Installer scripts when running on Linux
  • Fix: improved back end connection reliability

20 July 2020

PORTAL

  • New: Dedicated Server contract tab
  • Fix: Dedicated Gaming Server usage details now show CPU usage from 0% to 100%, no matter the amount of CPUs and / or cores
  • Additions: Dedicated Server details page has more details
  • New: Colocated Server contract tab
  • Fix: Duplicate Deployment Profile function was broken
  • New: Dedicated Server traffic alerts
  • New: Colocated Server traffic alerts
  • New: Dedicated Server label maintenance tab
  • Fix: a paid invoice should have its Pay button disabled

API

  • New: added PUT /colocation endpoint to update client defined colocation names
  • New endpoint: download invoice PDF via GET /account/invoice/{invoiceId}/pdf
  • New endpoint: get cross connect details via GET /v3/crossConnect
  • Addition: session startup parameters are now included in the crash logs
  • Fix: updating client-defined names for dedicated servers did not work and did not allow empty values to revert to "unset" values
  • Fix: Virtual Dedicated Servers (VMs) would always show as offline (bmcStatus = 0)
  • Addition: /v3/colocation - additional cancellationPeriod property
  • Fix: the PatchJob mechanism has received several architectural changes, giving a big performance boost
  • Addition: Dedicated Servers - new monthlyPrice property
  • Addition: Colocated Servers - new monthlyPrice property

HOST AGENT

  • Fix: more accurate CPU usage measurements

6 July 2020

PORTAL

  • New: Remote Hands request page
  • New: Invoice overview and details pages
  • New: Dedicated server details tab: Contract & Invoices
  • New: Colocation details tab: Contract & Invoices
  • Proper sorting of i3D.net locations, cloud providers and cloud locations in applicable places
  • Added tooltip with explanation for how Global Capacity works
  • Client tracking would commence on the login page (and related pre-login pages), so before you were logged in
  • Reconstructed the table and form element handling of the Application properties wizard page
  • Design: nicer switch component with loading indicator
  • Fix: several (element) layout and styling bugs

API

  • ApplicationInstance model: added autoRestart property
  • Reject downloaded file of 0 bytes and throw a "Download Failed" error
  • PatchJob model: the patchJobOverallProgress was never populated
  • Country mode: new continent property
  • API logging: we now log all the headers we receive, including any custom ones
  • /v3/crash endpoint would crash if no RANGED-DATA header was passed
  • Instance telemetry could sometimes incorrectly contain a 0 value at the start and end of the dataset
  • New endpoint: GET /v3/application/{applicationId}/applicationBuild/inUse - used for PatchJob build selection, telling you which builds are currently in use
  • New endpoint: GET /v3/buildProvisioning/storage/registration - endpoint for the new Build Provisioning system, to list registered storage nodes
  • New endpoint: GET /v3/buildProvisioning/storage/file - endpoint for the new Build Provisioning system, to list files on all your storage nodes
  • New endpoint: PUT /v3/host/{hostId}/cancel - to cancel a dedicated server
  • New endpoint: PUT /v3/host/{hostId}/cancel/revert - to revert cancellation of a dedicated server
  • New endpoint: PUT /v3/colocation/{colocationId}/cancel - to cancel a colocation service
  • New endpoint: PUT /v3/colocation/{colocationId}/cancel/revert - to revert cancellation of a colocation service
  • ColocatedServer model: new uplinks property, listing the IDs of all network uplinks. These can be used with network telemetry endpoints
  • Host model: new uplinks property, listing the IDs of all network uplinks. These can be used with network telemetry endpoints
  • PatchJob handling: renamed PUT /v3/patchJob/{patchJobId}/postpone to PUT /v3/patchJob/{patchJobId}/hold - when held, the PatchJob will not start even if start time is reached
  • PatchJob handling: renamed PUT /v3/patchJob/{patchJobId}/unpostpone to PUT /v3/patchJob/{patchJobId}/unhold - unhold a held PatchJob. If start time is already reached, the PatchJob will start immediately
  • Password reset email notification - display correct timestamp
  • Additional Platform Variables: VARFLEETNAME, VARDEPLOYMENTENVIRONMENTID and VARDEPLOYMENTENVIRONMENTNAME
  • Platform Variable handling: it is now allowed to concatenate VARiables (in e.g. ApplicationBuild.startupParameters), either directly or with a separator but not _ because that is a character allowed in a VAR name
  • CloudInit setup scripts: Host Agent sometimes could not be downloaded because VM IP was not yet known to back end
  • CloudInit setup scripts: added functionality to wait for the network being up. It could sometimes happen that it look longer than expected for the network to come up
  • Fix: ApplicationInstances could be deployed even if a Dependency Installer failed to deploy / run successfully
  • PatchJob execution: progress report could be sent every 10 seconds, whereas it should be sent every 5 minutes

HOST AGENT

  • Persisted graceful shutdown state of an ApplicationInstance when the agent is restarted

23 June 2020

PORTAL

  • New: IP management tab on the Dedicated Server detail page
  • New: Regional Properties
  • New: Button to cancel a Patch Job
  • Several small fixes in the Patching overview and setup process
  • Interal change from Fetch to Axios for better flexibility
  • Removed session cookies in favor of Authorization header (better site security)
  • Patching fixes:
    • History page now sorted by Finish time
    • De-selecting a report email could also de-select the default gameops email address
  • New components
    • New tooltip component

API

  • Several Patching fixes
    • The initial report email could have no actual report contents
    • Correct numbers in the reporting emails
    • Correct start time in the reporting emails
    • Cancelling a pending Patch Job would still create a revert job
    • and more small fixes
  • More monitoring options for application build downloads
  • Usage of the API with a regular session, using a session cookie has been replaced with an Authentication token. This is only used by our front end. Programmatically using the API with an API Key is unchanged.
  • Fix: duplicate events could be encountered in the experimental RMQ event stream
  • /v3/deploymentProfile endpoint loads a lot faster now
  • OpenStack cloud - automatic allocation of floating IPs in a project, as long as quota allows
  • Fix: API Key IP whitelist could have duplicate IP(ranges)
  • Fix: a dependency installer could in certain circumstances deploy more than once
  • Fix: a DeploymentEnvironment could be deleted too soon, causing internal references to break and leaving orphaned elements behind in your setup
  • Fix: platform variable VARHOSTNAME could be empty if no custom host name has been entered by client. Now defaults to i3D.net assigned server name
  • New platform variables:
    • VARFLEETNAME
    • VARDEPLOYMENTENVIRONMENTID
    • VARDEPLOYMENTENVIRONMENTNAME

HOST AGENT

  • Performance improvements while downloading
  • Fixed obscure download socket problem bug (workaround for a bug in .NET Core 2.5)

8 June 2020

PORTAL

  • New: Application patching (https://one.i3d.net/Game-Hosting/Patching)
  • The ApplicationBuild wizard now only shows operating systems supported by the platform
  • The maximum application property value length has been increased to 1500 characters
  • Dependency Installer failure notification email subject has changed to "Your Fleet was disabled, an error occurred", in case you had a mail rule or filter on that email notification
  • Improved bulk addition handling of IPs for API Key whitelisting
  • New components have been created for future use:
    • Toggle buttons
    • Date range selector
  • Various small bug fixes

API

  • New: Application patching
    • Including basic reporting via email and cancellation & revert functionality
  • Region based platform variables (https://www.i3d.net/docs/api/v3/game-publisher#/DeploymentProfile/get_v3_deploymentRegion__deploymentRegionId__property)
  • Additional /colocation and /host model properties:
    • bandwidthBillingType - 1: unmetered connection, 2: measured in TB, 3: measured in mbit 95%
    • bandwidthContractual - this value indicates what you have paid for, e.g. 25000 GB per month
  • Improved Dependency Installer failure notification email formatting
  • Applied several cloud orchestration fixes
    • Fixed an OpenStack connection that could hang forever
    • Applied a maximum connection timeout of 10 seconds for OpenStack, to override the default value of 120 seconds
    • Improved OpenStack quota limit error handling

25 May 2020

PORTAL

  • Fleet status configuration has moved away from the wizard to the main Fleet overview (https://one.i3d.net/Game-Hosting/Deployment-Management/Fleets)
  • Improved responsiveness of tables
  • New doughnut components to show dedicated server and colocation (live) resource data such as Traffic, Power, CPU, Memory
  • Improved colocation overview
  • Fix: it was not possible to delete more than 1 whitelisted IP from an API Key

API

  • Added the isOdp property to /operatingsystem, to indicate whether an OS is supported by the hosting platform (https://www.i3d.net/docs/api/v3/all#/OperatingSystem/get_v3_operatingsystem)
  • Added additional Azure DC locations: norwayeast, switzerlandnorth, eastus2euap, southafricawest, australiacentral2, francesouth, germanynorth, norwaywest, switzerlandwest, uaecentral
  • Several internal fixes

11 May 2020

PORTAL

  • New network port range application property https://www.i3d.net/docs/one/odp/Platform-Elements/Application/ApplicationProperty/#network-port-range-property-explained
  • Open application network port range changed from 50000-51000 to 60000-65535
  • Improved dedicated server overview
  • New PatchJob overview page (cannot yet create PatchJobs)
  • Created a number of new components in preparation for dedicated server and colocation details:
    • Server status
    • Collapsable component
    • Flip card
    • Doughnut graphs for network usage, power usage, CPU & memory usage
    • Multi-selectable items in any list
    • New progress bar component with multiple progress segments (for Patching)
  • Fix: in a certain situation, the front end would keep asking for signup email validation
  • Lazy loading data table; speed optimization for large tables

API

Host Agent

  • Upon each start of the Host Agent, it will make sure the ephemeral port range (dynamic port range for outgoing connections) does not overlap with the range of ports reserved for application instances (60000-65535)
  • Several live state related improvements. The agent will keep sending live state messages to the back end, even if the application is offline. But only for Game and Utility instance types

28 April 2020

PORTAL

  • Azure support
  • Account signup
  • Better responsive tabs
  • Better responsive tables
  • Dashboard graph loading improvements
  • HubSpot integration
  • New component: Multiselect dropdown with search and chips
  • New component: Suggestive drop down

API

  • Azure support
  • PatchJob creation endpoints
  • Platform support for Windows 2019
  • Platform stability fixes

Host Agent

  • ApplicationBuildConfiguration file deployment fixes. If a non-existent path would be provided, it would not be created and deployment would fail

14 April 2020

PORTAL

  • New account administration pages:
    • Account Information
    • Billing Information
    • Account IP Whitelisting
    • Password Reset
    • API Keys
    • API Log
  • New temporary colocation overview page
  • The dedicated server overiew now shows the exact OS instead of the OS Group
  • Dependency (Un-)Installer instance status now shows specific statuses

API

30 March 2020

Platform Features

  • Optimized VM Manager Micro Service so it can handle much more activity
  • Fixed automatic API key IP whitelisting / de-listing mechanism for ODP hosts
  • HostCapacityTemplate: Changed maximum number of Application Instances per CPU core from 10 to 15
  • Host Agent now continues to update platform with LiveState information about instances that are offline
  • Fixed concurrency problem involving Instance Stopped and Destroyed events
  • Automated build and deployment pipelines for the Host Agent
  • Host Agent is now downloaded from the CDN
  • Fixed two crash ocurrences in the Scaler Micro Service

API

  • Application Instance: added separate status field for Dependency (Un-)Installer instances: "dependencyStatus"
  • Fixed a number of faulty documentated API endpoint details
  • Fix: /host endpoint could return wrong RANGED-DATA header data in response
  • New endpoint: GET /pingsite to list all our ping servers which you can use in your game to ping all i3D.net datacenters
  • It was possible to call an action involving a host not destined for ODP

PORTAL

  • Tweaks to the signup process
  • Improved form and error validation & handling

16 March 2020

Platform Features

  • Game Hosting: CentOS 8 support
  • Re-worked the VM image launching system and cloud init to always use osId to setup everything
  • FIX: VMs could not be destroyed if game instances were manually removed before actually deployed
  • Changed agent checkin procedure to be more consistent
  • New background process that checks and corrects VMs left behind in a cloud account and already deregistered in i3D.net's database
  • FIX: re-deploy from same applicationInstance after the first download task failed resulted in error 500
  • Changed /host/instanceType.name -> /host/instanceType.instanceType for consistency with other endpoints
  • FIX: host capacity GET endpoint err'd
  • When VM is created, store instanceType in server table so we can easily display it in the Host object
  • Several internal functional test updates
  • The API Host model now has a more informative cpu property

PORTAL

  • The signup process has been created
  • Disable Create Install if there are no application or assignable files
  • Disable Create Build if there are no installs
  • Snackbars can now have a title
  • FIX: The website could end up in an infinite loading loop in certain cases
  • Remove check for special game hosting access permission
  • Navigation: menu item Cloud is renamed to VMware
  • Added buttons and links to old control panel for soft launch preparation
  • Application Properties: if a management protocol has been set, enforce addition of a network port property named "managementPort"

3 March 2020

FRONT END

  • The tab design has been updated to feel a bit more modern
  • New table designs for a bit more modern feel + implemented sorting and pagination
  • HostCapacity functionality has been finalised
  • Implemented Google Analytics
  • GameTemplate; limited the number of ApplicationBuilds it can contain to one
  • Ticket page has been re-designed
  • Added cross links between the old and new control panels to allow for easy switching between the two
  • Added the option to bind a HostCapacity to an ApplicationBuild
  • A lot of mobile browsing improvements

3 February 2020

Platform Bug Fixes

  • Upon dependency deployment the fleet array stayed empty even if the template was assigned to a fleet
  • In the task there is a call to a stop method directly after the dependency installer was started. This resulted in a crash report and false error
  • When an error occured with the dependency installer the games still got deployed. Now we disable the fleet so we stop deployment of new instances and send an email notification to the user with a full log of what occurred, including dependency script output
  • HostCapacityTemplate; the wrong amount of instances was spun up. The deployment profile said for the instanceType 8 and the scaler only spinned up 4
  • A fleet could have a game deployment template with an application build that is already removed from the database. Because of this the scaler had a hard crash
  • HostCapacityTemplate; fleet.inUse property was not updated in the database
  • HostCapacityTemplate; wrong calculation for number of physical cores in the API
  • Label system is not working. For an application instance the readonly labels are not saved, because of this Scott couldn't find application instances by fleetId
  • When selecting a cloudInstance with 1 core, the calculation changed it to an 0.5 physical core, this resulted that the scaler kept spinning up cloudInstances but never deployed application instances on it
  • When downscaling to 0 application instances, the scaler started multiple dependency uninstallers on the host

20 January 2020

API

  • New HostCapacityTemplate element to define how many (game) instances you want deployed on the different BM and VM instance types - full documentation
  • New Fleet.hostCapacityTemplateId property for assignment of a HostCapacityTemplate to a Fleet
  • New /country endpoint for a generic list of all countries
  • We now capture the output of your DependencyInstaller and DependencyUninstaller application. You will be able to fetch them via the API after the next update
  • If a Dependency(Un)Installer fails, we send you an email with the logged output and any details regarding the state of deployment
  • The number of allowed ApplicationBuilds in a DeploymentTemplate has been limited to 1 to make the system easier to understand and maintain
  • Templates and Profiles cannot be shared between Fleets anymore. If you still have shared Templates and / or Deployment Profiles defined in Fleets, they will continue to work, but you will no longer be able to make duplicate assignments from now on
  • Moved endpoint /apiLog to /account/apiLog and included all request and response details
  • API log data retention is set to 1 week
  • If no HostCapacityTemplate assigned to a Fleet, we default to 1 game instance per physical CPU core (that is 2 vCpus in the cloud)
  • The installHasExe property of an existing ApplicationBuild can now be changed
  • DeploymentProfile.cloudImageName property has been removed. There no longer is a need to set this because we removed the need for custom cloud images. Note that /cloud/image still exists, but has been deprecated and will soon be removed
  • Fix: /fleet/{fleetId}/host always returned the isODP property with value 0
  • Fix: The key name of an ApplicationBuildProperty could be changed, while this should not have been allowed
  • Fix: Setting Fleet.operationalStatus to a null value crashed the endpoint

Work on Azure support is still ongoing and is expected to be released on February 3rd.

HOST AGENT

  • Dependency installer output logging and forwarding to our back end
  • Fix: under certain network conditions, the agent could become stuck forever

FRONT END

  • New HostCapacityTemplate pages and create and edit wizards
  • ApplicationBuild properties can now be edited in its create and edit wizard
  • Implemented a "snackbar" notification system to provide additional feedback and errors and successful actions. This has been applied to several forms at the moment. Also marking a DeploymentProfile for deletion (or any of its elements) can now be undone by clicking the "Undo" button in the snackbar
  • If leaving a page with edits, the front end will now ask you for a confirmation
  • Favicons have been implemented for all platforms
  • Dedicated Servers page now has a filter for: Game Host, Bare Metal, VM, show all
  • All icons have been tweaked
  • Updated design of overview tables
  • Removed DeploymentProfile cloud image selector
  • Removed "Partner Portal" menu item
  • Fix: sorting a table and then refreshing the page caused a crash
  • Fix: for Dependency Installer related elements, always show the correct type in overview

9 December 2019

API

  • New feature: Dependency installer mechanism - full documentation
  • Added VM destruction events with final uptime to the Logstash stream
  • Updated validation method for element IDs, which could go wrong in certain cases

Work on Azure support is still ongoing.

HOST AGENT

  • Linux: not using screen anymore for launching applications
  • Improved network handling (in certain situations sockets could linger around)
  • Fix: the back end check-in call could stall forever in certain situations
  • Implemented Dependency Installer functionality

FRONT END

  • Accessibility: allow navigating and controlling wizards by keyboard only
  • Login password: added toggle to view password
  • Host page: only show regular public IP addresses
  • ApplicationBuild startup parameters are no longer required
  • Better handling when permissions are missing
  • An incomplete Deployment Profile cannot be assigned to a Fleet anymore
  • Better choice of colors for elements throughout the front end
  • Improved handling of element blur (removing focus) for edit fields
  • Various structural changes and improvements to the base framework

25 November 2019

API

  • Endpoint argument validation fixes:
    • Deployment Profile: maximumCapacity, bufferValueMin and bufferValueMax are now nullable
    • Deployment Region: almost all fields are now marked as nullable
    • Fleet: When deleting a fleet fails because of still running Application Instances, the response will contain the Ids of the remaining Application Instances
    • Misc: Fixed various validation issues
    • Misc: Fixed incorrect return types of some fields
  • Improved RMQ connection handling in the VM Micro Service
  • Only check GCP project quota for active credentials
  • Included Arcus error messages in the Logstash stream
  • Included all API requests in the Logstash stream
  • Included Application Instance status changes in the Logstash stream
  • Added the name of elements to the Logstash stream, so you don't only see IDs
  • You can no longer create or update a GameDeploymentTemplate without it having at least one ApplicationBuild
  • Removed "Process already running" error event upon a Start instruction, if the process was indeed already running
  • Random Application Instance network port generation will never select ports that may still be in WAIT_TIMEOUT after being discarded by another, recently stopped Application Instance
  • New importer for Azure IP ranges (used for internal VM authentication later on)
  • Disallow a GameDeploymentTemplate from being removed from a Fleet, if its operational status is > 0
  • After deleting a GameDeploymentTemplate, its reference in a Fleet will also be removed
  • i3D.net DC locations have been given a region name similar to cloud regions
  • The task system has been given a retry mechanism that can be implemented per action. For now, download instructions will be retried once
  • Implemented task retention of 180 days
  • Internal administration features (DC location maintenance, more Host Agent maintenance)

Work on the new Dependency Installer mechanism has begun and is still ongoing. Work on Azure support has begun and is still ongoing.

FRONT END

  • The main menu structure has been updated to be more logical and to present Game Hosting as one of the other services within the i3D.net ONE platform, rather than the dominant service
  • Tabbed pages used numerical indices in the url query arguments. These have been adjusted to be regular urls with names
  • Fleet operational status is stored / checked before updating a Fleet, because it might not be allowed to change templates when operational status > 0
  • Dynamically use Application Types from /v3/application/type instead of using hard-coded values
  • New DeploymentTemplate overview: https://one.i3d.net/Deployment-Templates. With add / edit / delete functionality for Game and Utility DeploymentTemplates
  • Cloud account add / edit: addition of key pair, security group and / or network name
  • Application tabs: always refresh a tab's contents when activating it. The refresh button will also refresh all tab contents
  • Tooltips can now contain HTML anchors, allowing us to link to another page / website for more information. First applied on Application Property of type network port, within the Application add / edit wizard
  • Improved text and better error handling within the ApplicationBuild wizard
  • Allow main menu to scroll with the page if it doesn't fit on the screen. Previously, part of the menu could be hidden and not reachable on smaller screens
  • Applications of types other than Game could not be stored because the managementProtocol property was not passed
  • Wizards can be closed by pressing the Escape key
  • Password masking can be toggled on or off in order to view what you've typed (when you are certain no-one's looking over your shoulder)

11 November 2019

FIXES

  • Fixed random port generation on application (re-)start
  • Fixed a VM Manager crash (method call on null object)
  • Fixed a bug in instance removal task creation

API CHANGES

  • New API endpoint: /v3/cloud/provider/{providerId}/dcLocation
  • New API endpoint: /v3/cloud/dcLocation/{dcLocationId}
  • API Deployment Profile update allowed minimum bufferValue to be larger than maximum bufferValue
  • Added Host element property "odpHost" to indicate when a host is used for game hosting purposes
  • Added Key Pair name, Security Group, Network name to cloud credentials (these are not yet used when creating a VM)
  • API ApplicationBuild error message was in the wrong format (array of errors, rather than an Error element that contains an array with the errors)

OTHER CHANGES

  • Reset application instance live status when instance stops

FRONT END

  • Show the user name rather than "Administrator" top-right of the page.
  • Ability to inline edit a Deployment Template.
  • DeploymentRegion overview: when user adds a bare metal location locally, this location is not being removed from the list of available locations.
  • Disable "Add bare metal location" button when there are no more locations to choose from.
  • Ability to edit and Application element.
  • Removed unavailable deployment strategies from the selector / drop down.
  • Main dashboard: changed "Free hosts" label to "Available hosts".
  • Adjusted maximum name length checks to 100 charachters.

FRONT END DESIGN

  • In feedback and research came forward that the used elements displayed in a light grey are bad for accessibility and suggest that elements are disabled. Have revisited all dropdowns, selectors, entry fields, etc and improve color contrast in the design.
  • Prepared a new structure for the main menu.
  • Create a design to show if deployment templates are in use by a fleet or not.
  • Create a design to show if deployment profiles are in use by a fleet or not.

25 October 2019

TELEMETRY

  • Recording of telemetry timestamps was not done consistently, causing gaps in the graphs
  • Host network telemetry currently shows the cumulative values, whereas it should show the amount of bytes added since the previous tick
  • Proper padding applied to telemetry endpoints, so that you always get the request range of data
  • New field added to Host telemetry: Full Hosts
  • Host telemetry totals were not showing VMs
  • Host telemetry totals values could be doubled

API

  • [API Docs] Fixed DeploymentProfile model
  • [API] New endpoint for fetching crash events: /v3/crash

CLOUD CREDENTIALS

  • AWS credentials defaultRegion was not validated and one could fill in anything there

OTHER CHANGES

  • [API] Maximum length of entity names are now 250 characters
  • [API] Maximum length of descriptions are now 10,000 characters
  • More internal logging of events. Related to the next item:
  • Ability to forward RabbitMQ events to custom endpoint, e.g. log stash. Available on request. The collection of event types in the stream is not yet complete and is a work in progress.
  • Internal simplification of RabbitMQ configuration

OTHER BUGFIXES

  • [Scaler] the scaler creates too many VMs in a single provider if the growth is fast
  • [Scaler] destruction of application instances sometimes went wrong when downscaling, it would remove a host when it still needed instances
  • [Scaler] a crash could occur in the round robin deployment strategy when there were no cloud VMs
  • Cloud VM entities in the platform could remain active (not cleaned up properly)
  • [API] Unable to update Fleet in front end if your game deployment template is not set
  • Host assignment to a Fleet could remain after a host became empty. This would result in a host not being able to selected for another Fleet.
  • The process to create Application Installs could hang infinitely

FRONT END

  • Main dashboard graphs refined
  • Basic Host telemetry graphs (per host). View them by clicking on a host's ID in the overview.
  • Basic Application Instance telemetry graphs (per instance). View them by clicking on an instance's ID in the overview.

ONGOING PREPARATIONS

We are building a new feature called "Dependency Installer". This will become available in the form of a new Application type: "Dependency Installer" (along side "Utility" and "Game"). This new type of application allows you to create a bootstrap script for the hosts onto which we will deploy your application instances. With it you can install any dependencies your application may require. Because you can submit this as another application, and as such as a (zip) archive, you can include any libraries or binaries you want. With this, you do not have to depend on package managers, though of course these can also be used. We recommend creating a script - powershell (Windows) or bash (Linux) - with all the necessary commands to install any dependencies. Exact details will follow when we are close to deploying it. Dependency Installers will work on both bare metal servers and cloud VMs.

This feature is an extension of another feature that has already been developed, but is waiting for the Dependency Installer to go live first: alleviating the need for custom cloud images. We will be able to start VMs from basic images provided by cloud providers and bootstrap them dynamically with our requirements. Then the Dependency Installer allows you to add your own requirements on top of ours.

We aim to deploy the Dependency Installer in the first half of November.

We will keep you updated on the progress of these new features.

30 September 2019

STABILITY IMPROVEMENTS

Several obscure bugs in our RabbitMQ Micro Service system have been fixed, resulting in a much more stable handling of events (there were a few concurrency issues) and much quicker handling of events (optimisations).

HOST AGENT FIXES

  • [linux] Applications don't get restarted anymore when service will be restarted or updated.
  • [linux] Pid monitoring is improved and will detect the application process instead of the screen pid.
  • [general] Fixed a bug in the "stopped event" sending functions.

These fixes also result in a much more stable platform.

API CHANGES

Generic validation changes

  • Fields which are marked as being a string are now explictly required to be a String. Passing an integer value to such a field, for example, will now raise an error

Cloud Credentials

  • Various validation error messages now produce a consistent output compared to the rest of the API. Status codes may also be changed
  • Updating a cloud credential no longer requires you to always also send its name
  • Status field is now properly validated (0 for inactive, 1 for active)

Game Install

  • Updating a game install of which the application is deleted no longer raises a 500 server error but generates a normal error message instead
  • Name and version length are now restricted to 100 characters

Application Build

  • Attempting to create an Application Build where the osId is not a member of the osGroup will now raise a normal form error instead of a conflict error

Application (Build) Properties

  • Creating or updating a property may now raise a 409 error if a property of type network port already exists with the same value as the one you're trying to add/edit
  • Updating a property is now subject to the same validation rules as creating a property
  • You may now enter 0 for a network port value to indicate a random port. You may have multiple network port properties with the 0 value
  • Again, all fields marked as a string (including the property value field) are now required to explicitly be a string. When passing a port make sure to wrap the value in string quotations
  • Passing an invalid Id as the property Id in the URL (such as a random string) will no longer raise a 500 error
  • Updating a property with one of the password types will now always properly validate the passed password for string length

FRONT END

  • Application Install creation / update / deletion / cancellation finalised
  • Deployment Profile now requires maxCapacity to be set and be larger or equal to minCapacity

ELASTICSEARCH

  • We have re-indexed our data in order to be more prepared for the future
  • Logging flow for our backend has been setup with logstash and kibana, in preparation for a better logging system. Also prepared for Filebeat use (or something similar - we may use the host agent instead in combination with RMQ for security reasons).

5 July 2019

BACK END

  • better DB records cleanup after decommissioning an ODP server
  • less frequent error reporting in Slack (internal reporting)
  • Removed DeploymentProfile.cloudInstanceProfiles property. Specify cloudInstance profiles per cloud location now.
  • Better VM cleanup process when manually destroying a VM
  • New endpoint: GET /billing/invoice to get a list of invoices in your account
  • New "Game servers by status" telemetry endpoint (for Portal graphs) - GET /telemetry/applicationInstance/status
  • All possible API error codes and texts are now documented in Swagger (and the public docs)

BUG FIXES

  • Task creation via API was incorrectly reporting missing action parameters
  • Incorrect VM CPU Core count storage due to DMI / SMBios objects from VMs did not always contain CPU Core information
  • ApplicationInstance.stoppedAt - only set when instance was running
  • When creating an ApplicationBuild it was possible to submit an ApplicationInstall for it with osGroup 2 (linux), but then supply an osId that is not Linux
  • UbiSin HK game servers could not be started
  • Fixed memorySize values in BM instance types
  • Fixed VMs DB records without IPs
  • VMs sometimes would not get dedicatedserver records created
  • VMs could be stored without any (free) disk information

FRONT END

  • Deployment regions moved to new page - now fully functional
  • Error handling & displaying in a universal manner

FRONT END DESIGN

  • DeploymentTemplates design
  • Application management page designs

21 June 2019

BACK END

  • extra error codes for credential validation, allowing us to more precisely hint to the user what's wrong
  • API v3, Task creation with labels didn't adhere properly to the passed labels
  • API v3 Swagger, documented all HTTP response codes for all public and publisher endpoints
  • API v3 errors:
    • each error now comes with its own error code
    • error codes will soon be available via the public documentation
    • errors in indivudual properties now return with more detail on what's wrong with said property
  • BM instances type, added "numCoresPerCpu" property next to "numCpu"
  • VM instances type, renamed "numCpu" to "numCoresPerCpu" to reflect what the value really stands for
  • the Scaler now adheres to "number of instances per host" configurations
  • Simulation tool backend

BUG FIXES

  • AWS image import hang on
  • fixed instance port selection race condition in Application Instance Manager's parallel AI creation process
  • fixed several bugs in internal systems

FRONT END

  • implemented "Mark for deletion" (or just insta-delete) functionality for DeploymentProfile and its child elements
  • DeploymentProfile regions details / edit have been moved to its own page for better overview of a profile

FRONT END DESIGN

  • MarkedForDeletion indicators design
  • Prototype created for Application Management related pages
  • Error display designs

7 June 2019

BACK END

  • API v2, added setLabels endpoint to dedicated server section

BUG FIXES

  • POST /applicationInstance/task, labels were not working properly
  • internal, SMBios DMI parser, added missing structure Management Device
  • internal, SMBios DMI parser, fixed parsing older DMI structs with less data than newer versions

STILL IN PROGRESS

  • Creating consistent API v3 error codes and error output. Updating Swagger documentation accordingly
  • Simulation platform
  • The bulk of the backend work is done, but the individual (internal) services have not yet been fully tested
  • Front end for simulator usage is still to be done

FRONT END

  • Cloud credential region selector for AWS is now a drop down
  • Ticket overview now remembers filter and sorting upon next visits
  • Deployment Profile regions are being split off to their own separate page. Displaying them works - editing them is WIP

FRONT END DESIGN

  • Deployment Profile, Deployement Regions re-design with separate region display / edit page
  • Cloud account / credential wizards are more complete. Permission issues (AWS) are being displayed in full detail
  • Fleet management design improvements
  • WIP: Application Management prototyping

24 May 2019

SCALER

  • maximumCapacity implemented. If null value provided it's ignored
  • implemented deployment of client-defined number of instances per BM or VM instance type

NEW FEATURES

  • VM hardware inventory extraction and storage via DMI / SMBios information upon host agent checkin
  • Bare metal instance types (just like cloud instance types) based on CPU (type and qty), memory (type, speed, amount)
  • allows you to very quickly see different server hardware in your account
  • used for defining number of instances to deploy per server type
  • added API endpoints to manage bare metal instance types
  • added API endpoints to define number of instances per BM and VM instance type
  • label implementation for dedicatedserver / host endpoints
  • API v2 (labels output & query filter. Label management comes in next sprint)
  • API v3 (labels & management & query filter)
  • label management via classic control panel

OTHER CHANGES

  • Converted AWS cloud credential validation result from XML to json. Now usable by front end
  • duplicate cloud credential check upon submission
  • API v3 ApplicationBuild.applicationId property to read-only

SWAGGER API DOCUMENTATION

  • Open API Specification (OAS) JSON version bump from v2.0 to v3.0
  • results in a better Swagger documentation format

10 May 2019

SIMULATION PLATFORM

  • A basic C&C Service has been made. This is the main controller that will keep records of simulations and can initiate / schedule new simulations to be performed by a Worker. Up next are the Worker nodes that actually perform the simulations

OTHER CHANGES

  • Better clean up of data that is no longer needed after a host has been decomissioned. This results in less error messages in our systems.
  • New API usage logs endpoint: /apiLog
  • Removed i3D related data from /cloud/cpuPlatform
  • Removed i3D related data from /cloud/instanceType
  • DELETE commands for deployment profile related endpoints now return "204 No Content" when an element can immediately be removed. Otherwise a "200 OK" is returned with the updated element in the body
  • The RegionIdentity element and endpoints have been removed, as it was no longer needed. This simplified the DeploymentProfile a little. Labels and Properties can be used for regional selections now
  • ApplicationInstance has a new platform defined label: "region_name". This is the client-defined name for a DeploymentRegion
  • DeploymentRegion elements could only be updated by submitting them all at once, inside the DeploymentProfile. Now, new endpoints for creating, updating individual DeploymentRegions have been added, making for easier maintenance of said objects
  • Updating Application.type: this is no longer allowed if the Application has a related ApplicationBuild currently active in a Deployment Template
  • Application type "other" has been removed. An application must either be a game or a utility
  • In the DeploymentProfile, cloud image names can now be used with the ":latest" tag to indicate you simply want to use the latest available version. Example: full image name "odp-ubuntu-1804-std-0-5-29" can now be written as "odp-ubuntu-1804-std:latest"
  • [internal] Fixed RMQ cleanup process
  • POST /applicationInstance/{applicationInstanceId}/notification has been removed
  • POST /applicationBuild endpoint - an extra check has been added to verify that the provided installId belongs to the provided applicationId
  • property key - stricter constraints to match with label keys (A-Z, a-z, 0-9, -, _) - max length: 50 characters
  • property value max length is now 150 characters
  • new AWS region Hong Kong needed manual enabling in AWS control panel for it to be usable by us

API V3 MODEL CHANGES

  • Removed properties:
  • Application.internalName
  • ApplicationInstance.locationId (it was pointing to a legacy location)
  • ApplicationProperty.applicationId
  • ApplicationBuildProperty.applicationBuildId
  • ApplicationBuildConfiguration.applicationBuildId

  • Renamed properties:

  • ApplicationInstance.applicationInstanceIP -> ApplicationInstance.ipAddress

  • Added properties:

  • ApplicationInstance.manuallyDeployed
  • DeploymentRegion.name - this was needed as a replacement for RegionIdentity.name (which has now been removed)

FIXED BUGS

  • Ticket attachments were returned duplicated
  • Fixed a number of Swagger api descriptions. We're not there yet with updating the Swagger descriptions though.

ARCUS

  • implemented the new init packet into the host agent (for sending to a game server)
  • implemented the new init packet into our simulated game server

INTERNAL MONITORING

  • The first system health monitoring pages have been made for:
  • Micro Services
  • RabbitMQ
  • Elasticsearch
  • Docker Swarm
  • and an overview page to monitor all at once

CONTROL PANEL PAGES

  • New ticket pages
  • New Cloud Credential pages

26 April 2019

OPTIMIZATIONS

  • Much quicker Application Instance deployments by creating a separate micro service that handles deployments of instances in parallel
  • Several other smaller optimisations related to the scaling process

STABILIZATIONS

  • Host Agent does better connection handling (used to bug out and have socket problems after a while)

API V3 MODEL CHANGES

  • Removed properties:
  • Application.internalName
  • ApplicationInstall.applicationId
  • ApplicationProperty.applicationId
  • ApplicationBuildProperty.applicationBuildId
  • ApplicationInstanceProperty.applicationInstanceId
  • ApplicationBuildConfiguration.applicationBuildId
  • ApplicationXxxxProperty.propertyKey stricter constraints to be equal to label keys ([A-Za-z0-9-)
  • ApplicationXxxxProperty.propertyValue length increased from 100 to 150

  • Specific changes:

  • removed: application.queryType and application.arcusImplemented replaced with: application.managementProtocol Possible values: 0) None 1) A2S 2) Arcus

ARCUS

  • We had to add a new init packet that one must send to authenticate an Arcus connection / session. This init packet can contain a password. We had to do this because some clients might want to use a public Arcus port as opposed to you who'll be using a socket bound to localhost. A public port needs an authentication layer so we came up with the init packet. Documentation will be sent separately (and included in the public documentation website.

OTHER CHANGES

  • Cloud credentials are simplified. You now submit your credentials account-wide instead of per deployment environment. You select the credentials you want to use for your account and those will then be used. This can be done on a per cloud-provider basis, so you can select i3D.net credentials for GCP and use your own for AWS. Upon submission of credentials we perform validation checks on them to see if they 1) work and 2) have sufficient privileges for us to be able to use them. We have checks and reporting in place for already submitted credetials that suddenly become invalid.
  • response content-type header is now always application/json

DOCUMENTATION

  • I have begun writing public documentation. This is not yet publically visible, but we'll try to setup a new public domain from where this can be seen. We hope to have this done during the next sprint.
  • The Arcus documentation will be part of that website as well.

14 March 2019

BACK END FIXED BUGS

  • remove reserved hosts after fleet deletion
  • telemetry shows empty hosts when hosts are reserved for a fleet
  • deployment profile CloudImageName error
  • /application endpoint listed deactivated applications
  • when you have a read only property in a put and you leave it empty then validation fails
  • /applicationInstall has a platformId that is not needed, remove it
  • in the ApplicationInstall API object, make the the following properties read-only: createdAt, filePath, fileSize, fileSHA256, executableSHA256
  • assignable file listing showed files with any status. Filter those with status 127
  • metadata key character collation fixes. Only allow [a-z0-9-]
  • ArcusACK Event Handler too long debug message
  • application install can be deleted even if it is set in active builds
  • Application Build Error: User can create application build with inactive installId
  • Wrong error message "Entity not found: not valid applicationBuildId"
  • cpuUsage missing in example value of /applicationBuild
  • gameId required in PUT /applicationInstall/:installId
  • executable SHA not filled in when assigning new application install
  • change configId for applicationBuildConfigurationId. The table should follow the same structure as the rest of odp
  • We can host unlimited applicationInstance on one host. Check is missing when doing manual deployments.
  • API DOC - better label documentation
  • Fixed bug in PUT application build endpoint, testedInCpuType can not be null
  • wrong error msg when deleting depEnv
  • wrong error on applicationInstall create status 127. Added more status text to the list so no file is used twice in applicationInstall/create
  • it was possible to create an install with OsID zero

FRONT END IMPROVEMENTS

  • Increase the performance of the Input component

BACK END NEW FEATURES

  • add endpoint for Application deactivation