Skip to content

serviceability: add new LinkStatus - Provisioning #2026

@juan-malbeclabs

Description

@juan-malbeclabs

NOTE: The details are outdated, please check rfcs/rfc2-network-provisioning.md

Context / Why

We need to expand the standard status field of the Link account to explicitly track its provisioning and activation lifecycle. This makes contributor and foundation actions clearer and ensures a consistent onboarding and activation workflow, including an explicit Outage state for contributor-driven maintenance.

What to do

  • Add new lifecycle states to the existing status field.
  • Define the following transitions:

Diagram

Provisioning ──(contributor)──> ReadyForService ──(foundation)──> Activated ──(contributor)──> Outage
Outage ──(contributor)──> Activated
Outage ──(contributor)──> Provisioning

### Access Control Rules
- **Contributor** can:  
  - Provisioning → ReadyForService  
  - Activated → Outage  
  - Outage → Activated  
  - Outage → Provisioning  

- **Foundation** can:  
  - ReadyForService → Activated  

### CLI Updates
- Allow setting the link’s lifecycle status via CLI.  
- Display the current status (including new lifecycle states) in `dz link list` and detail views.

### How (High-Level)
- Extend the existing `status` enum to include provisioning lifecycle states.  
- Enforce valid state transitions directly in on-chain logic.  
- Add validation ensuring only authorized actors can perform each transition.  
- Update CLI commands to set and display the updated status.

### Notes
- Ensure backward compatibility: default existing links to `Activated`.  
- Add regression tests for allowed and invalid transitions.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions