From 45df4d0d9b577fecee798d672695fe24ff57fb1b Mon Sep 17 00:00:00 2001 From: mo khan Date: Tue, 15 Jul 2025 16:37:08 -0600 Subject: feat: migrate from Cedar to SpiceDB authorization system This is a major architectural change that replaces the Cedar policy-based authorization system with SpiceDB's relation-based authorization. Key changes: - Migrate from Rust to Go implementation - Replace Cedar policies with SpiceDB schema and relationships - Switch from envoy `ext_authz` with Cedar to SpiceDB permission checks - Update build system and dependencies for Go ecosystem - Maintain Envoy integration for external authorization This change enables more flexible permission modeling through SpiceDB's Google Zanzibar inspired relation-based system, supporting complex hierarchical permissions that were difficult to express in Cedar. Breaking change: Existing Cedar policies and Rust-based configuration will no longer work and need to be migrated to SpiceDB schema. --- vendor/time/src/formatting/formattable.rs | 312 ------------------ vendor/time/src/formatting/iso8601.rs | 142 -------- vendor/time/src/formatting/mod.rs | 517 ------------------------------ 3 files changed, 971 deletions(-) delete mode 100644 vendor/time/src/formatting/formattable.rs delete mode 100644 vendor/time/src/formatting/iso8601.rs delete mode 100644 vendor/time/src/formatting/mod.rs (limited to 'vendor/time/src/formatting') diff --git a/vendor/time/src/formatting/formattable.rs b/vendor/time/src/formatting/formattable.rs deleted file mode 100644 index 7d1ce031..00000000 --- a/vendor/time/src/formatting/formattable.rs +++ /dev/null @@ -1,312 +0,0 @@ -//! A trait that can be used to format an item from its components. - -use alloc::string::String; -use alloc::vec::Vec; -use core::ops::Deref; -use std::io; - -use num_conv::prelude::*; - -use crate::format_description::well_known::iso8601::EncodedConfig; -use crate::format_description::well_known::{Iso8601, Rfc2822, Rfc3339}; -use crate::format_description::{BorrowedFormatItem, OwnedFormatItem}; -use crate::formatting::{ - format_component, format_number_pad_zero, iso8601, write, MONTH_NAMES, WEEKDAY_NAMES, -}; -use crate::{error, Date, Time, UtcOffset}; - -/// A type that describes a format. -/// -/// Implementors of [`Formattable`] are [format descriptions](crate::format_description). -/// -/// [`Date::format`] and [`Time::format`] each use a format description to generate -/// a String from their data. See the respective methods for usage examples. -#[cfg_attr(docsrs, doc(notable_trait))] -pub trait Formattable: sealed::Sealed {} -impl Formattable for BorrowedFormatItem<'_> {} -impl Formattable for [BorrowedFormatItem<'_>] {} -impl Formattable for OwnedFormatItem {} -impl Formattable for [OwnedFormatItem] {} -impl Formattable for Rfc3339 {} -impl Formattable for Rfc2822 {} -impl Formattable for Iso8601 {} -impl Formattable for T where T::Target: Formattable {} - -/// Seal the trait to prevent downstream users from implementing it. -mod sealed { - #[allow(clippy::wildcard_imports)] - use super::*; - - /// Format the item using a format description, the intended output, and the various components. - pub trait Sealed { - /// Format the item into the provided output, returning the number of bytes written. - fn format_into( - &self, - output: &mut (impl io::Write + ?Sized), - date: Option, - time: Option