diff --git a/buffet/buffet_config.cc b/buffet/buffet_config.cc
index bcab1ef..a97b654 100644
--- a/buffet/buffet_config.cc
+++ b/buffet/buffet_config.cc
@@ -57,7 +57,9 @@
 const char kName[] = "name";
 const char kDescription[] = "description";
 const char kLocation[] = "location";
-const char kAnonymousAccessRole[] = "anonymous_access_role";
+const char kLocalAnonymousAccessRole[] = "local_anonymous_access_role";
+const char kLocalDiscoveryEnabled[] = "local_discovery_enabled";
+const char kLocalPairingEnabled[] = "local_pairing_enabled";
 const char kOemName[] = "oem_name";
 const char kModelName[] = "model_name";
 const char kModelId[] = "model_id";
@@ -107,22 +109,32 @@
   store.GetString(config_keys::kDescription, &description_);
   store.GetString(config_keys::kLocation, &location_);
 
-  store.GetString(config_keys::kAnonymousAccessRole, &anonymous_access_role_);
-  CHECK(IsValidAccessRole(anonymous_access_role_))
-      << "Invalid role: " << anonymous_access_role_;
+  store.GetString(config_keys::kLocalAnonymousAccessRole,
+                  &local_anonymous_access_role_);
+  CHECK(IsValidAccessRole(local_anonymous_access_role_))
+      << "Invalid role: " << local_anonymous_access_role_;
+
+  store.GetBoolean(config_keys::kLocalDiscoveryEnabled,
+                   &local_discovery_enabled_);
+  store.GetBoolean(config_keys::kLocalPairingEnabled, &local_pairing_enabled_);
 }
 
-void BuffetConfig::set_name(const std::string& name) {
-  CHECK(!name.empty());
-  name_ = name;
-}
-
-void BuffetConfig::set_anonymous_access_role(const std::string& role) {
-  if (IsValidAccessRole(role)) {
-    anonymous_access_role_ = role;
-  } else {
-    LOG(ERROR) << "Invalid role: " << role;
+bool BuffetConfig::set_name(const std::string& name) {
+  if (name.empty()) {
+    LOG(ERROR) << "Invalid name: " << name;
+    return false;
   }
+  name_ = name;
+  return true;
+}
+
+bool BuffetConfig::set_local_anonymous_access_role(const std::string& role) {
+  if (!IsValidAccessRole(role)) {
+    LOG(ERROR) << "Invalid role: " << role;
+    return false;
+  }
+  local_anonymous_access_role_ = role;
+  return true;
 }
 
 }  // namespace buffet
diff --git a/buffet/buffet_config.h b/buffet/buffet_config.h
index e3fc6ba..0ebdf8e 100644
--- a/buffet/buffet_config.h
+++ b/buffet/buffet_config.h
@@ -33,14 +33,25 @@
   const std::string& name() const { return name_; }
   const std::string& description() const { return description_; }
   const std::string& location() const { return location_; }
-  std::string anonymous_access_role() const { return anonymous_access_role_; }
+  std::string local_anonymous_access_role() const {
+    return local_anonymous_access_role_;
+  }
+  bool local_pairing_enabled() const { return local_pairing_enabled_; }
+  bool local_discovery_enabled() const { return local_discovery_enabled_; }
 
-  void set_name(const std::string& name);
+  bool set_name(const std::string& name);
   void set_description(const std::string& description) {
     description_ = description;
   }
   void set_location(const std::string& location) { location_ = location; }
-  void set_anonymous_access_role(const std::string& role);
+
+  bool set_local_anonymous_access_role(const std::string& role);
+  void set_local_discovery_enabled(bool enabled) {
+    local_discovery_enabled_ = enabled;
+  }
+  void set_local_pairing_enabled(bool enabled) {
+    local_pairing_enabled_ = enabled;
+  }
 
  private:
   std::string client_id_{"58855907228.apps.googleusercontent.com"};
@@ -51,7 +62,9 @@
   std::string name_{"Developer device"};
   std::string description_;
   std::string location_;
-  std::string anonymous_access_role_{"viewer"};
+  std::string local_anonymous_access_role_{"viewer"};
+  bool local_discovery_enabled_{true};
+  bool local_pairing_enabled_{true};
   std::string oem_name_{"Chromium"};
   std::string model_name_{"Brillo"};
   std::string model_id_{"AAAAA"};
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index 80e7e9b..2fd2bfb 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -45,7 +45,9 @@
 const char kName[] = "name";
 const char kDescription[] = "description";
 const char kLocation[] = "location";
-const char kAnonymousAccessRole[] = "anonymous_access_role";
+const char kLocalAnonymousAccessRole[] = "local_anonymous_access_role";
+const char kLocalDiscoveryEnabled[] = "local_discovery_enabled";
+const char kLocalPairingEnabled[] = "local_pairing_enabled";
 
 }  // namespace storage_keys
 }  // namespace buffet
@@ -189,7 +191,7 @@
 
   // Read all available data before failing.
   std::string name;
-  if (dict->GetString(storage_keys::kName, &name) && !name.empty())
+  if (dict->GetString(storage_keys::kName, &name))
     config_->set_name(name);
 
   std::string description;
@@ -201,8 +203,18 @@
     config_->set_location(location);
 
   std::string access_role;
