Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MVP Resource Manager #7

Open
wants to merge 89 commits into
base: main
Choose a base branch
from
Open

MVP Resource Manager #7

wants to merge 89 commits into from

Conversation

Dozgulbas
Copy link

Implemented Core Resource Management Features
Summary

This PR implements key functionalities for resource and resource type management, enabling the system to handle various resource operations, including creation, modification, tracking, and structured hierarchy management.

Completed Features

✅ Resource & ResourceType Management

  • Added support for defining Resource and ResourceType.
  • Implemented logic for managing default resource definitions (create if missing, attach if existing).
  • Ensured resource types can be linked to an owner via a unique ID.

✅ Resource Hierarchy & Custom Types

  • Introduced base types and support for user-defined custom ResourceTypes as compositions of base types.
  • Enabled ancestor relationships, allowing hierarchical structures (e.g., 96 well plate → ANSI/SLAS labware).

✅ Resource Operations

  • Added support for creating, modifying, and removing resources.
  • Implemented support for Assets (unique items like samples, labware) and Consumables (undifferentiated items like pipette tips).
  • Developed Containers, allowing assets to contain other resources as children.

✅ Virtual Node System

  • Each resource now has a "virtual node", enabling node clients to execute actions based on the resource's base type (e.g., push and pop on stack resources).

✅ History Tracking & Soft Deletion

  • Implemented change history tracking, including created_at and last_modified timestamps.
  • Resources are now soft deleted by:
  • Removing them from containers.
  • Marking them as "removed" instead of truly deleting them.
  • True deletion is NOT supported as per system requirements.

✅ Querying & Attributes

  • Enabled querying of resource state, details, and history.
  • Implemented arbitrary JSON attributes for resources.
  • Restricted direct database access—interaction must occur via the ResourceManager.

Next Steps

  • Implement time-limited reservations to restrict resource modifications to specific users/nodes/projects.
  • Allow custom ResourceTypes to enforce required fields in the attributes section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants