Files
registry/src/Model.hs
Lucy 8834dd1d28 Feature/admin allowed pkgs (#139)
* update admin endpoints to check if authorized to upload pkg

* add auth route for package to check in cli prior to upload

* fix param parsing

* remove uneeded log

* add case for when package is new

* move insert auth admin to pkg check

* send 200 response on successful insert

* invert logic

* retype AdminPkgs since PkgRecord id as key will not yet exist

* cleanup
2024-04-16 15:26:46 -04:00

167 lines
3.0 KiB
Haskell

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Model where
import Crypto.Hash (
Digest,
SHA256,
)
import Database.Persist.TH (
mkMigrate,
mkPersist,
persistLowerCase,
share,
sqlSettings,
)
import Lib.Types.Core (PkgId (PkgId), OsArch)
import Lib.Types.Emver (
Version,
VersionRange,
)
import Orphans.Cryptonite ()
import Orphans.Emver ()
import Startlude (
Eq,
Int,
Show,
Text,
UTCTime,
Word32,
Bool,
)
import Lib.Types.Manifest (PackageDevice)
share
[mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
PkgRecord
Id PkgId sql=pkg_id
hidden Bool default=False
createdAt UTCTime
updatedAt UTCTime Maybe
deriving Eq
deriving Show
VersionRecord sql=version
createdAt UTCTime
updatedAt UTCTime Maybe
deprecatedAt UTCTime Maybe
pkgId PkgRecordId
number Version
title Text
descShort Text
descLong Text
iconType Text
releaseNotes Text
osVersion Version
Primary pkgId number
deriving Eq
deriving Show
VersionPlatform
createdAt UTCTime
updatedAt UTCTime Maybe
pkgId PkgRecordId
versionNumber Version
ram Int Maybe
device PackageDevice Maybe
arch OsArch
Primary pkgId versionNumber arch
deriving Eq
deriving Show
OsVersion
createdAt UTCTime
updatedAt UTCTime
number Version
headline Text
releaseNotes Text
arch OsArch Maybe
deriving Eq
deriving Show
Metric
createdAt UTCTime
pkgId PkgRecordId
version Version
deriving Eq
deriving Show
Category
createdAt UTCTime
name Text
description Text
priority Int default=0
UniqueName name
deriving Eq
deriving Show
PkgCategory
createdAt UTCTime
pkgId PkgRecordId
categoryId CategoryId
UniquePkgCategory pkgId categoryId
deriving Eq
deriving Show
EosHash
version Version
hash Text
UniqueVersion version
ErrorLogRecord
createdAt UTCTime
epoch Text
commitHash Text
sourceFile Text
line Word32
target Text
level Text
message Text
incidents Word32
UniqueLogRecord epoch commitHash sourceFile line target level message
PkgDependency
createdAt UTCTime
pkgId PkgRecordId
pkgVersion Version
depId PkgRecordId
depVersionRange VersionRange
UniquePkgDepVersion pkgId pkgVersion depId
deriving Eq
deriving Show
UserActivity
createdAt UTCTime
serverId Text
osVersion Version Maybe
arch OsArch Maybe
Admin
Id Text
createdAt UTCTime
passHash (Digest SHA256)
deletedAt UTCTime Maybe
AdminPkgs
admin AdminId
pkgId PkgId
UniqueAdminPkg pkgId admin
Upload
uploader AdminId
pkgId PkgRecordId
pkgVersion Version
createdAt UTCTime
|]