content: [graph]
  targets = [
      { triple = "x86_64-unknown-linux-gnu" },
      { triple = "aarch64-unknown-linux-gnu" },
      { triple = "x86_64-apple-darwin" },
      { triple = "aarch64-apple-darwin" },
  ]
  
  [advisories]
  version = 2
  db-path = "~/.cargo/advisory-db"
  db-urls = ["https://github.com/rustsec/advisory-db"]
  ignore = [
      # RSA key extraction "Marvin Attack". This is only relevant when using
      # PKCS#1 v1.5 encryption, which we don't
      "RUSTSEC-2023-0071",
  ]
  
  [licenses]
  version = 2
  allow = [
      "0BSD",
      "Apache-2.0 WITH LLVM-exception",
      "Apache-2.0",
      "BSD-2-Clause",
      "BSD-3-Clause",
      "ISC",
      "MIT",
      "MPL-2.0",
      "OpenSSL",
      "Unicode-3.0",
      "Unicode-DFS-2016",
  ]
  
  # Ring's license is a bit complicated, so we need to specify it manually
  [[licenses.clarify]]
  name = "ring"
  version = "*"
  expression = "MIT AND ISC AND OpenSSL"
  license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }]
  
  [bans]
  # List of crates to deny
  deny = [
      # We should never depend on openssl
      { name = "openssl" },
      { name = "openssl-sys" },
      { name = "native-tls" },
  ]
  
  # We try to avoid duplicating crates and track exceptions here
  multiple-versions = "deny"
  
  skip = [
      { name = "base64", version = "0.21.7" },         # many dependencies depends on this old version
      { name = "syn", version = "1.0.109" },           # sea-query, sqlx depend on the old version
      { name = "regex-syntax", version = "0.6.29" },   # tracing-subscriber[env-filter] -> matchers depends on the old version
      { name = "regex-automata", version = "0.1.10" }, # ^
      { name = "regex-automata", version = "0.2.0" },  # icu_list depends on this old version
      { name = "indexmap", version = "1.9.3" },        # schemars depends on this old version
      { name = "hashbrown" },                          # Too many versions :(
      # axum-macros, sqlx-macros and sea-query-attr use an old version
      { name = "heck", version = "0.4.1" },
      # sea-query-attr uses an old version of darling
      { name = "darling", version = "0.14.4" },
      { name = "darling_core", version = "0.14.4" },
      { name = "darling_macro", version = "0.14.4" },
      # async-graphql -> toml_edit depends on this old version
      { name = "winnow", version = "0.5.40" },
      # wasmtime -> cranelift is depending on this old version
      { name = "itertools", version = "0.12.1" },
      # wasmtime -> cranelift is depending on this old version
      { name = "gimli", version = "0.28.1" },
      # apalis-core depends on this old version
      { name = "strum", version = "0.25.0" },
      { name = "strum_macros", version = "0.25.0" },
      # For some reason, axum-core depends on this old version, even though axum is on the new one
      { name = "sync_wrapper", version = "0.1.2" },
  ]
  
  skip-tree = []
  
  # We should never enable the (default) `oldtime` feature of `chrono`
  [[bans.features]]
  name = "chrono"
  deny = ["oldtime"]
  
  [sources]
  unknown-registry = "warn"
  unknown-git = "warn"
  allow-registry = ["https://github.com/rust-lang/crates.io-index"]
  allow-git = ["https://github.com/sandhose/sea-query"]
  