Add attr inspired by docker
This commit is contained in:
@@ -203,7 +203,7 @@ func ExtractTokenInfo(request http.Request) (string, string, []string) {
|
|||||||
if reqToken != "" {
|
if reqToken != "" {
|
||||||
token := strings.Split(reqToken, ".")
|
token := strings.Split(reqToken, ".")
|
||||||
if len(token) > 2 {
|
if len(token) > 2 {
|
||||||
bytes, err := base64.StdEncoding.DecodeString(token[2])
|
bytes, err := base64.RawURLEncoding.DecodeString(token[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", []string{}
|
return "", "", []string{}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,19 +44,20 @@ func (m PeerRelation) EnumIndex() int {
|
|||||||
|
|
||||||
// BehaviorWarning records a single misbehavior observed by a trusted service.
|
// BehaviorWarning records a single misbehavior observed by a trusted service.
|
||||||
type BehaviorWarning struct {
|
type BehaviorWarning struct {
|
||||||
At time.Time `json:"at" bson:"at"`
|
At time.Time `json:"at" bson:"at"`
|
||||||
ReporterApp string `json:"reporter_app" bson:"reporter_app"`
|
ReporterApp string `json:"reporter_app" bson:"reporter_app"`
|
||||||
Severity tools.BehaviorSeverity `json:"severity" bson:"severity"`
|
Severity tools.BehaviorSeverity `json:"severity" bson:"severity"`
|
||||||
Reason string `json:"reason" bson:"reason"`
|
Reason string `json:"reason" bson:"reason"`
|
||||||
Evidence string `json:"evidence,omitempty" bson:"evidence,omitempty"`
|
Evidence string `json:"evidence,omitempty" bson:"evidence,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Peer is a struct that represents a peer
|
// Peer is a struct that represents a peer
|
||||||
type Peer struct {
|
type Peer struct {
|
||||||
utils.AbstractObject
|
utils.AbstractObject
|
||||||
|
|
||||||
Verify bool `json:"verify" bson:"verify"`
|
Verify bool `json:"verify" bson:"verify"`
|
||||||
PeerID string `json:"peer_id" bson:"peer_id" validate:"required"`
|
OrganizationID string `json:"organization_id" bson:"organization_id"`
|
||||||
|
PeerID string `json:"peer_id" bson:"peer_id" validate:"required"`
|
||||||
|
|
||||||
APIUrl string `json:"api_url" bson:"api_url" validate:"required"` // Url is the URL of the peer (base64url)
|
APIUrl string `json:"api_url" bson:"api_url" validate:"required"` // Url is the URL of the peer (base64url)
|
||||||
StreamAddress string `json:"stream_address" bson:"stream_address" validate:"required"` // Url is the URL of the peer (base64url)
|
StreamAddress string `json:"stream_address" bson:"stream_address" validate:"required"` // Url is the URL of the peer (base64url)
|
||||||
|
|||||||
@@ -42,6 +42,23 @@ func (wfa *peerMongoAccessor) ShouldVerifyAuth() bool {
|
|||||||
return !wfa.OverrideAuth
|
return !wfa.OverrideAuth
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO : organization_ID est un peer_ID duquel on se revendique faire parti.
|
||||||
|
Ca implique une clé d'organisation + une demande d'intégration.
|
||||||
|
|
||||||
|
Slave-Master IOT
|
||||||
|
*/
|
||||||
|
func (dca *peerMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) {
|
||||||
|
pp, _ := utils.GetMySelf(NewAccessor(&tools.APIRequest{Admin: true}))
|
||||||
|
if data != nil {
|
||||||
|
d := data.(*Peer)
|
||||||
|
if pp != nil && d.OrganizationID != "" && d.OrganizationID == pp.(*Peer).OrganizationID {
|
||||||
|
d.Relation = PARTNER // defaulting on partner if same organization.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return utils.GenericStoreOne(data, dca)
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing special here, just the basic CRUD operations
|
* Nothing special here, just the basic CRUD operations
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,7 +47,9 @@ type ProcessingResourceAccess struct {
|
|||||||
|
|
||||||
type ProcessingInstance struct {
|
type ProcessingInstance struct {
|
||||||
ResourceInstance[*ResourcePartnerShip[*ProcessingResourcePricingProfile]]
|
ResourceInstance[*ResourcePartnerShip[*ProcessingResourcePricingProfile]]
|
||||||
Access *ProcessingResourceAccess `json:"access,omitempty" bson:"access,omitempty"` // Access is the access
|
Access *ProcessingResourceAccess `json:"access,omitempty" bson:"access,omitempty"` // Access is the access
|
||||||
|
SizeGB int `json:"size_gb,omitempty" bson:"size_gb,omitempty"`
|
||||||
|
ContentType string `json:"content_type,omitempty" bson:"content_type,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ri *ProcessingInstance) StoreDraftDefault() {
|
func (ri *ProcessingInstance) StoreDraftDefault() {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"slices"
|
"slices"
|
||||||
|
"time"
|
||||||
|
|
||||||
"cloud.o-forge.io/core/oc-lib/config"
|
"cloud.o-forge.io/core/oc-lib/config"
|
||||||
"cloud.o-forge.io/core/oc-lib/dbs"
|
"cloud.o-forge.io/core/oc-lib/dbs"
|
||||||
@@ -212,6 +213,8 @@ type GeoPoint struct {
|
|||||||
|
|
||||||
type ResourceInstance[T ResourcePartnerITF] struct {
|
type ResourceInstance[T ResourcePartnerITF] struct {
|
||||||
utils.AbstractObject
|
utils.AbstractObject
|
||||||
|
ContentType string `json:"content_type,omitempty" bson:"content_type,omitempty"`
|
||||||
|
LastUpdate time.Time `json:"last_update,omitempty" bson:"last_update,omitempty"`
|
||||||
Origin OriginMeta `json:"origin,omitempty" bson:"origin,omitempty"`
|
Origin OriginMeta `json:"origin,omitempty" bson:"origin,omitempty"`
|
||||||
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
Location GeoPoint `json:"location,omitempty" bson:"location,omitempty"`
|
||||||
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
Country countries.CountryCode `json:"country,omitempty" bson:"country,omitempty"`
|
||||||
|
|||||||
@@ -108,12 +108,11 @@ func (a *ResourceMongoAccessor[T]) GetExec(isDraft bool) func(utils.DBObject) ut
|
|||||||
func (abs *ResourceMongoAccessor[T]) GetObjectFilters(search string) *dbs.Filters {
|
func (abs *ResourceMongoAccessor[T]) GetObjectFilters(search string) *dbs.Filters {
|
||||||
return &dbs.Filters{
|
return &dbs.Filters{
|
||||||
Or: map[string][]dbs.Filter{ // filter by like name, short_description, description, owner, url if no filters are provided
|
Or: map[string][]dbs.Filter{ // filter by like name, short_description, description, owner, url if no filters are provided
|
||||||
"abstractinstanciatedresource.abstractresource.abstractobject.name": {{Operator: dbs.LIKE.String(), Value: search}},
|
"abstractinstanciatedresource.abstractresource.abstractobject.name": {{Operator: dbs.LIKE.String(), Value: search}},
|
||||||
"abstractinstanciatedresource.abstractresource.type": {{Operator: dbs.LIKE.String(), Value: search}},
|
"abstractinstanciatedresource.abstractresource.type": {{Operator: dbs.LIKE.String(), Value: search}},
|
||||||
"abstractinstanciatedresource.abstractresource.short_description": {{Operator: dbs.LIKE.String(), Value: search}},
|
"abstractinstanciatedresource.abstractresource.short_description": {{Operator: dbs.LIKE.String(), Value: search}},
|
||||||
"abstractinstanciatedresource.abstractresource.description": {{Operator: dbs.LIKE.String(), Value: search}},
|
"abstractinstanciatedresource.abstractresource.description": {{Operator: dbs.LIKE.String(), Value: search}},
|
||||||
"abstractinstanciatedresource.abstractresource.owners.name": {{Operator: dbs.LIKE.String(), Value: search}},
|
"abstractinstanciatedresource.abstractresource.owners.name": {{Operator: dbs.LIKE.String(), Value: search}},
|
||||||
"abstractinstanciatedresource.abstractresource.abstractobject.creator_id": {{Operator: dbs.EQUAL.String(), Value: search}},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ func DataTypeList() []DataType {
|
|||||||
return []DataType{DATA_RESOURCE, PROCESSING_RESOURCE, STORAGE_RESOURCE, COMPUTE_RESOURCE, WORKFLOW_RESOURCE,
|
return []DataType{DATA_RESOURCE, PROCESSING_RESOURCE, STORAGE_RESOURCE, COMPUTE_RESOURCE, WORKFLOW_RESOURCE,
|
||||||
WORKFLOW, WORKFLOW_EXECUTION, WORKSPACE, PEER, COLLABORATIVE_AREA, RULE, BOOKING, WORKFLOW_HISTORY, WORKSPACE_HISTORY,
|
WORKFLOW, WORKFLOW_EXECUTION, WORKSPACE, PEER, COLLABORATIVE_AREA, RULE, BOOKING, WORKFLOW_HISTORY, WORKSPACE_HISTORY,
|
||||||
ORDER, PURCHASE_RESOURCE,
|
ORDER, PURCHASE_RESOURCE,
|
||||||
LIVE_DATACENTER, LIVE_STORAGE, BILL, NATIVE_TOOL}
|
LIVE_DATACENTER, LIVE_STORAGE, BILL, NATIVE_TOOL, EXECUTION_VERIFICATION, ALLOWED_IMAGE}
|
||||||
}
|
}
|
||||||
|
|
||||||
type PropalgationMessage struct {
|
type PropalgationMessage struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user