[visibility] Further limit visibility

Removes the wildcard //src/cobalt/bin/* visibility

Change-Id: I0429d57e32fe2034ba986a5fe78882c3a0a6754d
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/495218
Commit-Queue: Zach Bush <zmbush@google.com>
Fuchsia-Auto-Submit: Zach Bush <zmbush@google.com>
Reviewed-by: Cameron Dale <camrdale@google.com>
diff --git a/src/lib/clearcut/BUILD.gn b/src/lib/clearcut/BUILD.gn
index 9d69182..7683ffe 100644
--- a/src/lib/clearcut/BUILD.gn
+++ b/src/lib/clearcut/BUILD.gn
@@ -30,7 +30,7 @@
     "$cobalt_root/src/logger:internal_metrics",
     "//third_party/abseil-cpp",
   ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/utils:fuchsia_http_client" ]
 }
 
 source_set("uploader_test") {
diff --git a/src/lib/statusor/BUILD.gn b/src/lib/statusor/BUILD.gn
index cae9833..fb41462 100644
--- a/src/lib/statusor/BUILD.gn
+++ b/src/lib/statusor/BUILD.gn
@@ -4,7 +4,7 @@
 
 visibility = [
   "$cobalt_root/*",
-  "//src/cobalt/bin/*",
+  "//src/cobalt/bin/utils:fuchsia_http_client",
 ]
 
 static_library("statusor") {
diff --git a/src/lib/util/BUILD.gn b/src/lib/util/BUILD.gn
index 1bf5ba1..2ce7327 100644
--- a/src/lib/util/BUILD.gn
+++ b/src/lib/util/BUILD.gn
@@ -10,7 +10,10 @@
 source_set("clock") {
   sources = [ "clock.h" ]
 
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [
+    "//src/cobalt/bin/utils:clock",
+    "//src/cobalt/bin/testapp:cobalt_testapp",
+  ]
 }
 
 source_set("sleeper") {
@@ -94,7 +97,7 @@
   ]
   configs += [ "$cobalt_root:cobalt_config" ]
   public_deps = [ "$cobalt_root/src/registry:cobalt_registry_proto" ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/testapp:cobalt_testapp" ]
 }
 
 source_set("datetime_util_test") {
@@ -120,7 +123,7 @@
     "$cobalt_root/src/lib/statusor",
     "//third_party/abseil-cpp/absl/strings",
   ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:lib" ]
 }
 
 test("file_util_test") {
@@ -162,7 +165,7 @@
     "$cobalt_root/src:logging",
     "$cobalt_root/src/lib/crypto_util",
   ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:lib" ]
 }
 
 static_library("status") {
@@ -195,7 +198,7 @@
   ]
   configs += [ "$cobalt_root:cobalt_config" ]
   public_deps = [ ":file_system" ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:lib" ]
 }
 
 static_library("consistent_proto_store") {
diff --git a/src/logger/BUILD.gn b/src/logger/BUILD.gn
index 3aa3b34..487dbdd 100644
--- a/src/logger/BUILD.gn
+++ b/src/logger/BUILD.gn
@@ -273,8 +273,7 @@
     "//third_party/googletest:gtest",
   ]
   public_configs = [ "$cobalt_root:cobalt_config" ]
-
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:cobalt_app_unittests" ]
 }
 
 source_set("logger_test_utils") {
@@ -300,7 +299,7 @@
     "//third_party/googletest:gtest",
   ]
   public_configs = [ "$cobalt_root:cobalt_config" ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:cobalt_app_unittests" ]
 }
 
 source_set("event_loggers_test") {
diff --git a/src/registry/BUILD.gn b/src/registry/BUILD.gn
index 2bba885..929bd2d 100644
--- a/src/registry/BUILD.gn
+++ b/src/registry/BUILD.gn
@@ -40,7 +40,7 @@
     "$cobalt_root:cobalt_config",
   ]
 
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/testapp:cobalt_testapp" ]
 }
 
 go_library("cobalt_registry_proto_go") {
diff --git a/src/system_data/BUILD.gn b/src/system_data/BUILD.gn
index eac058c..cc9f9ca 100644
--- a/src/system_data/BUILD.gn
+++ b/src/system_data/BUILD.gn
@@ -23,7 +23,7 @@
     "configuration_data.h",
   ]
   configs += [ "$cobalt_root:cobalt_config" ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:lib" ]
 }
 
 source_set("system_data") {
@@ -42,7 +42,7 @@
     "$cobalt_root/src/pb",
     "$cobalt_root/src/registry:cobalt_registry_proto",
   ]
-  visibility += [ "//src/cobalt/bin/*" ]
+  visibility += [ "//src/cobalt/bin/app:lib" ]
 }
 
 source_set("client_secret") {
diff --git a/tools/lint_visibility.py b/tools/lint_visibility.py
index 3e29e5c..dbeb9e4 100755
--- a/tools/lint_visibility.py
+++ b/tools/lint_visibility.py
@@ -17,25 +17,32 @@
 
 # This is the list of targets that are currently used out-of-tree.
 #
-# Any new targets used outside of the tree should be accessible through //src/public
+# Any new targets used outside of the tree should be accessible through //src/public or //src/lib/client
 #
 # DO NOT ADD ANY NEW ENTRIES TO THIS DICT
 out_of_tree_visibility_whitelist = {
-    '//src/cobalt/bin/*': [
-        '//src/lib/clearcut:clearcut',
-        '//src/lib/statusor:statusor',
-        '//src/lib/util:clock',
-        '//src/lib/util:datetime_util',
+    '//src/cobalt/bin/app:cobalt_app_unittests': [
+        '//src/logger:fake_logger',
+        '//src/logger:logger_test_utils',
+    ],
+    '//src/cobalt/bin/app:lib': [
         '//src/lib/util:file_util',
         '//src/lib/util:pem_util',
         '//src/lib/util:posix_file_system',
-        '//src/logger:fake_logger',
-        '//src/logger:logger_test_utils',
-        '//src/registry:cobalt_registry_proto',
+        '//src/logger:logger',
         '//src/system_data:configuration_data',
         '//src/system_data:system_data',
     ],
-    '//src/cobalt/bin/app:lib': ['//src/logger:logger'],
+    '//src/cobalt/bin/testapp:cobalt_testapp': [
+        '//src/lib/util:clock',
+        '//src/lib/util:datetime_util',
+        '//src/registry:cobalt_registry_proto',
+    ],
+    '//src/cobalt/bin/utils:clock': ['//src/lib/util:clock'],
+    '//src/cobalt/bin/utils:fuchsia_http_client': [
+        '//src/lib/clearcut:clearcut',
+        '//src/lib/statusor:statusor',
+    ],
 }