-  if (dict->GetString(storage_keys::kAnonymousAccessRole, &access_role))
-    config_->set_anonymous_access_role(access_role);
+  if (dict->GetString(storage_keys::kLocalAnonymousAccessRole, &access_role))
+    config_->set_local_anonymous_access_role(access_role);
+
+  bool local_discovery_enabled{false};
+  if (dict->GetBoolean(storage_keys::kLocalDiscoveryEnabled,
+                       &local_discovery_enabled))
+    config_->set_local_discovery_enabled(local_discovery_enabled);
+
+  bool local_pairing_enabled{false};
+  if (dict->GetBoolean(storage_keys::kLocalPairingEnabled,
+                       &local_pairing_enabled))
+    config_->set_local_pairing_enabled(local_pairing_enabled);
 
   dict->GetString(storage_keys::kRefreshToken, &refresh_token_);
   dict->GetString(storage_keys::kRobotAccount, &device_robot_account_);
@@ -233,8 +245,12 @@
   dict.SetString(storage_keys::kName, config_->name());
   dict.SetString(storage_keys::kDescription, config_->description());
   dict.SetString(storage_keys::kLocation, config_->location());
-  dict.SetString(storage_keys::kAnonymousAccessRole,
-                 config_->anonymous_access_role());
+  dict.SetString(storage_keys::kLocalAnonymousAccessRole,
+                 config_->local_anonymous_access_role());
+  dict.SetBoolean(storage_keys::kLocalDiscoveryEnabled,
+                  config_->local_discovery_enabled());
+  dict.SetBoolean(storage_keys::kLocalPairingEnabled,
+                  config_->local_pairing_enabled());
 
   return storage_->Save(dict);
 }
@@ -765,17 +781,16 @@
                                               const std::string& description,
                                               const std::string& location,
                                               chromeos::ErrorPtr* error) {
-  if (name.empty()) {
-    chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainBuffet,
-                           "invalid_parameter", "Empty device name");
+  if (!config_->set_name(name)) {
+    chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomainBuffet,
+                                 "invalid_parameter", "Invalid name: %s",
+                                 name.c_str());
     return false;
   }
-  config_->set_name(name);
   config_->set_description(description);
   config_->set_location(location);
 
   Save();
-
   OnConfigChanged();
 
   if (HaveRegistrationCredentials(nullptr)) {
@@ -1040,7 +1055,7 @@
   manager_->SetName(config_->name());
   manager_->SetDescription(config_->description());
   manager_->SetLocation(config_->location());
-  manager_->SetAnonymousAccessRole(config_->anonymous_access_role());
+  manager_->SetAnonymousAccessRole(config_->local_anonymous_access_role());
 }
 
 void DeviceRegistrationInfo::OnCommandDefsChanged() {
diff --git a/buffet/device_registration_info_unittest.cc b/buffet/device_registration_info_unittest.cc
index 417aff4..934ae51 100644
--- a/buffet/device_registration_info_unittest.cc
+++ b/buffet/device_registration_info_unittest.cc
@@ -198,7 +198,9 @@
     config_store.SetString("name",  "Coffee Pot");
     config_store.SetString("description", "Easy to clean");
     config_store.SetString("location", "Kitchen");
-    config_store.SetString("anonymous_access_role", "viewer");
+    config_store.SetString("local_anonymous_access_role", "viewer");
+    config_store.SetBoolean("local_local_discovery_enabled", true);
+    config_store.SetBoolean("local_local_pairing_enabled", false);
     config_store.SetString("model_id", "AAAAA");
     config_store.SetString("oauth_url", test_data::kOAuthURL);
     config_store.SetString("service_url", test_data::kServiceURL);
@@ -241,16 +243,19 @@
 }
 
 TEST_F(DeviceRegistrationInfoTest, VerifySave) {
-  base::DictionaryValue data;
-  data.SetString(storage_keys::kRefreshToken, "d");
-  data.SetString(storage_keys::kDeviceId, "e");
-  data.SetString(storage_keys::kRobotAccount, "h");
-  data.SetString(storage_keys::kName, "k");
-  data.SetString(storage_keys::kDescription, "l");
-  data.SetString(storage_keys::kLocation, "m");
-  data.SetString(storage_keys::kAnonymousAccessRole, "user");
+  auto expected = R"({
+     'description': 'l',
+     'device_id': 'e',
+     'local_anonymous_access_role': 'user',
+     'local_discovery_enabled': true,
+     'local_pairing_enabled': true,
+     'location': 'm',
+     'name': 'k',
+     'refresh_token': 'd',
+     'robot_account': 'h'
+  })";
 
-  storage_->Save(data);
+  storage_->Save(*unittests::CreateDictionaryValue(expected));
 
   // This test isn't really trying to test Load, it is just the easiest
   // way to initialize the properties in dev_reg_.
@@ -260,7 +265,8 @@
   base::DictionaryValue empty;
   storage_->Save(empty);
   EXPECT_TRUE(DeviceRegistrationInfo::TestHelper::Save(dev_reg_.get()));
-  EXPECT_TRUE(storage_->Load()->Equals(&data));
+
+  EXPECT_JSON_EQ(expected, *storage_->Load());
 }
 
 TEST_F(DeviceRegistrationInfoTest, GetOAuthURL) {
diff --git a/buffet/device_registration_storage_keys.h b/buffet/device_registration_storage_keys.h
index d48bbf8..5ce8083 100644
--- a/buffet/device_registration_storage_keys.h
+++ b/buffet/device_registration_storage_keys.h
@@ -17,7 +17,9 @@
 extern const char kName[];
 extern const char kDescription[];
 extern const char kLocation[];
-extern const char kAnonymousAccessRole[];
+extern const char kLocalAnonymousAccessRole[];
+extern const char kLocalDiscoveryEnabled[];
+extern const char kLocalPairingEnabled[];
 
 }  // namespace storage_keys
 }  // namespace buffet
