Releases Workflow
Scope
Here you can find how to upload release APIS or DLC to the IDC Panel to manage your releases of published games. These APIs allow you to create a new version of a game, upload the necessary files and go live.
All the APIs require using two mandatory headers in the HTTP Request:
GameId - game id provided by IDC Games GameSecret - game secret provided by IDC GamesMain functions and workflow:
1. Create a new release
URL:
https://admin.idcgames.com/api/release/active
Type: POST
Params:
- rel_name - release name or version
- exe - (optional) change exe file name used to execute the game
Example JSON response:
{
"data": {
"id": 131,
"name": "1.20",
"exe": "testGame.exe",
"size": "",
"published": "",
"active": false,
"splash": "https://admin.idcgames.com/storage/91/TESTGAME_LOGO",
"ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
"sync_status": 0
}
}
or modify an existing one:
URL:
https://admin.idcgames.com/api/release/update/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params:
- rel_name - release name or version. Launcher updates the game only when it finds that the release name has changed
- exe -(optional) change exe file name used to execute the game
Example JSON response:
{
"data": {
"id": 131,
"name": "1.20",
"exe": "testGame.exe",
"size": "28.2 MB",
"published": "2021-04-08T17:47:45.000000Z",
"active": true,
"splash": "https://admin.idcgames.com/storage/91/IDC_LOGO.png",
"ico": "https://admin.idcgames.com/storage/92/LogoIDC.ico",
"sync_status": 1
}
}
2. Create ftp accounts
Accounts creation takes some seconds, use 3.- get ftp accounts data API to get the ftp data once it is created:
URL:
https://admin.idcgames.com/api/release/ftp/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params:
- rel_dlc - 0 for release, 1 for DLC
- rel_dir - redist for redistribuible files, common for files with the same format in x86 and x6 systems, uncommon for files for x86 systems, wich should be included in x86 folder and files for x64 systems, wich should be included in x64 folder
- hours - ftp account lifetime in hours
- ip - (optional) public source ip for uploading files with ftp. Leave blank if api is called from the same ip as ftp upload
Example JSON response:
{
"success": true,
"message": "FTP requested."
}
3. Get ftp accounts data
URL:
https://admin.idcgames.com/api/release/ftp/$releaseId
Type: GET
Params: none
Example JSON response (two accounts created)::
[
{
"id": 550,
"user": 0,
"rel": 131,
"rel_dir": "idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/uncommon",
"hours": 1,
"ip": "127.0.0.1",
"requested_at": "2021-04-09 08:14:44",
"accepted_at": "2021-04-09 08:14:50",
"notified": false,
"ftp_username": "ftpidc550",
"ftp_password": "yspSOpCa",
"expire_at": "2021-04-09 09:14:50",
"status": 1,
"rel_dlc": false,
"created_at": "2021-04-09 08:14:44",
"updated_at": "2021-04-09 08:14:44"
},
{
"id": 551,
"user": 0,
"rel": 279,
"rel_dir": "idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/common",
"hours": 1,
"ip": "127.0.0.1",
"requested_at": "2021-04-09 08:15:14",
"accepted_at": "2021-04-09 08:15:20",
"notified": false,
"ftp_username": "ftpidc551",
"ftp_password": "9nR0EaCz",
"expire_at": "2021-04-09 09:15:20",
"status": 1,
"rel_dlc": false,
"created_at": "2021-04-09 08:15:14",
"updated_at": "2021-04-09 08:15:14"
}
]
message": "FTP requested."
}
4. Upload files using FTP
You need to use a FTP client tool or integrate your own ftp code using any of the available libraries for ftp.
5. Publish an existing release
URL:
https://admin.idcgames.com/api/release/publish/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params: none
Example JSON response:
{
"success": true,
"errors": [],
"sync_url": "https://admin.idcgames.com/game/release/sync/131",
"json_url": "download.idcgames.com/games/idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/download.json"
}
6. Check synchronization status
URL:
https://admin.idcgames.com/api/release/check_sync/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params: none
Example JSON response:
{
"status": 1,
"progress": [
{
"file_name": "config.xml",
"file_progress": 100,
"file_speed": "",
"ip": "127.0.0.1"
}
]
}
7. Deactivate active release
URL:
https://admin.idcgames.com/api/release/remove_active
Type: POST
Params: none
Example JSON response:
{
"success": true
}
8. Activate a release
URL:
https://admin.idcgames.com/api/release/remove_active
Type: POST
Params: none
Example JSON response:
{
"success": true
}
Extra functions: Get active release
URL:
https://admin.idcgames.com/api/release/active/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params: none
Example JSON response:
{
"data": [
{
"id": 131,
"name": "1.20",
"exe": "testGame.exe",
"size": "100.28 MB",
"published": "2020-07-16T17:40:44.000000Z",
"active": true,
"splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
"ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
"sync_status": 1
}
]
}
Extra functions: List Existing releases
URL:
https://admin.idcgames.com/api/release/active/$releaseId (releaseId recovered from create release, get active release or list existing releases)
Type: POST
Params: none
Example JSON response (two active releases):
{
"data": [
{
"id": 130,
"name": "1.20",
"exe": "testGame.exe",
"size": "98.32 MB",
"published": "2020-05-13T18:12:32.000000Z",
"active": false,
"splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
"ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
"sync_status": 1
},
{
"id": 131,
"name": "1.20",
"exe": "testGame.exe",
"size": "100.28 MB",
"published": "2020-07-16T17:40:44.000000Z",
"active": true,
"splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
"ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
"sync_status": 1
}
]
}