- PPT-642 Added place controller (#333)
- bookings: update_induction endpoint (#331)
- events: debug log (#329)
- tenants: early_checkin endpoints (#327)
- events: #add_attendee (#326)
- bookings: add recurring booking support [PPT-1382] (#324)
- PPT-1437 Allow checkin by early_checkin value (#325)
- PPT-1326 Add endpoint to provide a list of booking ids (#323)
- events: preference metadata and system selection (#322)
- bookings: #index filter on permission field (#320)
- bookings: #index returns PRIVATE, OPEN, and PUBLIC group-event bookings for the booking creator (#318)
- bookings: [PPT-1215] allow users to add themselves as attendees to public events (#316)
- events: add a reason for cancellation (#315)
- staff: add pagination support getting staff [PPT-1170] (#311)
- bookings: include any attending guests in responses (#308)
- bookings: [PPT-1098] support multiple assets on a single booking (#307)
- events: serialize requests from each user [PROJ-512] (#306)
- guests: deprecate event based guest queries
- events: add filter to index (#305)
- events: provide strict requirements for processing responses [PROJ-433] [PROJ-420] [PPT-975] (#304)
- events: add setup/breakdown fields to destroyed signal
- events: add fields to patch event metadata
- events: don't delete metadata and notify meta on event cancel
- current-user: match options in rest-api
- events: skip some checks when in delegated mode (#294)
- add support for public.read and public.write scopes
- improve permissions checks (#292)
- shard.lock: bump opentelemetry-instrumentation.cr
- PPT-621 Add pagination to bookings index route (#284)
- events: add push event endpoint (#283)
- events: allow moving room to one that exists in the meeting
- events: provide method to keep old resources when moving room
- events: destroy metadata when event deleted
- bookings: add support for linking bookings (#280)
- events: include ical_uid in signals
- bookings: [PPT-387] implement linked bookings child parent relationship (#278)
- survey: [PPT-358] add visitor triggers (#275)
- events: add events filter with ical uid (#271)
- staff: [PPT-89] support Azure AD filter (#269)
- events: decorate events with system data where possible (#268)
- events: patch metadata lookup using ical uid (#267)
- db: support additional connection details (#266)
- event_metadata: provide additional options for metadata queries (#265)
- survey: soft-delete questions if they are used in a survey (#260)
- survey: include deleted questions by default and include delete… (#259)
- events: improve event patching (#258)
- survey: [PPT-67|PPT-101] update /surveys/questions endpoint (#257)
- survey: [PPT-91] filter answers on date range (#255)
- survey: use host_override if defined (#254)
- survey: triggers (#249)
- survey: add fields (#246)
- events: allow meetings to be booked by service accounts (#243)
- surveys: survey improvements (#239)
- migrations: add additional indexes to bookings table (#240)
- survey: add survey models and endpoints (#236)
- outlook: generate plugin xml manifest (#208)
- add support for running using a service account (#223)
- tenants: flag if running in delegated mode (#219)
- Dockerfile: add support for ARM64 images (#213)
- refactor for self documenting code (#211)
- events: relax when metadata is returned on events (#210)
- bookings: add event_id column for associating bookings to events (#207)
- bookings: checked_in to canclled state transition (#196)
- events: add dedicated metadata update methods (#195)
- staff: add query for a users calendars
- staff: add query for a users manager
- add group related routes (#192)
- controllers/bookings: add include checked out flag (#190)
- bookings: adjust booking limit checks (#189)
- add support for delegated API access (#188)
- logging: configure OpenTelemetry
- booking: change error code on booking limits (#179)
- logging: add configuration by LOG_LEVEL env var
- controllers/events: add support for declining events (#176)
- calendars: precise free/busy availability requests (#170)
- bookings: update booking validation (#166)
- tenants: expose booking limits in the API (#164)
- bookings: restrict booking_limits by zones (#163)
- bookings: add department field (#149)
- bookings: add current_state and history (#146)
- bookings: add configurable limits on booked assets (#145)
- bookings: flag on delete (#136)
- events: endpoint to get events by ext_data (#131)
- bookings: refactor how booking instance is applied
- bookings: don't return rejected or deleted recurring master bookings
- booking: checked out filters to work with recurring bookings
- bookings: add approve and reject routes for recurring instances
- bookings: modify how delete is performed
- events: [PPT-1390] return 404 instead of 500 and improve logging (#321)
- bookings: user/zones query with booking_type=group-event (#319)
- booking: [PPT-1205] update phone of existing guest when inviting visitor (#317)
- application: forbidden when no valid scope
- bookings: remove isolated transactions
- bookings: add a serialisable backoff
- bookings: specs passing
- events: update event id requirement
- bookings: ensure serialisable transactions (#314)
- events: [PPT-1190] update metadata on rapid destroy after create (#313)
- bookings: changed signal
- events: metadata updates to be resource_master_id aware
- events: check for declined status on push update
- events: refactor change notifications
- events: resource calendar signal
- calendars: allow any specified if delegated
- events: recurring metadata visibility [PPT-1072] [PPT-1073] (#309)
- calendars: availability removing busy items within period (#303)
- shard.lock: bump office365 dep [PROJ-419]
- events: add setup/breakdown time to StaffAPI::Event#aument (#302)
- bookings: pagination using created ascending order (#301)
- events: user checkin with custom calendar [PPT-538]
- events: render rejected linked bookings [PPT-915]
- calendars: [PPT-945] remove busy times that are outside of the period in #free_busy (#300)
- events: update guest details [PPT-910]
- bookings: rejected / approved status [PPT-917]
- bookings: missing save on approve and reject routes
- unauthorized if delegated access has expired (#296) [PPT-731]
- guests: query where there are no bookings
- calendars: availability status request
- calendar: availability check (#293)
- guests: invalid SQL generated when there were no meetings
- calendar: availability of timeslots imidiatly preceding another meeting (#289)
- events: patch_metadata attempts to obtain client
- events: [PPT-723] failed metadata lookup on recurring booking edit (#290)
- events: check not required with delegated access PPT-758 (#288)
- events: fixes O365 decline events
- events: accepting an event must use a special route (#286)
- tenants: allow updates to email_domain column
- tenants: don't error if no tenant configured
- event: mark metadata as cancelled on augment
- event: mark metadata as cancelled on augment
- events: use relative monthly bookings by default (#285) (PPT-651)
- events: only return matching ical_uid when requested
- events: ensure metadata patching applied on room change
- bookings: add default response status to attendees
- shard.lock: bump models for JWT email downcasing (#276)
- bump forbidden log levels (#274)
- tenants: enable patching delegated state (#272)
- migration: alter attendees booking_id column type (#273)
- events: skip calendar check if it matches user (#270)
- events: regression caused by missing calendar id (#264)
- survey: survey questions deleted json property (#262)
- staff_api: check sent for not nil in Surveys::Invitations (#253)
- outlook: xml manifest version (#252)
- events: delete event with a service account user
- events: delete event with a service account user (#251)
- events: fix cancel with service account (#250)
- tenant: don't set a default conference type (#247)
- bookings: add transaction lock to prevent duplicate bookings (#242)
- outlook: minor manifest fixes (#235)
- bookings: improve consistency between requests and responses (#234)
- visitor_checkin: when running in delegated permissions mode (#233)
- models/tenant: allow credentials to be nil (#231)
- outlook: adjust outlook config (#230)
- events: patching extension metadata (#227)
- events: update ext_data (#224)
- events: get event succeed if the host event can't be fetched (#218)
- utilities/helpers: ensure emails are downcased (#202)
- calendar: downcase candidate keys (#200)
- use correct routes for calendar view with delegated access (#198)
- events: update on graph api where host event switch not made (#194)
- models/booking/history: handle pull parser when setting history
- update
placeos-log-backend
- telemetry: seperate telemetry file
- migrations/migrate_user_ids: add user_id migrations (#180)
- bookings: correct logic (#169)
- controllers/tenants: update to support limits (#168)
- bookings: handle additional state transitions (#157)
- incomplete centralised ci (#156)
- migrations: adds unique migration for deleted and email digest (#139)
- models booking: render deleted at as an integer
- models booking: render deleted and deleted_at (#138)
- controller bookings: ignore deleted entries when checking for clashes
- bookings/events/guest: query Guest by tenant (#137)
- event/guests: filtering of host from attendees
- event/guests: Don't add host as guest, even when event.host is not specified
- bookings: emails saved in lower case (#128)
- events: [PPT 503] replace #not_nil! with more specific errors (#287)
- migrated staff-api to pg-orm (#277)
- set app name to
staff-api
(#185) - spec: randomise data (#159)
- tenant: improve uniqueness constraint (#151)
- application: remove unnecessary code (#155)
- central build CI (#150)
- booking: use PlaceOS::Model::Email (#135)
- avoid unnecessary allocation (#160)
- tenant: scopes in parameters for delegated access (#126)
- tenant: allow conference_type to be configurable (#119)
- events: add permissions check on event creation (#111)
- add PG_CONNECTION_POOL_SIZE env (#109)
- guests controller: improve search query (#104)
- events: create visitor on check-in (#98)
- guests controller: make email mutable (#99)
- add support for x-api-key auth (#89)
- bookings: query within extension_data json (#84)
- guests controller: query should allow searching emails
- removes double serialisation (#78)
- add phone to search query
- events: allow guest check-in using guest id instead of email
- guests: support updating via guest ID
- SSL_VERIFY_NONE now only applies to PlaceOS connections
- render Place API client errors in response
- events: allow mailbox override on guest check-in
- application: add additional error information in production
- events: return error description on 404 responses
- add SSL_VERIFY_NONE env var (#61)
- add query for checked in status
- logging: add sentry
- add health check command line option
- tenants: add support for updating a tenant
- tenant: return 404 if domain isn't configured
- add logstash logging
- bookings: add timestamps for various events
- bookings: signal more information about who is performing actions
- bookings: allow booked_by users to also manage bookings
- bookings: provide a way of including bookings you've made
- bookings: fix current user booking query
- bookings: return bookings when booked on behalf of another
- store emails downcased in database
- bookings: improve clashing booking check
- add database connection check to health check
- bookings: add additional fields to booking signals
- staff: be more flexible with values passed
- add health check route
- add approver details to update signal
- add support for crystal 0.36
- bookings: test signal outside of spawn
- bookings: add error logging to failed signals
- bookings: add approved and rejected filters
- bookings: make created time queryable
- bookings: add timestamps for tracking booking workflows
- bookings: different signals if core booking data unchanged
- bookings: pass process_state in booking events
- bookings: add booked_by support and processing state
- bookings: add support for querying by user email
- bookings: allow querying other users bookings
- events: check for office365 and grab host event as appropriate
- accurate updating of events in office365
- events ical uid: inital work
- return users events if no calendar passed
- return bad_request when missing params are detected
- return bad_request when missing params are detected
- bookings: default to the users bookings
- events: include event extension_data in changed signals
- events: include event extension_data in changed signals
- calendars: check availability correctly (#125)
- events update: unable to mark visitor as unexpected (#122)
- bookings: add validation for booking times (#120)
- events: on PUT request look up events with system mailbox (#118)
- events: parsing online meetings in office365
- Dockerfile: layer name missing
- syntax error in specs (#113)
- improve handling of GraphAPI errors
- application controller: public scope check
- Dockerfile: correct path to healthcheck (#94)
- utilities helper: list calendars only as required (#93)
- tenant: remove id assign + correct domain validation (#91)
- spec: add various fixes to ensure CI is passing (#92)
- clashing bookings: Do not include bookings on the time bound.
- controller events: resolve build issues
- tenant: init id (#74)
- tenant_spec: remove focus
- change level to NeverDisplay (#67)
- readme: typo `
- creds: use placeos encryption model for credentials (#58)
- bookings: don't reset state unless value changed
- tenant: allow editing of tenants
- update visitor name on event creation
- metadata not found
- events: resources marked as resources in office365
- guest checkin: where user might not have calendar read access
- get_placeos_client now proxies host header
- bookings: don't return bookings on the boundary of searches
- application: correct HTTP status enum members
- check for timezone presence (#50)
- guest meetings: return correct meeting ID for graph API (#42)
- models guest: event_metadatas inner join on id instead of event_id
- migrations: class name clash
- Dockerfile.test: shards install
- event_metadata.cr: fix typo
- bookings controller: save who made the changes on booking update
- bookings: booked by check needs to be an OR
- bookings: make query less ambiguous
- booking: query for user_id and email
- booking: check if approver email is defined
- healthcheck: add version information to help with debugging
- bookings: don't set user id if email is set
- bookings: it's not a conflict to book a previously rejected asset_id
- bookings: use last_changed as age tracker
- update model queries to match updated ORM
- bookings: change how zones query is structured
- bookings: change how zones query is structured
- bookings: change where zones query occurs in index
- build: compiler errors
- minor webmock stub fix
- postgresql variable using aargs instead of namedtuple
- migrations adding columns not working
- where queries with pg variables as args instead of namedtuples
- order_by args format, updated connection pool format
- bookings: modify zones filter
- bookings: modify zones filter
- guest: Get guest's future Events should include events that are currently in progress (not ended yet)
- matching_calendar_ids: matches should be case-insensitive
- matching_calendar_ids: matches should be case-insensitive
- events: office365 delegated access
- api: log calendar errors
- jwt: use updated interface
- minor model refactor
- efficient and concise specs
- use correct find over find! enumerable method
- scope methods with where clause clarifying the relations of tables
- ::PlaceOS::Client::API::Error in rescue_from block
- optimise sql queries, use concise expressions in algo
- improve Bookings#create algo
- use find! over find where redundant, remove unnecessary before_action block
- make controller helper methods private
- use the correct fields default
- bookings: only query given params (#123)
- logging: set raven to be async