# _collections

id: pbc_2279338944
type: base
name: _mfas
indexes: ["CREATE INDEX `idx_mfas_collectionRef_recordRef` ON `_mfas` (collectionRef,recordRef)"]
options: {}
created: 2026-06-17 13:52:27.415Z
updated: 2026-06-17 13:52:27.415Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text455797646","max":0,"min":0,"name":"collectionRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text127846527","max":0,"min":0,"name":"recordRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1582905952","max":0,"min":0,"name":"method","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":true,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":true,"type":"autodate"}]

listRule:
  @request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId

viewRule:
  @request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId


id: pbc_1638494021
type: base
name: _otps
indexes: ["CREATE INDEX `idx_otps_collectionRef_recordRef` ON `_otps` (collectionRef, recordRef)"]
options: {}
created: 2026-06-17 13:52:27.419Z
updated: 2026-06-17 13:52:27.419Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text455797646","max":0,"min":0,"name":"collectionRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text127846527","max":0,"min":0,"name":"recordRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"cost":8,"help":"","hidden":true,"id":"password901924565","max":0,"min":0,"name":"password","pattern":"","presentable":false,"required":true,"system":true,"type":"password"},{"autogeneratePattern":"","help":"","hidden":true,"id":"text3866985172","max":0,"min":0,"name":"sentTo","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":true,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":true,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":true,"type":"autodate"}]

listRule:
  @request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId

viewRule:
[cell repeats an earlier one in this file: 100 characters]


id: pbc_2281828961
type: base
name: _externalAuths
options: {}
created: 2026-06-17 13:52:27.425Z
updated: 2026-06-17 13:52:27.425Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text455797646","max":0,"min":0,"name":"collectionRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text127846527","max":0,"min":0,"name":"recordRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text2462348188","max":0,"min":0,"name":"provider","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1044722854","max":0,"min":0,"name":"providerId","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":true,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":true,"type":"autodate"}]

indexes:
  ["CREATE UNIQUE INDEX `idx_externalAuths_record_provider` ON `_externalAuths` (collectionRef, recordRef, provider)","CREATE UNIQUE INDEX `idx_externalAuths_collection_provider` ON `_externalAuths` (collectionRef, provider, providerId)"]

listRule:
[cell repeats an earlier one in this file: 100 characters]

viewRule:
[cell repeats an earlier one in this file: 100 characters]

deleteRule:
[cell repeats an earlier one in this file: 100 characters]


id: pbc_4275539003
type: base
name: _authOrigins
options: {}
created: 2026-06-17 13:52:27.429Z
updated: 2026-06-17 13:52:27.429Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text455797646","max":0,"min":0,"name":"collectionRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text127846527","max":0,"min":0,"name":"recordRef","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text4228609354","max":0,"min":0,"name":"fingerprint","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":true,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":true,"type":"autodate"}]

indexes:
  ["CREATE UNIQUE INDEX `idx_authOrigins_unique_pairs` ON `_authOrigins` (collectionRef, recordRef, fingerprint)"]

listRule:
[cell repeats an earlier one in this file: 100 characters]

viewRule:
[cell repeats an earlier one in this file: 100 characters]

deleteRule:
[cell repeats an earlier one in this file: 100 characters]


