* Add map between model types and helpUrls, update tests
* replace modelProto.getHelpUrl with new helper util
* Remove all useOpenApi and getHelpUrl instances from models
* Add missing auth config model type
* intial changes, haven't tested client counts or done test coverage
* client count rename getter to clairfy
* fix has-permission api-paths
* wip
* wip
* fix: explicitly refresh vault.cluster model to re-fetch activatedFeatures after actication
* tests: fix # of assertions for verifying that activation was called
* tests: tidy overview-test
* add additional api permission path and move fetch back to application
* add test coverage for the service
* cleanup
* remove test that checked for upsell without license or on community
* small comment change
* welp missed component getter
* flaky test fix
* flaky test
* small nit changes from pr reviews
* add defaults to sync mirage handler
* Gate sync overview route for users without access (#27320)
* routes: add redirect if user does not have access to sync
* tests: verify redirect on sync overview page happens
* tests: organize tests modules to ensure enterprise is explicitly set up
* add type enterprise required now because we do a check for this first
* fix oss test
---------
Co-authored-by: Noelle Daley <noelledaley@users.noreply.github.com>
* cleanup namespaceArrayToObject method
* WIP typescript conversion
* WIP typescripted destructured block
* slowly making progress....
* WIP move all types to util type file, separate returns in formatByMonths
* namespaceArrayToObject is working?!?
* fix mirage handler not generating months when queries are after upgrade
* wow, the types are actually working omg
* add comments and update client-count-utils test
* delete old js file
* remove types from activity model
* remove comment
* reuse totalclients type to minimize places we add types
* commit file with type changes for git diff
* delete util file again
* address PR feedback and move type declarations to util file
* remove unused types
* update tests, use client helper in dashboard clients test
* remove typo
* make modifications with updated combined activity response from the backend
* add default granularity depending on type
* move default setting to helper
* add test coverage for default granularity
* update mirage
* update secret name template
* remove has-text-black class which was making help tooltip black as well
* Client Count Routing Updates (#24733)
* updates client count routing for sync and future additions
* adds copyright header to clients sync template
* adds missing copyright headers
* UI: Adds secret_syncs to mirage /activity endpoint (#24846)
* add secret_syncs to mirage endpoint
* import clients handler
* UI: Set up client charts for incoming sync data (#24852)
* sum stacked bar values for tooltip total
* make tooltip dynamic based on chartLegend
* remove redundant helper
* add secret_syncs to client count utils
* move sum function to helper
* update horizontal bar chart to include sync_clients
* calculate sum of bars in tooltip
* rename color palette const, define chart legends in each parent component instead of token.js
* update tooltips
* update mirage handler to add sys/ namespace
* update mirage handler to add sys/ namespace
* use pushObject
* update test
* UI: Secret sync bar chart (#24926)
* install lineal
* add ember-style-modifier dep
* Add client count types for serialized data
* Add sync bar chart component with tests
* Chart is responsive
* address comments
* Clients Counts Parent Route (#24899)
* adds interfaces for clients models
* moves date formatting logic from clients activity adapter to utils file
* adds clients counts route
* updates links to clients route to point to top level and updates redirect to counts overview route
* removes clients base route and moves overview and sync routes under counts
* adds clients counts page component
* converts clients route to ts
* adds billing start timestamp to clients config mirage response and updates counts route to always attempt to fetch activity
* fixes issue with updating namespace and auth mount query params always triggering client counts route model hook
* adds tests for clients counts page component
* adds missing copyright header to client-counts type file
* Update ui/app/components/clients/page/counts.hbs
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
* fixes bad import in sync-bar-chart
* updates clients counts route to bypass query if there is not start_time
* pins d3-shape to 1.3.7 for now -- makes lineal play nice with old charts
* fixes sync bar chart tooltip assertion
---------
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
* UI: convert line-chart to lineal (#24961)
* lineal chart alongside svg
* Add version-history to sync handler for testing
* line chart is TS, test updated
* remove d3-shape resolution
* fix clients/token-test
* use chartHeight in running-total template
* use M/yy key instead of timestamp, chart is responsive
* Add test for swapping datasets
* add more edge case tests
* more test
* remove untrue assertion
* fix weird decimal when between 1.1k and 2k
* address feedback
* Update line-chart to use timestamp instead of month key
* Add timestamp to all places where month is on the clients activity response
* Client Counts Overview (#24969)
* adds counts base component for use in client counts child routes
* adds clients counts overview page component
* splits out monthly new chart from clients running total component
* adds missing copyright headers
* moves running total related assertions from token to overview acceptance test
* removes new client assertions from running-total test and adds tests for monthly-new component
* updates copy in running-total component
* fixes clients overview tests
* fixes timestamp stub not being restored in monthly-new test
* fixes mfa-login test
* renames counts component to activity
* removes unused selectedAuthMethod arg from running-total component
* adds timestamp back to running-total component
* Secrets sync UI: add sync page component (#24982)
* adds counts base component for use in client counts child routes
* adds clients counts overview page component
* splits out monthly new chart from clients running total component
* adds missing copyright headers
* move sync-bar-chart to charts/ folder
* update types and rename chart
* rename template file
* moves running total related assertions from token to overview acceptance test
* removes new client assertions from running-total test and adds tests for monthly-new component
* updates copy in running-total component
* fixes clients overview tests
* fixes timestamp stub not being restored in monthly-new test
* fixes mfa-login test
* fix 0 values erroring charts
* separate timestamp again
* address merge conflicts
* finish building sync chart component WIP css
* renames counts component to activity
* update import
* revert name to dataKey
* update styling for charts without legends
* use monthly stat chart component for layout
* use monthly chart stats in monthly new
* implement stat wrapper;
* remove extra grid div
* rename component
* fix legend css;
* update test[
* remove arbitrarily setting max
* add single month view
* use stat text
* update line chart tests
* rename line chart
* update tests
---------
Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
* update selectors
* add sync page tests
* Secrets Sync UI: Add secrets syncs to csv export (#25056)
* update mirage and add sync clients to export csv
* fix sync legend label
* remove word
* update copy in modal
* update mirage
* fix attribution tooltip text
* Clients Counts Token Route (#25019)
* renames token route and page component back to dashboard
* adds client counts token route and page component
* updates charts in token page to use ChartContainer component
* adds tests for clients token page component
* restore clients dashboard test
* use var for chart title sync page
* updates clients token page to show usage stats when querying single month
* updates token page clients averages to only include entity and non-entity clients in calculation
* fixes monthly total counts lower than new clients in mirage handler
* fixes token test
---------
Co-authored-by: clairebontempo@gmail.com <clairebontempo@gmail.com>
* Clients Usage Stats/Running Total Updates (#25094)
* updates clients usage counts and running totals
* updates usage stats total copy
* fixes client counts overview tests
* Secrets sync UI: cleanup and consolidation of components (#25090)
* rename authMethod to mountPath
* generalize count template copy
* add todo to delete monthly new component
* rename to tokenTab
* wrap filters in conditional checking for start timestamp
* some users may not have access to /config endpoint
* fix querying when user has no billing date permissions and clicks current billing period
* extend activity component from counts page
* Revert "extend activity component from counts page"
This reverts commit 1d0e85c82faf88c4385a04b1a5841cdde7fd00e0.
* rename to startTimestampISO
* remove timestamp from route and just use activity model responseTimestamp
* fix chart y domain max
* fix typos in usage stat and running totals component
* delete backing class for display only template;
* updates tests
* adds comment for fetching license to get start date for billing
* cleans up unused client counts files (#25157)
* adds changelog
* fix assertion copy
* adds changelog description
* updates enterprise sidebar nav test
---------
Co-authored-by: clairebontempo@gmail.com <clairebontempo@gmail.com>
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
Co-authored-by: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com>
* update header to refer to destination name
* teeny design improvements VAULT-22943
* update azure model attrs
* remove padding, add destination type to description VAULT-22930 VAULT-22943
* fix overview popupmenu nav to sync secrets VAULT-22944
* update sync banner, hyperlink secret
* redirect when all destinations are deleted VAULT-22945
* add keyVaultUri to credentials for editing
* fix extra space and test for sync banner
* use localName to get dynamic route section to fix pagination transition error
* add copy header remove duplicate app type
* add cloud param to azure mirage destination
* add comments
* enter line
* conditionally render view synced secrets button
* revert pagination route change
* combine buttons and add logic for args
* rename to route
* remove model arg
* Ember Engine Setup for Secrets Sync (#23653)
* ember engine setup for secrets sync
* Update ui/lib/sync/addon/routes.js
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
---------
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
* Sync Mirage Setup (#23683)
* adds mirage setup for sync endpoints
* updates secret_name default in sync-association mirage factory
* UI Secrets Sync: Ember data sync destinations (#23674)
* add models
* adapters
* base model adapter
* update test response
* add sync destinations helper
* finish renaming base destination model/adapter
* add comment
* add serializer
* use normalizeItems instead
* destination serializer test
* add destination find method;
* add conditional operand
* UI Secrets Sync: Overview landing page (#23696)
* add models
* adapters
* base model adapter
* update test response
* add sync destinations helper
* finish renaming base destination model/adapter
* add comment
* add serializer
* doc-link helper
* add version service
* landing and overview component
* overview page
* add tests
* UI Secrets Sync: Destinations adapter add LIST (#23716)
* add models
* adapters
* base model adapter
* update test response
* add sync destinations helper
* finish renaming base destination model/adapter
* add comment
* add serializer
* doc-link helper
* add version service
* landing and overview component
* overview page
* build out serializer and adapters
* update mirage
* fix merge conflicts
* one more conflict!
* pull transformQueryResponse to separate method in adapter
* move data transforming all to serializer and tests
* add note to paginationd ocs
docs
* conditionally render CTA
* add lazyPaginatedQuery method to destinations route
* remove partial error
* Secrets Sync: Destinations create - select type (#23792)
* add category to destinations
* build select type page
* refactor prompt config situation
* routing for destinations
* update select-type routing
* make card width fixed
* revert CTA routing change, keep shouldRenderOverview
* add header for gif demo to form
* cleanup scope
* more scope cleanup
* add test
* add type selector
* rename components
* rename again
* remove async
* fix tests
* fix select type rename in test
* delete renamed test
* fix import of general selectors
* rename using component syntax
* UI Secrets Sync: Create destination form and route (#23806)
* add model attribute metadata
* add form and save url, remove name and type from serializer
* move checkbox list to form field helper
* add styling to alert inline
* use newly made class
* fix cancel action and cleanup form
* change quotes
* remove checkbox action from form component
* add tests
* address feedback
* add API error test
* use create record method instead
* adapter test for create record
* return from find method if type is undefined
* cleanup test selectors
* secrets sync: refactor sync destinations helper (#23839)
* refactor getter in base destination model
* add getters back to model
* Secrets sync UI: Destination details page (#23842)
* change labels to match params
* add maskedParams to base model
* add details route
* add details view;
* update mirage
* fix secrets sync link;
* delete parent destination route
* add copyright header
* add secrets route
* move sync route outside of secrets/ route
* upate mirage
* export to-label
* finish tests
* make ternary
* rename header tabs
* fix selector in test
* Secrets Sync UI: Cleanup headers + tabs (#23873)
* remove destination header component, add headers/tabs to all routes
* fix header padding
* move tabs + toolbar back into component...
* add copyright header
* add delete modal
* lol revert again
* add extra line after copyright header
* Secrets Sync Destinations List View (#23949)
* adds route and page component for sync destinations list view
* filters by type first for sync destinations
* adds test for store.filterData method
* Update ui/app/services/store.js
Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
* updates nav link label for secrets sync
* moves sync destinations types out of app-types
* moves loading-dropdown-option component to core addon and adds to destination list item menu
* change true assertion to deepEqual in sync destinations test
* adds copyright header to sync-destinations type file
* clear store dataset on sync destination create
---------
Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
* Sync Destinations Capabilities (#23953)
* adds route and page component for sync destinations list view
* filters by type first for sync destinations
* adds test for store.filterData method
* adds capabilities checks for sync destinations
* removes canList from sync destinations capabilities
* updates sync header tests
* Update ui/tests/integration/components/sync/sync-header-test.js
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
* updates sync destination response serialization
* updates sync destination serializer test
* updates sync destinations page test assertions
* fixes mirage sync destinations payload issue
* removes commented out method in sync destination adapter
* fixes inconsistencies with url generation for sync destinations delete
* fixes sync destinations page test
---------
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
* Sync Associations Ember Data Setup (#24132)
* adds model, adapter and serializer for sync associations
* updates sync association adapter save methods to use adapterOptions to determine action
* Sync Destination Secrets Route and Page Component (#24155)
* renames sync destination header component and adds tests
* adds destination secrets route and page component
* adds setup-models helper for sync testing
* moves destination details test into subdir
* adds destination secrets page component tests
* adds controller for destination secrets route
* fixes pagination route on destination secrets view
* fixes sync association updated_at assertion based on timezone
* updates kv secret details external route name
* updates usage of old spacing style variable after merge
* use confirm action instead of contextual confirm (old) component (#24189)
* UI Secrets Sync: Adds secret status to kv v2 details page (#24208)
* woops! missed this styling for confirm action swap
* update link to go to destination secrets
* change edit to view secret from destination secrets list
* add synDestination to external routes for kv engine
* add sync status badge component
* export from addon
* splaattributes
* poll sync status for kv secret details and render
* move from controller to component
* update name to new destinationName key
* reorder list view items
* add refresh button
* add mirage data
* change to loading static
* update icons to be sync specific
* change name
* move button and change fetch to concurrency task
* add tests to kv details
* add color assertion
* add copyright header
* small test tweaks
* Update ui/tests/integration/components/sync-status-badge-test.js
* fixes test
---------
Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
* Sync Secrets to Destination (#24247)
* fixes issue with filter-input debounce and updates to spread attributes for input rather than use args
* adds destination sync page component
* removes unused var in sync component
* adds test for manual mount path input in sync view
* updates mount filtering in destinations sync page to target kv v2
* Secrets Sync Landing Page Images (#24277)
* updates sync landing page to add marketing images
* removes top margin from sync landing-cta
* adds aria-describedby to sync landing images
* UI Secrets Sync: Serialize trailing slash from destination type (#24294)
* remove trailing slash from type in destination LIST response
* update keys in mirage and tests
* Sync Overview (#24340)
* updates landing-cta image to png with matching height
* adds ts definitons for sync adapters
* updates sync adapters and serializers to add methods for fetching overview data
* adds sync associations list handler to mirage and seeds more associations in scenario
* adds table and totals cards to sync overview page
* adds sync overview page component tests
* fixes tests
* changes lastSync key to lastUpdated for sync fetchByDestinations response
* adds emdash as placeholder for lastUpdated null value in secrets by destination table
* updates to handle 0 associations state for destination in overview table
* Secrets Sync UI: Add loading and error substates (#24353)
* add error substate
* add loading substates
* delete loading from secrets route
* Remove is-version Helper (#24388)
* removes is-version helper and injects service into components
* updates sync tests using version service to new API
* adds comment back for tracked property in secret detials page component
* updates sync tests to use common selectors (#24397)
* update capitalization to consistently be titlecase, fix breadcrumb selector
* clears sync associations from store on destination sync page component destroy (#24450)
* KV Suggestion Input (#24447)
* updates filter-input component to conditionally show search icon
* adds kv-suggestion-input component to core addon
* updates destination sync page component to use KvSuggestionInput component
* fixes issue in kv-suggestion-input where a partial search term was not replaced with the selected suggestion value
* updates kv-suggestion-input to retain focus on suggestion click
* fixes test
* updates kv-suggestion-input to conditionally render label component
* adds comments to kv-suggestion-input regarding trigger
* moves alert banner in sync page below button set
* moves inputId from getter to class property on kv-suggestion-input
* Secrets Sync UI: Editing a destination (#24413)
* add form field groups to sync models
* update create-and-edit form to use confirmLeave and enableInput component
* enable input component
* add more stars
* update css comments
* Update ui/app/styles/helper-classes/flexbox-and-grid.scss
* make attrOptions optional
* remove decorator
* add env variables to subtexr
* add subtext to textfile
* fix overviwe transition bug
* remove breadcrumbs to getter
* WIP adapter update
* update mirage response
* add update method with PATCH
* add patch to application adapter
* fix typo
* finish tests
* remove validations because could use environment variables
* use getter and setter in model
* move update record business to serializer
* rest of logic in serializer;
gp
;
gp
* add model validation warnings
* cleanup getters
* pull create/update logic into method for mirage
* add test for validation warning
* update KV copy
* Sync Success Banner (#24491)
* adds success banner to destination sync page
* move submit disabled logic to getter in destination sync page
* adds id and for attributes to kv mount input in sync page
* hides sync success banner on submit
* use Sync secrets everywhere (remove new) (#24494)
* use Sync secrets everywhere (remove new)
* revert test name change
* Sync Destinations List Filter Bug (#24496)
* fixes issues filtering destinations list
* adds test
* fixes Sync now action text alignment in destination secrets list
* UI Secrets sync: Add purge query param to delete endpoint (#24497)
* adds updated_at to mirage set association handler
* adds changelog entry
* add enterprise in parenthesis for changelog
* addres a11y feedback
---------
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
Co-authored-by: clairebontempo@gmail.com <clairebontempo@gmail.com>
Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
* adds ldap ember engine (#20786)
* adds ldap as mountable and supported secrets engine (#20793)
* removes active directory as mountable secrets engine (#20798)
* LDAP Config Ember Data Setup (#20863)
* adds secret-engine-path adapter
* adds model, adapater and serializer for ldap config
* adds test for ldap config adapter
* addresses PR feedback
* updates remaining instances of getURL in secrets-engine-path adapter
* adds underscore to getURL method in kubernetes/config adapter
* adds check config vars test for kubernetes/config adapter
* adds comment regarding primaryKey in secrets-engine-path adapter
* adds tab-page-header component for ldap secrets engine (#20941)
* LDAP Config Route (#21059)
* converts secret-mount-path service to ts and moves kubernetes fetch-config decorator to core addon and converts to ts
* adds ldap config route
* fixes withConfig import path in kubernetes roles route
* updates types in ldap config route
* adds unit tests for fetch-secret-config decorator
* updates comments in fetch-secret-config decorator
* renames fetch-secret-config decorator
* LDAP Configure Page Component (#21384)
* adds ldap page configure component
* removes pauseTest and updates radio card selector in ldap config test
* LDAP Configuration (#21430)
* adds ldap configuration route
* adds secrets-engine-mount-config component to core addon
* adds ldap config-cta component
* adds display fields to ldap configuration page and test
* fixes ldap config-cta test
* adds yield to secrets-engine-mount-config component
* fixes tests
* LDAP Overview Route and Page Component (#21579)
* adds ldap overview route and page component
* changes toolbar link action type for create role on overview page
* LDAP Role Model, Adapter and Serializer (#21655)
* adds model, adapter and serializer for ldap roles
* addresses review feedback
* changes ldap role type from tracked prop to attr and sets in adapter for query methods
* adds assertions to verify that frontend only props are returned from query methods in ldap role adapter
* LDAP Library Model, Adapter and Serializer (#21728)
* adds model, adapter and serializer for ldap library
* updates capitalization and punction for ldap role and library form fields
* LDAP Roles Create and Edit (#21818)
* moves stringify and jsonify helpers to core addon
* adds validation error for ttl picker in form field component
* adds ldap roles create and edit routes and page component
* adds ldap mirage handler and factory for roles
* adds example workflow to json editor component
* adds tests for ldap page create and edit component
* addresses feedback
* LDAP Role Details (#22036)
* adds ldap role route to pass down model to child routes
* adds ldap role details route and page component
* updates ldap role model capabilities checks
* adds periods to error messages
* removes modelFor from ldap roles edit and details routes
* adds flash message on ldap role delete success
* LDAP Roles (#22070)
* adds ldap roles route and page component
* update ldap role adapter tests and adds adapter options to query for partialErrorInfo
* updates ldap role adapter based on PR feedback
* adds filter-input component to core addon
* updates ldap roles page to use filter-input component
* updates ldap role adapter tests
* LDAP Role Credentials (#22142)
* adds ldap roles route and page component
* update ldap role adapter tests and adds adapter options to query for partialErrorInfo
* adds credentials actions to ldap roles list menu and fixes rotate action in details view
* adds ldap role credentials route and page component
* adds tests for ldap role credentials
* LDAP Library Create and Edit (#22171)
* adds ldap library create/edit routes and page component
* adds ldap library create-and-edit tests and library mirage factory
* updates form-field component to display validation errors and warnings for all fields
* updates ldap library edit route class name
* updates ldap library model interface name
* adds missing period in flash message
* LDAP Libraries (#22184)
* updates interface and class names in ldap roles route
* adds ldap libraries route and page component
* fixes lint error
* LDAP Library Details (#22200)
* updates interface and class names in ldap roles route
* adds ldap libraries route and page component
* fixes lint error
* adds ldap library details route and page component
* LDAP Library Details Configuration (#22201)
* updates interface and class names in ldap roles route
* adds ldap libraries route and page component
* fixes lint error
* adds ldap library details route and page component
* adds ldap library details configuration route and page component
* updates ldap library check-in enforcement value mapping
* fixes issue in code mirror modifier after merging upgrade
* fixes failing database secrets test
* LDAP Library Account Details (#22287)
* adds route and page component for ldap library accounts
* adds ldap component for checked out accounts
* updates ldap library adapter tests
* LDAP Library Check-out (#22289)
* adds route and page component for ldap library accounts
* adds ldap component for checked out accounts
* adds route and page component for ldap library checkout
* addresses PR feedback
* LDAP Overview Cards (#22325)
* adds overview cards to ldap overview route
* adds create library toolbar action to ldap overview route
* adds acceptance tests for ldap workflows (#22375)
* Fetch Secrets Engine Config Decorator Docs (#22416)
* removes uneccesary asyncs from ldap route model hooks
* updates ldap overview route class name
* adds documentation for fetch-secrets-engine-config decorator
* add changelog
* adding back external links, missed due to merge.
* changelog
* fix test after merging in dashboard work
* Update 20790.txt
---------
Co-authored-by: Angel Garbarino <angel@hashicorp.com>
Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com>
* Adding explicit MPL license for sub-package.
This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.
* Adding explicit MPL license for sub-package.
This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.
* Updating the license from MPL to Business Source License.
Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.
* add missing license headers
* Update copyright file headers to BUS-1.1
* Fix test that expected exact offset on hcl file
---------
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Sarah Thompson <sthompson@hashicorp.com>
Co-authored-by: Brian Kassouf <bkassouf@hashicorp.com>
* add integer-to-string helper
* rename and add test
* add role test
* finish tests
* pass options so values are only converted if the type matches
* okay lets hit it with the loose-equal instead
* add changelog
* setup routing, move queries in ConfigurationIndex to parent resource route
* finish building out form, add model attrs build ttls
* add types
* update model attribute values, fix default ttl states
* remove defaults and use openApi, group with booleans
* add model to application route"
* add save functionality
* add error banner
* add transition after save
* use defaults from open api
* fix empty state language
* pass engine data
* change model attrs to ttl objects
* update types
* add invalid form alert to error block
* move data manipulation to serialize
* fix serializer, add comments
* add test for serializer
* edit configuration details view
* update details test
* change to updateRecord so POST request is made
* config/urls use POST instead of PUT
* add edit tests, update details
* add model hooks back to routes
* rearrange to remove dif
* remove createRecord for urls
* update comment
* wip sample ttl transform
* Revert "wip sample ttl transform"
This reverts commit 59fc179b5cd2994c4258e553e56667e29b3d6b72.
* revert changes, move model updates back to component
* simplify model fetches
* address comments;
* update pki/urls test
* update adapter test