Skip to content

Commit d702473

Browse files
committed
added model of satellite
1 parent 48ba427 commit d702473

3 files changed

Lines changed: 65 additions & 1 deletion

File tree

api-server/app/satellite/models/satellite_database_model.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from datetime import datetime
55
from pydantic import Field, Any, field_validator
66
from .access_types import AccessTypeEnum
7+
from docker_image import reference
78

89
from app.project.models.project_database_model import Project
910

@@ -29,6 +30,9 @@ class Satellite(Document):
2930

3031
updated_at: datetime = Field(default_factory=datetime.now, description="Date and time when the satellite was last updated")
3132

33+
image_uri: str = Field(..., description="OCI/Docker image URI for the satellite")
34+
35+
timeout: int = Field(..., description="Timeout of the satellite in seconds")
3236

3337
@field_validator("configs", "inputs", "metrics", "outputs")
3438
def validate_jsonschema(cls, v: dict[str, Any]) -> dict[str, Any]:
@@ -40,7 +44,14 @@ def validate_jsonschema(cls, v: dict[str, Any]) -> dict[str, Any]:
4044
raise ValueError(f"Invalid JSON schema: {e.message}")
4145

4246
return v
43-
47+
48+
@field_validator("image_uri")
49+
def validate_image_uri(cls, v: str) -> str:
50+
try:
51+
reference.Reference.parse(v)
52+
except Exception as e:
53+
raise ValueError(f"Invalid image URI: {e.message}")
54+
return v
4455

4556
@before_event([Save, Replace])
4657
def update_updated_at(self):

api-server/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ requires-python = ">=3.12"
77
dependencies = [
88
"bcrypt>=4.3.0",
99
"beanie>=1.30.0",
10+
"docker-image-py>=0.1.13",
1011
"fastapi>=0.115.14",
1112
"jsonschema>=4.24.0",
1213
"pyjwt>=2.10.1",

api-server/uv.lock

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)