Menyediakan instance Looker baru secara otomatis

Secara opsional, saat memulai instance Looker baru yang dihosting pelanggan, Anda dapat menyediakan instance secara otomatis dengan kunci lisensi, URL host, dan akun pengguna awal.

Menyediakan instance baru secara otomatis dengan pengguna email

Saat pertama kali dimulai, Looker akan memindai file bernama provision.yml di direktori looker, tempat file JAR berada. Format untuk file ini adalah sebagai berikut:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
user:
  first_name: "Ariel"
  last_name: "Q"
  email: "arielq@altostrat.com"
  password: "password123"

Jika instance Looker baru dan belum disiapkan, instance tersebut akan disediakan dengan kunci lisensi yang diberikan dan akun pengguna dengan informasi yang diberikan.

Jika Looker telah disediakan, nilai kunci lisensi dan URL host akan menggantikan kunci lisensi dan URL host yang saat ini ditetapkan. Info pengguna akan diabaikan. Hal ini berguna untuk mengupdate instance staging Looker dengan salinan baru database internal instance produksi, sambil tetap mempertahankan kunci lisensi dan URL terpisah untuk server staging.

Menyediakan instance baru secara otomatis dengan pengguna API

Saat memulai instance Looker baru, Anda dapat menyediakan pengguna API awal secara terprogram. Anda dapat menyediakan pengguna API ATAU pengguna email, tetapi Looker tidak mendukung penyediaan pengguna API dan pengguna email secara bersamaan.

Membuat kredensial API

Untuk menyediakan pengguna API, buat client ID dan secret klien yang akan dibaca dan disimpan Looker ke database. Persyaratan untuk kredensial ini adalah:

  • Panjang ID klien harus 20 karakter.
  • Panjang secret klien harus 24 karakter.
  • Kedua string harus dapat disertakan dalam isi permintaan POST, sehingga sebaiknya gunakan hanya karakter alfanumerik.

Misalnya, Looker menggunakan kode berikut untuk membuat kredensial ini secara terprogram:

require 'securerandom'

TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze

def generate_token(size)
  Array.new(size).map { TOKEN_SYMBOLS[SecureRandom.random_number(TOKEN_SYMBOLS.size)] }.join
end

Kode ini menghindari karakter ambigu agar string tidak terlalu rentan terhadap error.

Anda juga dapat membuat string yang sesuai menggunakan perintah openssl:

openssl rand -hex 10

Angka di akhir perintah openssl adalah jumlah byte dalam string, jadi gunakan 10 untuk client ID dan 12 untuk rahasia klien.

Menyediakan pengguna API

Untuk menyediakan pengguna API saat memulai, pastikan Anda memiliki file provision.yml yang menyertakan kunci lisensi dan URL host di direktori looker. Contoh:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"

Buat file bernama api-provision.yml dengan izin 0600 di direktori looker yang menyertakan informasi pengguna API. Contoh:

user:
  first_name: "Ariel"
  last_name: "Q"
  client_id: "M9hZb8vRh9bSZzdPxw42"
  client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"

Sebaiknya simpan kredensial ini di pengelola secret di luar file ini, karena file ini akan dihapus saat startup setelah instance Looker memproses dan membuat pengguna di database.

Saat memulai, jika instance kosong dan tidak ada pengguna, Looker akan membuat pengguna API admin Looker dengan kredensial ini dan menghapus file api-provision.yml dari disk.

Kemudian, Anda memiliki waktu 30 menit untuk menggunakan kredensial ini guna melakukan penyediaan tambahan sebelum kredensial dihapus dari database internal dan tidak dapat digunakan lagi. Menghapus kredensial awal ini akan menghindari pembuatan backdoor yang berumur panjang ke dalam aplikasi dan menjaga kasus penggunaan yang diinginkan hanya untuk penyediaan.