Beispiel #1
0
class PublicKey(BaseModel):
    """Public cryptographic keys model."""

    user_id = columns.UUID(primary_key=True)
    resource_id = columns.UUID(primary_key=True)  # clustering key
    key_id = columns.UUID(primary_key=True)  # clustering key

    resource_type = columns.Text()
    label = columns.Text()

    date_insert = columns.DateTime(default=datetime.utcnow)
    date_update = columns.DateTime()
    expire_date = columns.DateTime()

    emails = columns.List(columns.Text())

    key = columns.Text()
    fingerprint = columns.Text()
    size = columns.VarInt()

    # JWT parameters
    kty = columns.Text()  # rsa / ec
    use = columns.Text()  # sig / enc
    alg = columns.Text()  # algorithm
    # Elliptic curve public key parameters (rfc7518 6.2.1)
    crv = columns.Text()
    x = columns.VarInt()
    y = columns.VarInt()
Beispiel #2
0
class QueryDetail2(Model):
    """
    请求详情日志
    冗余
    多级主键,可以查询 20200124 这一天,沃信分产品,具体到每一个 API 请求的详情
    """

    __table_name__ = 'query_detail2'

    # QueryDetail 保持一致
    time_code = columns.Text(primary_key=True)  # 统计日期 20200124
    product_name = columns.Text(primary_key=True)  # 产品名称
    result = columns.Text(primary_key=True)  # 查询结果: 查得、未查得、出错、超时
    query_id = columns.Text(primary_key=True)  # 请求序列号
    time = columns.Text(required=False)  # 请求时间: 2020-02-21 10:20:40
    price_rule = columns.Text(required=False)  # 计价方式: 查得计费、字段计费、查询计费(由产品决定)
    unit_price = columns.VarInt(default=0)  # 单价
    request = columns.Text(required=False)  # 请求数据(脱敏后)
    response = columns.Text(required=False)  # 响应数据(脱敏后)
    status_code = columns.Text(required=False)  # 返回代码
    return_time = columns.Text(required=False)  # 返回时间
    period = columns.Text(required=False)  # 响应时间(毫秒)
    product_code = columns.Text(required=False)  # 产品编码
    remark = columns.Text(required=False)  # 备注
    
    def save_redundant(self):
        pass
Beispiel #3
0
class QueryDetail(Model):
    """
    请求详情日志,每一次对钛旗云 API 对调用生成一条记录
    以 query_id 为主键
    """

    __table_name__ = 'query_detail'

    query_id = columns.Text(primary_key=True)  # 请求序列号
    time_code = columns.Text(required=False)  # 统计日期 20200124
    product_name = columns.Text(required=False)  # 产品名称
    result = columns.Text(required=False)  # 查询结果: 查得、未查得、出错、超时
    time = columns.Text(required=False)  # 请求时间: 2020-02-21 10:20:40
    price_rule = columns.Text(required=False)  # 计价方式: 查得计费、字段计费、查询计费(由产品决定)
    unit_price = columns.VarInt(default=0)  # 单价
    request = columns.Text(required=False)  # 请求数据(脱敏后)
    response = columns.Text(required=False)  # 响应数据(脱敏后)
    status_code = columns.Text(required=False)  # 返回代码
    return_time = columns.Text(required=False)  # 返回时间
    period = columns.Text(required=False)  # 响应时间(毫秒)
    product_code = columns.Text(required=False)  # 产品编码
    remark = columns.Text(required=False)  # 备注
    
    def save_redundant(self):
        """
        保存冗余数据
        """
        detail2 = QueryDetail2()
        for name, value in self.items():
            setattr(detail2, name, value)
        detail2.save()
Beispiel #4
0
class QueryStatistics(Model):
    """
    请求统计日志,以时间、产品、查询结果、响应时间 4个维度来统计
    例如:20200124这一天,沃信分产品,查得 的请求数量为 5000
    又如:202001这个月,沃信分产品,未查得,响应时间在1-3秒内的请求数量为 8000
    """

    __table_name__ = 'query_statistics'

    time_code = columns.Text(primary_key=True)  # 统计时间 2020 / 202001 / 20200124
    product_name = columns.Text(primary_key=True)  # 产品名称
    result = columns.Text(primary_key=True)  # 查询结果: 查得、未查得、出错、超时
    period = columns.Text(primary_key=True)  # 响应时间: '1秒以内', '1-3秒内', '3-6秒内', '6-10秒内', '10-15秒内', '15秒以上'
    count = columns.VarInt(default=0)  # 调用次数
    price_rule = columns.Text(required=False)  # 计价方式: 查得计费、字段计费、查询计费(由产品决定)
    unit_price = columns.VarInt(default=0)  # 单价
    price = columns.VarInt(default=0)  # 总价
    product_code = columns.Text(required=False)  # 产品编码
    remark = columns.Text(required=False)  # 备注
class AllDatatypes(UserType):
    a = columns.Ascii()
    b = columns.BigInt()
    c = columns.Blob()
    d = columns.Boolean()
    e = columns.DateTime()
    f = columns.Decimal()
    g = columns.Double()
    h = columns.Float()
    i = columns.Inet()
    j = columns.Integer()
    k = columns.Text()
    l = columns.TimeUUID()
    m = columns.UUID()
    n = columns.VarInt()
 class AllDatatypesModel(Model):
     id = columns.Integer(primary_key=True)
     a = columns.Ascii()
     b = columns.BigInt()
     c = columns.Blob()
     d = columns.Boolean()
     e = columns.DateTime()
     f = columns.Decimal()
     g = columns.Double()
     h = columns.Float()
     i = columns.Inet()
     j = columns.Integer()
     k = columns.Text()
     l = columns.TimeUUID()
     m = columns.UUID()
     n = columns.VarInt()
Beispiel #7
0
class BaseActivity(Model):
    feed_id = columns.Ascii(primary_key=True, partition_key=True)
    activity_id = columns.VarInt(primary_key=True, clustering_order='desc')