Remote config

Ubah balancing, harga, dan feature flag tanpa merilis update. Setiap respons ditandatangani, diverifikasi di perangkat, dan di-cache untuk bermain offline.

Komentar kode dan nama API tetap dalam bahasa Inggris agar sesuai dengan SDK.

Di halaman ini

Tipe nilai#

Buat key di halaman Remote config. Nilai disimpan sebagai teks dengan tipe yang memberi tahu SDK cara membacanya:

TipeContohBatas
stringWelcome back!Hingga 10.000 karakter
number25Angka apa pun yang berhingga
booleanfalsetrue atau false
json{"sale": 0.2}Hingga 50.000 byte

Membaca nilai#

Getter tidak pernah gagal: getter mengembalikan nilai fallback Anda jika key tidak ada atau tidak bisa dikonversi.

C#
int damage = Majacloud.RemoteConfig.GetInt("enemy_damage", 25);
float speed = Majacloud.RemoteConfig.GetFloat("player_speed", 4.5f);
bool maintenance = Majacloud.RemoteConfig.GetBool("maintenance_mode", false);
string welcome = Majacloud.RemoteConfig.GetString("welcome_message", "Hi!");
ShopConfig shop = Majacloud.RemoteConfig.GetJson<ShopConfig>("shop");

Fetch dan pembaruan#

Unity dan Godot mengambil config saat game dimulai; di web, panggil fetch() sendiri. Fetch berikutnya mengirim ETag, sehingga config yang tidak berubah hanya menghasilkan satu respons 304 yang sangat kecil.

C#
Majacloud.RemoteConfig.ConfigUpdated += config => ApplyBalance();

var fetch = await Majacloud.RemoteConfig.FetchAsync(); // 304 when nothing changed
if (fetch.Ok) Debug.Log("Config v" + fetch.Value.Version + (fetch.Value.Changed ? " (new)" : ""));

Offline dan cache#

Config terakhir yang terverifikasi di-cache di perangkat dan dimuat saat game dimulai, sehingga getter tetap berfungsi saat offline dan sebelum fetch pertama selesai. Fetch yang gagal karena jaringan tetap memakai salinan cache; config yang lebih lama dari salinan cache ditolak.

Verifikasi tanda tangan#

data adalah payload base64url, checksum adalah SHA-256-nya, dan signature adalah tanda tangan RSA-SHA256 atas data, dibuat dengan private key di storage/keys/. SDK memeriksa ketiganya, ditambah project ID dan versi, sebelum memakai config.

SDKSumber public key
UnityTools ▸ Majacloud ▸ Setup ▸ Test connection
GodotProject ▸ Tools ▸ Majacloud: Test connection
WebOpsi configPublicKey (PEM di halaman API key)
RESTGET /v1/project → config_public_key_pem
Tanpa public key yang tersimpan, SDK mengambilnya saat pertama kali dipakai. Simpan (pin) key ini di build produksi, dan sertakan storage/keys/ dalam backup Anda: game mengunci public key-nya.

Anda bisa memverifikasi respons sendiri dengan OpenSSL:

bash
# Verify a config response yourself (what every SDK does before using it)
curl -s https://majacloud.majanite.com/v1/project -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" | jq -r .project.config_public_key_pem > public.pem
curl -s https://majacloud.majanite.com/v1/config -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" > response.json

jq -j .data response.json > data.txt
jq -r .signature response.json | base64 --decode > signature.bin
openssl dgst -sha256 -verify public.pem -signature signature.bin data.txt   # Verified OK
jq -r .data response.json | tr '_-' '/+' | base64 --decode 2>/dev/null | jq .     # the payload

Riwayat dan pemulihan#

Setiap perubahan diberi versi. Dashboard menyimpan riwayat selama 7 hingga 365 hari tergantung paket, dan bisa memulihkan nilai sebelumnya dengan satu klik.

Cari judul halaman, subjudul, dan teks.

↑↓ untuk berpindah ↵ untuk membuka Esc untuk menutup