-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.example.yaml
More file actions
86 lines (81 loc) · 4.01 KB
/
Copy pathsettings.example.yaml
File metadata and controls
86 lines (81 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# google2snipe — sync ChromeOS devices from the Google Admin SDK into Snipe-IT.
# Copy to settings.yaml and fill in. Secrets can also come from env:
# SNIPE_URL, SNIPE_API_KEY, GOOGLE_APPLICATION_CREDENTIALS,
# GOOGLE_IMPERSONATE_SUBJECT, GOOGLE_CUSTOMER_ID
google:
# Service-account JSON key with domain-wide delegation. Grant the SA the
# scope https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly
# in Admin Console > Security > API controls > Domain-wide delegation.
credentials_file: /path/to/service-account.json
# An admin user to impersonate (DWD). Required.
impersonate_subject: admin@example.com
customer_id: my_customer # default; resolves to your account's customer
projection: full # full (default) | basic. FULL is needed for
# recentUsers (checkout fallback) + report fields.
org_unit_path: "" # optional: only sync this OU subtree
query: "" # optional: Directory API search query
snipe_it:
url: https://snipe.example.com
api_key: REPLACE_ME
default_status_id: 2 # status for new/unmapped assets (REQUIRED)
default_category_id: 5 # ChromeOS category (REQUIRED)
default_manufacturer_id: 0 # fallback when vendor can't be derived from model
custom_fieldset_id: 3 # fieldset for ChromeOS models (REQUIRED for setup)
# Map ChromeOS lifecycle status -> Snipe status label IDs.
status_map:
ACTIVE: 2
DEPROVISIONED: 4
DISABLED: 4
# Map model-vendor (lowercased first token of `model`) -> manufacturer ID.
manufacturer_ids:
lenovo: 10
acer: 11
hp: 12
dell: 13
asus: 14
google: 15
sync:
dry_run: false
rate_limit: true # token-bucket limit on Snipe-IT writes
concurrency: 8 # parallel Snipe-IT workers; 1 = serial
update_only: false
set_name: false
name_template: "{annotatedAssetId}"
# Drop the leading vendor token from auto-created model names so it isn't
# duplicated with the manufacturer (e.g. "HP Chromebook 14c" -> model
# "Chromebook 14c" + manufacturer "HP"). Off by default = keep the full string.
strip_model_vendor: false
cache_dir: .cache
asset_tag:
template: "{annotatedAssetId}" # empty render -> Snipe auto-assigns
# field_mapping is populated by `google2snipe setup`. Example shape:
# _snipeit_chrome_serial_1: serialNumber
# _snipeit_chrome_ram_2: {path: systemRamTotal, transform: bytes_to_gb}
field_mapping: {}
checkout:
enabled: false
use_annotated_user: true
fallback_to_recent: true
recent_user_domain: example.com # only count recent users at this domain
match_field: email # email | username | employee_num
mode: assign # assign | sync | force
# --- Optional / opt-in fields (not created by `setup`; add to field_mapping
# manually if you want them) ---
# _snipeit_chrome_meid_X: meid # cellular models only
# _snipeit_chrome_wan_ip_X: lastKnownNetwork.0.wanIpAddress
# _snipeit_chrome_dock_mac_X: {path: dockMacAddress, transform: mac_colons}
# _snipeit_chrome_will_renew_X: {path: willAutoRenew, transform: bool_yes_no}
# _snipeit_chrome_deprovision_reason_X: deprovisionReason
# Optional: license cost sync (run `google2snipe licenses setup` to populate).
licenses:
enabled: false
default_license_category_id: 0 # REQUIRED when enabled (Snipe license category).
# Leave blank at the `licenses setup` prompt to create one automatically.
chrome: # keyed by deviceLicenseType; perpetual => non-reassignable
educationUpgradePerpetual:
name: "Chrome Education Upgrade (Perpetual)"
cost: 0.00 # one-time per device/seat
workspace:
customer_id: "" # Workspace domain or customer id ("" => derive from impersonate_subject)
products: [] # filled by `licenses setup`
sku_costs: {} # SKU -> per-seat $/yr