id: pbc_3142635823
type: auth
name: _superusers
created: 2026-06-17 13:52:27.433Z
updated: 2026-06-17 13:52:27.433Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"cost":0,"help":"","hidden":true,"id":"password901924565","max":0,"min":8,"name":"password","pattern":"","presentable":false,"required":true,"system":true,"type":"password"},{"autogeneratePattern":"[a-zA-Z0-9]{50}","help":"","hidden":true,"id":"text2504183744","max":60,"min":30,"name":"tokenKey","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"exceptDomains":null,"help":"","hidden":false,"id":"email3885137012","name":"email","onlyDomains":null,"presentable":false,"required":true,"system":true,"type":"email"},{"help":"","hidden":false,"id":"bool1547992806","name":"emailVisibility","presentable":false,"required":false,"system":true,"type":"bool"},{"help":"","hidden":false,"id":"bool256245529","name":"verified","presentable":false,"required":false,"system":true,"type":"bool"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":true,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":true,"type":"autodate"}]

indexes:
  ["CREATE UNIQUE INDEX `idx_tokenKey_pbc_3142635823` ON `_superusers` (`tokenKey`)","CREATE UNIQUE INDEX `idx_email_pbc_3142635823` ON `_superusers` (`email`) WHERE `email` != ''"]

options:
  {"authRule":"","manageRule":null,"authAlert":{"enabled":true,"emailTemplate":{"subject":"Login from a new location","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eWe noticed a login to your {APP_NAME} account from a new location:\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e{ALERT_INFO}\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eIf this was you, you may disregard this email.\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"oauth2":{"providers":null,"mappedFields":{"id":"","name":"","username":"","avatarURL":""},"enabled":false},"passwordAuth":{"enabled":true,"identityFields":["email"]},"mfa":{"enabled":false,"duration":600,"rule":""},"otp":{"enabled":false,"duration":180,"length":8,"emailTemplate":{"subject":"OTP for {APP_NAME}","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eYour one-time password is: \u003cstrong\u003e{OTP}\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask for the one-time password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"authToken":{"secret":"SF2YxLatRSmx4CxxrM8qkSWA9qMebBsyWeDbnXaCQoi7Hr2DeL","duration":86400},"passwordResetToken":{"secret":"98FoAouGE5NeOvFw3E3PhbrSPLUrTDZkWlzs7FS3Ssf8g2jypm","duration":1800},"emailChangeToken":{"secret":"Xk5IvvXLMQdQaOLOkDfpJbZ5AYnLpXXuiMC0QmFiy4nYCQbAPD","duration":1800},"verificationToken":{"secret":"ElGyCcHpAmj48YTIQ15flKbOaGlU3VLGqkBDBvsYD4xYdd7iBf","duration":86400},"fileToken":{"secret":"on3asiZQBKoJqJNmm0ejTTpuRjvWzhytYOOR9RW62Q65n2ogid","duration":180},"verificationTemplate":{"subject":"Verify your {APP_NAME} email","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-verification/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't recently register, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"resetPasswordTemplate":{"subject":"Reset your {APP_NAME} password","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-password-reset/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"confirmEmailChangeTemplate":{"subject":"Confirm your {APP_NAME} new email address","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}}


id: _pb_users_auth_
type: auth
name: users
updateRule: id = @request.auth.id
deleteRule: id = @request.auth.id
created: 2026-06-17 13:52:27.439Z
updated: 2026-06-18 12:50:05.356Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"cost":0,"help":"","hidden":true,"id":"password901924565","max":0,"min":8,"name":"password","pattern":"","presentable":false,"required":true,"system":true,"type":"password"},{"autogeneratePattern":"[a-zA-Z0-9]{50}","help":"","hidden":true,"id":"text2504183744","max":60,"min":30,"name":"tokenKey","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"exceptDomains":null,"help":"","hidden":false,"id":"email3885137012","name":"email","onlyDomains":null,"presentable":false,"required":true,"system":true,"type":"email"},{"help":"","hidden":false,"id":"bool1547992806","name":"emailVisibility","presentable":false,"required":false,"system":true,"type":"bool"},{"help":"","hidden":false,"id":"bool256245529","name":"verified","presentable":false,"required":false,"system":true,"type":"bool"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1579384326","max":255,"min":0,"name":"name","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"file376926767","maxSelect":1,"maxSize":0,"mimeTypes":["image/jpeg","image/png","image/svg+xml","image/gif","image/webp"],"name":"avatar","presentable":false,"protected":false,"required":false,"system":false,"thumbs":null,"type":"file"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]

indexes:
  ["CREATE UNIQUE INDEX `idx_tokenKey__pb_users_auth_` ON `users` (`tokenKey`)","CREATE UNIQUE INDEX `idx_email__pb_users_auth_` ON `users` (`email`) WHERE `email` != ''"]

options:
  {"authRule":"","manageRule":null,"authAlert":{"enabled":false,"emailTemplate":{"subject":"Login from a new location","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eWe noticed a login to your {APP_NAME} account from a new location:\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e{ALERT_INFO}\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eIf this was you, you may disregard this email.\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"oauth2":{"providers":[],"mappedFields":{"id":"","name":"name","username":"","avatarURL":"avatar"},"enabled":false},"passwordAuth":{"enabled":true,"identityFields":["email"]},"mfa":{"enabled":false,"duration":600,"rule":""},"otp":{"enabled":true,"duration":180,"length":8,"emailTemplate":{"subject":"OTP for {APP_NAME}","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eYour one-time password is: \u003cstrong\u003e{OTP}\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask for the one-time password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"authToken":{"secret":"B4WLty0pZBwnJgTBuvOOeuFEH0BMJLDtf70i1oKdbxCgA2gTXD","duration":432000},"passwordResetToken":{"secret":"0XUR6zXWiHJbloSsC6BIoGFYxqcwhFVVlz2GCcWTIJFLG0mtNX","duration":1800},"emailChangeToken":{"secret":"wRnQPStFNXp18F1T3NSWVYuP9T9zIwB5MLajFltalO28tm5tZN","duration":1800},"verificationToken":{"secret":"kdCD7fRzqGgCuTqU49Hm1PCBgj1E0WGBmdW6f2jxAaUlhGBgRE","duration":86400},"fileToken":{"secret":"X0jennVTW9Q8tOkTNYmcOqsU7yIzc1M9ZxuSkA8kTFbaWcuEfr","duration":180},"verificationTemplate":{"subject":"Verify your {APP_NAME} email","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-verification/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't recently register, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"resetPasswordTemplate":{"subject":"Reset your {APP_NAME} password","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-password-reset/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"confirmEmailChangeTemplate":{"subject":"Confirm your {APP_NAME} new email address","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}}


id: pbc_1404508383
type: base
name: Types
indexes: []
listRule: @request.auth.id != ""
viewRule: @request.auth.id != ""
createRule: @request.auth.id != ""
updateRule: @request.auth.id != ""
deleteRule: @request.auth.id != ""
options: {}
created: 2026-06-18 04:04:00.148Z
updated: 2026-06-19 05:13:36.823Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text4262580536","max":0,"min":0,"name":"Name","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text3316025061","max":0,"min":0,"name":"Icon","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text2811717613","max":0,"min":0,"name":"Color","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"number1900543639","max":null,"min":null,"name":"Cycle","onlyInt":false,"presentable":false,"required":false,"system":false,"type":"number"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text999008199","max":0,"min":0,"name":"Notes","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"select1274211008","maxSelect":0,"name":"select","presentable":false,"required":true,"system":false,"type":"select","values":["Breeding sites","Equipment"]},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]


id: pbc_1401793282
type: auth
name: Members
listRule: @request.auth.id != ""
viewRule: @request.auth.id != ""
createRule: @request.auth.id != ""
updateRule: @request.auth.id != ""
deleteRule: @request.auth.id != ""
created: 2026-06-18 12:59:08.811Z
updated: 2026-06-20 06:11:05.116Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"help":"","hidden":false,"id":"bool1260321794","name":"active","presentable":false,"required":false,"system":false,"type":"bool"},{"cost":0,"help":"","hidden":true,"id":"password901924565","max":0,"min":8,"name":"password","pattern":"","presentable":false,"required":true,"system":true,"type":"password"},{"autogeneratePattern":"[a-zA-Z0-9]{50}","help":"","hidden":true,"id":"text2504183744","max":60,"min":30,"name":"tokenKey","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":true,"type":"text"},{"exceptDomains":null,"help":"","hidden":false,"id":"email3885137012","name":"email","onlyDomains":null,"presentable":false,"required":true,"system":true,"type":"email"},{"help":"","hidden":false,"id":"bool1547992806","name":"emailVisibility","presentable":false,"required":false,"system":true,"type":"bool"},{"help":"","hidden":false,"id":"bool256245529","name":"verified","presentable":false,"required":false,"system":true,"type":"bool"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text18589324","max":0,"min":0,"name":"notes","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"}]

indexes:
  ["CREATE UNIQUE INDEX `idx_tokenKey_q5an3vr1r0` ON `Members` (`tokenKey`)","CREATE UNIQUE INDEX `idx_email_q5an3vr1r0` ON `Members` (`email`) WHERE `email` != ''"]

options:
  {"authRule":"","manageRule":null,"authAlert":{"enabled":true,"emailTemplate":{"subject":"Login from a new location","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eWe noticed a login to your {APP_NAME} account from a new location:\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e{ALERT_INFO}\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eIf this was you, you may disregard this email.\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"oauth2":{"providers":[],"mappedFields":{"id":"","name":"","username":"","avatarURL":""},"enabled":false},"passwordAuth":{"enabled":true,"identityFields":["email"]},"mfa":{"enabled":false,"duration":600,"rule":""},"otp":{"enabled":true,"duration":180,"length":8,"emailTemplate":{"subject":"OTP for {APP_NAME}","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eYour one-time password is: \u003cstrong\u003e{OTP}\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask for the one-time password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}},"authToken":{"secret":"VNKJYi1lUPN172jSgxxKLaNyFGFLlhHum4sUyDqAAOmQF1K1qg","duration":432000},"passwordResetToken":{"secret":"ajtXkivRfNOuYPlJvhQ0Dhbh5OwjRtV6OeoLCYuX7HPIb9PFfw","duration":1800},"emailChangeToken":{"secret":"CygFAo3QYKjLL6zSSkgT07d68ObxDh2adgX7KeNzlTij9SU4aR","duration":1800},"verificationToken":{"secret":"MF53arcjIAbd5XRkpbEFiBmeNbNQa6PQCauIMN846wYLM12u4W","duration":86400},"fileToken":{"secret":"mMMzDPTH253l1ZS2g4xfA0w9VyQZbzNo2Rs6fQGXRLTfHHxeJf","duration":180},"verificationTemplate":{"subject":"Verify your {APP_NAME} email","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-verification/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't recently register, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"resetPasswordTemplate":{"subject":"Reset your {APP_NAME} password","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-password-reset/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"},"confirmEmailChangeTemplate":{"subject":"Confirm your {APP_NAME} new email address","body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n  \u003ca class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, please ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n  Thanks,\u003cbr/\u003e\n  {APP_NAME} team\n\u003c/p\u003e"}}


id: pbc_4158259050
type: base
name: Floors
indexes: []
listRule: @request.auth.id != ""
viewRule: @request.auth.id != ""
createRule: @request.auth.id != ""
updateRule: @request.auth.id != ""
deleteRule: @request.auth.id != ""
options: {}
created: 2026-06-19 02:59:44.563Z
updated: 2026-06-19 05:12:50.063Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text4262580536","max":0,"min":0,"name":"Name","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text3316025061","max":0,"min":0,"name":"Tag","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]


id: pbc_3853224427
type: base
name: Projects
indexes: []
listRule: @request.auth.id != ""
viewRule: @request.auth.id != ""
createRule: @request.auth.id != ""
updateRule: @request.auth.id != ""
deleteRule: @request.auth.id != ""
options: {}
created: 2026-06-19 03:16:04.140Z
updated: 2026-06-19 09:05:33.952Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text4262580536","max":0,"min":0,"name":"Name","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text515224557","max":0,"min":0,"name":"Overview","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text2007405142","max":0,"min":0,"name":"Area","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"json371497056","maxSize":0,"name":"Polygon_path","presentable":false,"required":false,"system":false,"type":"json"},{"help":"","hidden":false,"id":"date287093107","max":"","min":"","name":"Contract_start","presentable":false,"required":false,"system":false,"type":"date"},{"help":"","hidden":false,"id":"date2955966619","max":"","min":"","name":"Contract_end","presentable":false,"required":false,"system":false,"type":"date"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1170309868","max":0,"min":0,"name":"Frequency_regular","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1174149842","max":0,"min":0,"name":"Frequency_custom","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"json1372149536","maxSize":0,"name":"Equipment","presentable":false,"required":false,"system":false,"type":"json"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1805484053","max":0,"min":0,"name":"Project_maneger","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]


id: pbc_526883142
type: base
name: Markers
indexes: []
listRule: @request.auth.id != ""
viewRule: @request.auth.id != ""
createRule: @request.auth.id != ""
updateRule: @request.auth.id != ""
deleteRule: @request.auth.id != ""
options: {}
created: 2026-06-19 03:23:52.446Z
updated: 2026-06-21 07:47:46.224Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text4262580536","max":0,"min":0,"name":"Position","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text183612687","max":0,"min":0,"name":"Type_id","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1617181147","max":0,"min":0,"name":"Serial_No","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1496325196","max":0,"min":0,"name":"Project_id","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text2083527604","max":0,"min":0,"name":"Floor_id","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"number2057538148","max":null,"min":null,"name":"Position_lng","onlyInt":false,"presentable":false,"required":false,"system":false,"type":"number"},{"help":"","hidden":false,"id":"number2038814581","max":null,"min":null,"name":"Position_lat","onlyInt":false,"presentable":false,"required":false,"system":false,"type":"number"},{"help":"","hidden":false,"id":"date295213528","max":"","min":"","name":"Last_check","presentable":false,"required":false,"system":false,"type":"date"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text3235547528","max":0,"min":0,"name":"Notes","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"file3581324060","maxSelect":10,"maxSize":0,"mimeTypes":null,"name":"Photo","presentable":false,"protected":false,"required":false,"system":false,"thumbs":null,"type":"file"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]


id: pbc_2939385857
type: base
name: Checks
indexes: []
options: {}
created: 2026-06-21 05:26:26.677Z
updated: 2026-06-22 02:25:16.861Z
fields:
  [{"autogeneratePattern":"[a-z0-9]{15}","help":"","hidden":false,"id":"text3208210256","max":15,"min":15,"name":"id","pattern":"^[a-z0-9]+$","presentable":false,"primaryKey":true,"required":true,"system":true,"type":"text"},{"cascadeDelete":false,"collectionId":"pbc_526883142","help":"","hidden":false,"id":"relation1653163849","maxSelect":0,"minSelect":0,"name":"markers","presentable":false,"required":false,"system":false,"type":"relation"},{"help":"","hidden":false,"id":"date2862495610","max":"","min":"","name":"date","presentable":false,"required":false,"system":false,"type":"date"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text18589324","max":0,"min":0,"name":"notes","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"help":"","hidden":false,"id":"file3581324060","maxSelect":0,"maxSize":0,"mimeTypes":null,"name":"photo","presentable":false,"protected":false,"required":false,"system":false,"thumbs":null,"type":"file"},{"autogeneratePattern":"","help":"","hidden":false,"id":"text1927106955","max":0,"min":0,"name":"inspector","pattern":"","presentable":false,"primaryKey":false,"required":false,"system":false,"type":"text"},{"hidden":false,"id":"autodate2990389176","name":"created","onCreate":true,"onUpdate":false,"presentable":false,"system":false,"type":"autodate"},{"hidden":false,"id":"autodate3332085495","name":"updated","onCreate":true,"onUpdate":true,"presentable":false,"system":false,"type":"autodate"}]


# Projects

Area: 龙南佳苑整个社区
Contract_end: 2026-09-30 00:00:00.000Z
Contract_start: 2025-10-01 00:00:00.000Z
Equipment: [{"name":"二氧化碳捕蚊器","count":6},{"name":"捕蝇笼","count":10}]
Frequency_custom: custom
Name: 龙南佳苑无蚊社区
Overview: 保租房社区人员流动大，种花种草少，没有一楼，环境相对简单
created: 2026-06-19 09:09:17.762Z
id: yuz5jmlgkf2sywz
updated: 2026-06-22 01:12:35.016Z
Polygon_path:
  [[121.453483,31.151236],[121.452618,31.150851],[121.45292,31.150242],[121.45567,31.151508],[121.454349,31.152875],[121.453837,31.152753],[121.453227,31.152867],[121.452966,31.152052]]


Area: 华东政法大学长宁校区
Contract_end: 2026-08-31 00:00:00.000Z
Contract_start: 2025-09-01 00:00:00.000Z
Equipment: [{"name":"鼠饵站","count":10}]
Frequency_custom: custom
Name: 华东政法大学长宁校区
created: 2026-06-22 01:26:09.472Z
id: zyyiubt3gusogeg
updated: 2026-06-22 01:26:09.472Z
Polygon_path:
  [[121.415203,31.228119],[121.416342,31.225708],[121.416364,31.224714],[121.417075,31.224859],[121.417075,31.223479],[121.418654,31.223692],[121.418045,31.225351],[121.418587,31.225814],[121.420279,31.227357],[121.419083,31.228881]]


