teams-api ServiceThere are two methods for SDK access to Fiftyone Teams
The database direct connection requires each user to have root database privileges.
The FiftyOne Teams API provides Role Based Access Control (RBAC) permissions.
By default, the API is not exposed.
To expose the FiftyOne Teams API, configure a
Kubernetes Ingress to route traffic to the Kubernetes
teams-api service on port 80 via the WebSocket protocol.
We use WebSockets to maintain connections and enable long-running process execution.
Before exposing the teams-api service,
validate that your infrastructure supports the WebSockets protocol.
(For example, you may need to replace AWS Classic Load Balancers (LB)
with AWS Application Load Balancers (ALB) for WebSocket support.)
To expose the teams-api service, chose one of these two routing methods
Add a Second Host to the Ingress Controller
values.yaml
apiSettings.dnsName to the hostname to route API requests to
(e.g. demo-api.fiftyone.ai)Upgrade the deployment using the latest Helm chart
helm repo update voxel51
helm upgrade fiftyone-teams-app voxel51/fiftyone-teams-app \
-f ./values.yaml
Path based routing doesn’t require additional DNS entries and TLS certificates.
In values.yaml, remove apiSettings.dnsName.
This routes traffic to the API paths to the teams-api service.
Every Ingress Controller implementation is different. Consult your ingress controller documentation.
To use this chart’s ingress object
values.yaml
ingress.enabled to trueConfigure the Ingress paths to include
# values.yaml
ingress:
paths:
- path: /_pymongo
pathType: Prefix
serviceName: teams-api
servicePort: 80
- path: /health
pathType: Prefix
serviceName: teams-api
servicePort: 80
- path: /graphql/v1
pathType: Prefix
serviceName: teams-api
servicePort: 80
- path: /file
pathType: Prefix
serviceName: teams-api
servicePort: 80
- path: /cas
pathType: Prefix
serviceName: teams-cas
servicePort: 80
# Note: the ordering matters. This root path must be last.
- path: /
pathType: Prefix
serviceName: teams-app
servicePort: 80
Upgrade the deployment using the latest Helm chart
helm repo update voxel51
helm upgrade fiftyone-teams-app voxel51/fiftyone-teams-app \
-f ./values.yaml
In ~/.fiftyone/config.json, set
{
"api_uri": "https://<DEPOY_URL>",
"api_key": "<REDACTED>"
}
For more information, see API Connection.
Verify the connectivity by accessing the FiftyOne Teams API’s the health endpoint
$ curl https://<DEPOY_URL>/health
{"status":"available"}