You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/types/prefs
Nick Khyl af3d3c433b types/prefs: add a package containing generic preference types
This adds a new package containing generic types to be used for defining preference hierarchies.
These include prefs.Item, prefs.List, prefs.StructList, and prefs.StructMap. Each of these types
represents a configurable preference, holding the preference's state, value, and metadata.
The metadata includes the default value (if it differs from the zero value of the Go type)
and flags indicating whether a preference is managed via syspolicy or is hidden/read-only for
another reason. This information can be marshaled and sent to the GUI, CLI and web clients
as a source of truth regarding preference configuration, management, and visibility/mutability states.

We plan to use these types to define device preferences, such as the updater preferences,
the permission mode to be used on Windows with #tailscale/corp#18342, and certain global options
that are currently exposed as tailscaled flags. We also aim to eventually use these types for
profile-local preferences in ipn.Prefs and and as a replacement for ipn.MaskedPrefs.

The generic preference types are compatible with the tailscale.com/cmd/viewer and
tailscale.com/cmd/cloner utilities.

Updates #12736

Signed-off-by: Nick Khyl <nickk@tailscale.com>
3 months ago
..
prefs_example types/prefs: add a package containing generic preference types 3 months ago
item.go types/prefs: add a package containing generic preference types 3 months ago
list.go types/prefs: add a package containing generic preference types 3 months ago
map.go types/prefs: add a package containing generic preference types 3 months ago
options.go types/prefs: add a package containing generic preference types 3 months ago
prefs.go types/prefs: add a package containing generic preference types 3 months ago
prefs_clone_test.go types/prefs: add a package containing generic preference types 3 months ago
prefs_test.go types/prefs: add a package containing generic preference types 3 months ago
prefs_view_test.go types/prefs: add a package containing generic preference types 3 months ago
struct_list.go types/prefs: add a package containing generic preference types 3 months ago
struct_map.go types/prefs: add a package containing generic preference types 3 months ago