You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: feature-registry-app/README.md
+59-6Lines changed: 59 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,14 @@ date: 2025-08-05
7
7
8
8
# 🚀 Feature Registry Application
9
9
10
-
This application provides a modern interface for discovering and managing features with seamless integration to Unity Catalog.
10
+
This is a modern web application that allows users to interact with the Databricks Feature Registry. The app provides a user-friendly interface for exploring existing features in Unity Catalog. Additionally, users can generate code for creating feature specs and training sets to train machine learning models and deploy features as Feature Serving Endpoints.
11
11
12
12
## ✨ Features
13
13
14
-
- 🔍 List and search for features
14
+
- 🔍 List and search for features in Unity Catalog
15
15
- 🔒 On-behalf-of-user authentication
16
16
- ⚙️ Code-gen for creating feature specs and training sets
17
+
- 📋 Configurable catalog allow-listing for access control
17
18
18
19
## 🏗️ Architecture
19
20
@@ -25,11 +26,63 @@ The application is built with:
1. Log into your destination Databricks workspace and navigate to "Compute > Apps"
33
+
2. Click on "Create App" and select "Create a custom app"
34
+
3. Enter an app name and click "Create app"
35
+
36
+
### Customization
37
+
1. Create a file named `deploy_config.sh` in the root folder with the following variables:
38
+
```sh
39
+
# Path to a destination folder in default Databricks workspace where source code will be sync'ed
40
+
export DEST=/Workspace/Users/Path/To/App/Code
41
+
# Name of the App to deploy
42
+
export APP_NAME=your-app-name
43
+
```
44
+
Or simply run `./deploy.sh` - it will create a template file if it doesn't exist
45
+
46
+
2. Update `deploy_config.sh` with the config for your environment
47
+
48
+
3. Ensure the Databricks CLI is installed and configured on your machine. The "DEFAULT" profile should point to the destination workspace where the app will be deployed. You can find instructions here for [AWS](https://docs.databricks.com/dev-tools/cli/index.html) / [Azure](https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/)
49
+
50
+
### Deploy the App
51
+
1. Navigate to the app directory
52
+
2. Run `./deploy.sh` shell command. This will sync the app code to the destination workspace location and deploy the app
53
+
3. Navigate to the Databricks workspace and access the app via "Compute > Apps"
54
+
55
+
## 🔐 Access Control
56
+
57
+
### Catalog Allow-Listing
58
+
59
+
By default, the Feature Registry App will show all the catalogs to which the user has read access. You can restrict which Unity Catalog catalogs users can explore for features. This is useful for:
60
+
- Limiting feature discovery to production-ready catalogs
61
+
- Ensuring data scientists only access approved feature sets
62
+
- Organizing features by teams or projects
63
+
64
+
#### Setting Up Allow-Listed Catalogs
65
+
66
+
1. Edit the `src/uc_catalogs_allowlist.yaml` file
67
+
2. Uncomment and add the catalog names you want to allow:
68
+
69
+
```yaml
70
+
# List catalogs that should be accessible in the Feature Registry App
71
+
- production_features
72
+
- team_a_catalog
73
+
- ml_features_catalog
74
+
```
75
+
76
+
3. If the file is empty or all entries are commented out, the app will show all catalogs available to the user
77
+
4. Deploy the app with the updated configuration
78
+
79
+
**Note:** Users will still need appropriate permissions in Unity Catalog to access the data within these catalogs. The allow-list acts as an additional filter on top of existing permissions.
80
+
28
81
## 🔑 Requirements
29
82
30
83
The application requires the following scopes:
31
-
-`catalog.catalogs`
32
-
-`catalog.schemas`
33
-
-`catalog.tables`
84
+
- `catalog.catalogs:read`
85
+
- `catalog.schemas:read`
86
+
- `catalog.tables:read`
34
87
35
-
The app owner needs to grant other users `Can Use` permission for the app itself, along with the access to the underlying Datarbricks resources.
88
+
The app owner needs to grant other users `Can Use` permission for the app itself, along with access to the underlying Databricks resources.
[[ -d"./src"&&-f"./src/app.yaml" ]] || { echo_red "Error: Couldn't find app.yaml. \nPlease run this script from the //sandbox/feature-registry-app directory.";exit 1; }
7
+
8
+
# Users: Make sure you have a ./deploy_config.sh file that sets the necessary variables for this script.
9
+
[ -f"./deploy_config.sh" ] || {
10
+
cat <<EOF > deploy_config.sh
11
+
# Path to a folder in the workspace. E.g. /Workspace/Users/Path/To/App/Code
12
+
export DEST=""
13
+
# Name of the App to deploy. E.g. your-app-name
14
+
export APP_NAME=""
15
+
EOF
16
+
echo_red "Please update deploy_config.sh and run again."
- name: UC_CATALOGS_ALLOWLIST # Set this to the path of the yaml file that contains the allow-listed UC catalogs. The Feature Registry App will restrict the search of features only to this list of catalogs.
0 commit comments