MCPcopy Create free account
hub / github.com/alphagov/notifications-api / ApiKey

Class ApiKey

app/models.py:930–963  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

928 name = db.Column(db.String, primary_key=True)
929
930
931class ApiKey(db.Model, Versioned):
932 __tablename__ = "api_keys"
933
934 id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
935 name = db.Column(db.String(255), nullable=False)
936 _secret = db.Column("secret", db.String(255), unique=True, nullable=False)
937 service_id = db.Column(UUID(as_uuid=True), db.ForeignKey("services.id"), index=True, nullable=False)
938 service = db.relationship("Service", backref="api_keys")
939 key_type = db.Column(db.String(255), db.ForeignKey("key_types.name"), nullable=False)
940 expiry_date = db.Column(db.DateTime)
941 created_at = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.datetime.utcnow)
942 updated_at = db.Column(db.DateTime, index=False, unique=False, nullable=True, onupdate=datetime.datetime.utcnow)
943 created_by = db.relationship("User")
944 created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey("users.id"), index=True, nullable=False)
945
946 __table_args__ = (
947 Index("uix_service_to_key_name", "service_id", "name", unique=True, postgresql_where=expiry_date.is_(None)),
948 )
949
950 __extended_statistics__ = (
951 # dependencies
952 ("st_dep_api_keys_service_id_created_by_id", ("service_id", "created_by_id"), ("dependencies",)),
953 )
954
955 @property
956 def secret(self):
957 if self._secret:
958 return signing.decode(self._secret)
959 return None
960
961 @secret.setter
962 def secret(self, secret):
963 if secret:
964 self._secret = signing.encode(str(secret))
965
966

Calls

no outgoing calls