Menyediakan otomatis instance Looker baru

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

Menyediakan instance baru secara otomatis dengan pengguna email

Saat startup awal, Looker akan memindai file bernama provision.yml di direktori looker, tempat file JAR berada. Format 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 diberi kunci lisensi tertentu dan akun pengguna dengan informasi yang diberikan.

Jika Looker telah disediakan, nilai kunci lisensi dan URL host akan menggantikan kunci lisensi dan URL host apa pun yang saat ini ditetapkan. Info pengguna akan diabaikan. Hal ini berguna untuk mengupdate instance staging Looker dengan salinan baru dari database internal instance produksi, dengan 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 rahasia klien yang akan dibaca dan disimpan Looker ke database. Persyaratan untuk kredensial ini adalah:

  • Client ID harus terdiri dari 20 karakter.
  • Rahasia klien harus terdiri dari 24 karakter.
  • Kedua string harus dapat disertakan dalam isi permintaan POST. Oleh karena itu, sebaiknya hanya gunakan karakter alfanumerik.

Misalnya, Looker menggunakan kode berikut untuk menghasilkan 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 di atas menghindari karakter ambigu untuk membuat string tidak 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 secret manager di luar file ini, karena file ini akan dihapus saat startup setelah instance Looker memproses dan membuat pengguna di database.

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

Anda memiliki waktu 30 menit untuk menggunakan kredensial ini untuk melakukan penyediaan tambahan sebelum kredensial dihapus dari database internal dan tidak dapat digunakan lagi. Menghapus kredensial awal ini akan mencegah pembuatan backdoor (pintu belakang) yang berumur panjang ke aplikasi dan hanya mempertahankan kasus penggunaan yang dimaksud.