App-Dochazka-REST
view release on metacpan or search on metacpan
into the respective data model modules under C<App::Dochazka::REST::Model>
- move the rest of the Spec.pm verbiage into L<App::Dochazka::REST>
0.076 2014-07-18 10:20 CEST
- MANIFEST: update to reflect current state
- REST.pm, Privhistory.pm, Schedhistory.pm: work on POD
0.077 2014-07-18 13:16 CEST
- REST.pm: POD cleanup
- Interval.pm: add missing POD verbiage
- release.sh: attempt to fix minor brokenness that sometimes causes version
numbers to get messed up when switching from one development machine to
another
- Shared.pm: add 'noof' function
- t/001-init.t: add comments and two unit tests
- t/003-current_priv.t, t/004-employee.t: rework tests, clean up database
when done
0.078 2014-07-18 13:43 CEST
- Privhistory.pm, etc.: change privhistory.int_id to privhistory.phid
- Schedhistory.pm, etc.: change schedhistory.int_id to schedhistory.shid
- schedule_Config.pm: add missing SQL_SCHEDHISTORY_DELETE parameter
0.079 2014-07-18 16:13 CEST
- schedule_Config.pm: add SQL_SCHEDULE_SELECT and SQL_SCHEDULE_DELETE
- Schedule.pm: fix bug in 'delete' method, implement 'load_by_sid' method
- t/: clean up several unit test files (unit test files no longer leave
any database artifacts behind, so each one starts from a clean slate
and can be run independently)
0.080 2014-07-19 18:03 CEST
- lock_Config.pm, t/012-lock.t: add the beginnings of some SQL and unit tests
for lock objects
- privhistory_Config.pm: add SQL_PRIVHISTORY_SELECT_BY_PHID and
SQL_PRIVHISTORY_SELECT_RANGE
- Privhistory.pm, t/005-privhistory.t: add load_by_phid method and get_privhistory function
- Timestamp.pm: add untested functions 'split_tsrange' and 'canonicalize_ts'
0.081 2014-07-21 09:08 CEST
- minor edit to bump version number as PAUSE refuses to accept version 0.080
0.082 2014-07-21 19:44 CEST
- Build.PL: add another dependency to appease CPAN Testers
- bin/*, config/dochazka-rest.psgi, Resource.pm: start working on executable
for starting the server
0.083 2014-07-22 10:18 CEST
- dochazka-rest.psgi: minimize
- Resource.pm: add POD, work on 'resource_exists' (path dispatcher)
- Dispatch.pm: put path dispatch state machine into separate module
0.084 2014-07-22 14:32 CEST
- bin/dochazka-rest: rework into standalone server startup script
- t/301-psgi.t: start testing web server functionality
- REST.pm: add POD re: starting server and authentication, include PSGI
$app coderef in $REST singleton
- config/Dochazka_Config.pm, Resource.pm: add DOCHAZKA_REST_HTML param
defining the HTML displayed when someone accesses the server from a
browser
- Resource.pm: enable HTTP Basic Authorization for authentication, using a
hard-coded dummy username/password pair for now
- Build.PL, t/000-dependencies.t: update dependencies
0.085 2014-07-23 09:12 CEST
- t/000-depends.t: fix bug (wrong number of tests)
- dispatch_Message_en.conf: new file for path dispatch messages
- Dispatch.pm: work on '_get_response'
- Resource.pm: use 'expurgate' method (new in App::CELL::Status 0.194)
- t/301-dispatch.t: rename from 301-psgi.t and add unit tests
0.086 2014-07-23 09:40 CEST
- REST.pm, Dispatch.pm: document request syntax
0.087 2014-07-23 11:16 CEST
- Dochazka_Config.pm: improve default HTML (DOCHAZKA_REST_HTML)
- t/301-dispatch.t: add unit tests
- Dispatch.pm: remove SYNOPSIS so the meat of the POD starts higher up on
the page
- obs.sh: add OBS CI script
0.088 2014-07-23 12:53 CEST
- bin/dochazka-rest: load the local sitedir
- REST.pm: explain current installation/bootstrap process in detail in the
"INSTALLATION" section
0.089 2014-07-23 15:19 CEST
- config/Dochazka_Config.pm: add DOCHAZKA_URI_MAX_LENGTH
- REST.pm: work on "REST INTERFACE" POD
- Dispatch.pm: fix methods so they all set "extraneous_url_part" if
appropriate
- Resource.pm: add uri_too_long method
- t/: rename 301-dispatch.t to 301-resource.t and split off 330-dispatch.t
from it, test uri_too_long in 301-resource.t
0.090 2014-07-23 17:23 CEST
- Employee.pm: add 'expurgate' and 'select_multiple_by_nick' methods
- Dispatch: add '/lookup/employee/nick' request (doesn't quite work yet)
- remove all mentions of 'acleid' and 'aclpriv' from data model;
authorization will take place at the web resource level
0.091 2014-07-23 23:08 CEST
- Employee.pm: finally find and fix problem with 'expurgate'
- t/004-employee.t: add tests for expurgate method
- REST.pm: get rid of $REST singleton: 'init' now acts as a constructor
returning an object
- lots of modifications to all files to make them work without $REST singleton
0.092 2014-07-24 08:12 CEST
- Dispatch: deprecate '_get_response' in favor of 'is_auth' which will be
called from Response.pm->is_authorized
0.093 2014-07-24 08:18 CEST
- Build.PL: require perl 5.012 (RT#97442 -- thanks, Slaven!)
0.094 2014-07-24 10:52 CEST
- bin/: eliminate $REST singleton
- /version now reports whether server is UP or DOWN
0.095 2014-07-24 11:58 CEST
- config/: DOCHAZKA_REST_HTML is now a message, no longer a site param,
and it also newly reports the version number and server status
0.149 2014-08-08 10:25 CEST
- test release script once again
0.150 2014-08-10 18:25 CEST
- Build.PL: add dependencies Plack::Middleware::Session, Plack::Middleware::StackTrace
- config/sql/: add new 'sessions' table and 'random_number()' SQL function
0.151 2014-08-10 22:49 CEST
- update dependencies
- start implementing session management
0.152 2014-08-11 10:02 CEST
- more work on session management (reconsider idea of storing sessions in
database)
- REST.pm: describe authentication/session management algorithm in POD
- config/, Dispatch.pm: add a "/session" resource that displays session state
0.153 2014-08-11 13:18 CEST
- update dependencies
- config/Dochazka_Config.pm: add 'DOCHAZKA_REST_SESSION_EXPIRATION_TIME'
and 'DOCHAZKA_REST_DEBUG_MODE' site params
- REST.pm: in 'init_no_db', respect 'debug_mode' PARAMHASH key and
DOCHAZKA_REST_DEBUG_MODE site param, in that order
- Resource.pm: finish implementing session management
- NOTE: since session management doesn't seem to work with Plack::Test, it is
completely disabled when META_DOCHAZKA_UNIT_TESTING is true (set this to true
in unit tests that use Plack::Test)
0.154 2014-08-11 14:19 CEST
- add 'Plack::Session' to build_requires, just in case CPAN Testers gets
funny ideas
0.155 2014-08-11 16:45 CEST
- Resource.pm: cleanup
0.156 2014-08-12 10:22 CEST
- cleanup, documentation
0.157 2014-08-12 15:52 CEST
- REST.pm: add a 'DEBUGGING' section to POD
- Util.pm: add a new 'Util.pm' module for miscellaneous utilities
and put 'deep_copy' function into it
- Resource.pm: fix bug "die with StackTrace happens when DOCHAZKA_DEBUG
environment variable set"
0.158 2014-08-13 03:21 CEST
- REST.pm: add parameter validation to init_no_db
- t/301-resource.t: fix bug found thanks to the above parameter validation
0.159 2014-08-14 14:55 CEST
- config/REST_Config.pm: add DOCHAZKA_HOST and DOCHAZKA_PORT
- bin/dochazka-rest: look into how we could allow admin to specify host/port on
command line, yet default to values in site configuration if they are not
specified there
0.160 2014-08-16 10:17 CEST
- bin/dochazka-rest: comment out 'die' statement so server runs again
0.161 2014-08-18 10:38 CEST
- fix bug: "LDAP users can log in with wrong/no password"
0.162 2014-08-21 15:31 CEST
- t/002-root.t: fix broken unit test
- bin/dochazka-rest: turn on debug_mode
- Resource.pm: uncomment session ID debug message in _validate_session
0.163 2014-08-27 17:42 CEST
- Dispatch/Employee.pm->_put_employee: allow undef as value for optional fields
('fullname', 'email', 'passhash', 'salt', 'remark')
- Model/Employee.pm->expurgate: when expurgating employee objects, do not
remove 'passhash' and 'salt' properties
0.164 2014-08-28 11:26 CEST
- Model/Shared.pm: do not put empty strings into the database
0.165 2014-09-01 07:51 CEST
- Unicode hell
- add more debug messages
0.166 2014-09-01 16:40 CEST
- Resource.pm: Unicode hell! /employee/nick/ÄÃÄa is handled correctly when
sent by browser, but incorrectly when sent via App::Dochazka::WWW - yet
the path_info string is decoded correctly in 'service_available' in both
cases! Very strange.
0.167 2014-09-04 17:34 CEST
- respect DOCHAZKA_REST_LOG_FILE and DOCHAZKA_REST_LOG_FILE_REST core/site
config parameters (as is already the case in App::Dochazka::WWW) - no
more chasing temporary files
0.168 2014-09-04 17:41 CEST
- t/: change default configuration directory (for unit testing purposes) from
'/etc/dochazka' to '/etc/dochazka-rest', as the former is ambiguous
0.169 2014-09-17 09:59 CEST
- REST.pm: modify INSTALLATION section of POD to bring it closer to current
reality
0.170 2014-09-17 10:30 CEST
- REST.pm: add some debug messages
0.171 2014-09-17 10:51 CEST
- REST.pm: fix bug 'Can't call method "errstr" on an undefined value' when
connect_db_pristine can't connect to database; remove debug messages
0.172 2014-09-17 11:13 CEST
- t/001-init.t: bail out of testing if we cannot connect to database
0.173 2014-09-17 14:28 CEST
- REST.pm: expand INSTALLATION section of POD with explanation of how to test database
connection using 'psql'
0.174 2014-09-24 16:38 CEST
- try to fix UTF-8 bug, but only make it worse
0.175 2014-09-25 09:29 CEST
- Resource.pm: encode response body in UTF-8 before sending it out on the line
0.176 2014-10-14 17:31 CEST
- Dispatch/: add some comments
- t/dispatch/history.t: adapt to test both 'priv/history' and
'schedule/history' resources
- ../release/docgen.plx: add ACL profile to each resource; tweak display of
HTTP methods
- t/dispatch/history.t: clean up comments, variable and function names
0.269 2014-11-12 11:15 CET
- ../release/release.sh not incrementing version number of Docs/Resources.pm -
attempt to fix
0.270 2014-11-12 11:39 CET
- ../release/docgen.plx: tweak POD formatting
0.271 2014-11-12 11:43 CET
- cleanup distro infrastructure
0.272 2014-11-12 13:38 CET
- Dispatch/Employee.pm, t/dispatch/employee.t: add current schedule to payload
of 'employee/current/priv' resource
- Docs/Workflow.pm: new POD module describing workflow scenarios from an
end-user perspective
- dispatch_Message_en.conf: add DISPATCH_EMPLOYEE_CURRENT_PRIV
- Test.pm: add 'create_inactive_employee'; rename 'delete_active_employee' to
'delete_employee_by_nick' (complete re-write)
- t/dispatch/activity.t: add some tests for 'activity/help'; prepare for this
resource to handle resources where 'acl_profile' is a HASHREF
- ../release/docgen.plx: tweak POD formatting some more
0.273 2014-11-12 16:49 CET
- Dispatch/Shared.pm: make 'make_default' handle resources that use
fine-grained acl_profile definition
- t/dispatch/activity.t: test above handler
0.274 2014-11-13 10:43 CET
- config/dispatch/: allow 'inactive' to view own priv/schedule history
- Dispatch/Shared.pm: refactor 'current' routine to use a dispatch table
- Docs/Workflow.pm: add verbiage
- Test.pm: create_{active,inactive}_employee return $eid
- t/: start fixing regressions
0.275 2014-11-13 15:01 CET
- fix regression: "GET schedule/eid/:eid vomits 500 or returns nonsense"
- Dispatch/Shared.pm: the regression was caused by not saving the return
value from the call to {priv,schedule}_by_eid in the 'current' routine
- t/dispatch/schedule.t: add test case for this regression
0.276 2014-11-13 15:37 CET
- t/dispatch/schedule.t: add more positive tests focused on 'current' dispatch
target
0.277 2014-11-13 16:30 CET
- Dispatch/Schedule.pm: cleanup
- t/dispatch/schedule.t: add negative tests for 'schedule/eid/:eid/?:ts'
0.278 2014-11-13 22:32 CET
- t/dispatch/schedule.t: add more negative tests
- ../development-checklist, Docs/Workflow.pm: start blocking in interval
and lock resources; add verbiage
- config/dispatch/: make 'employee/self' be a synonym for 'employee/current'
and enable POST requests on these resources so employees can, e.g., change
their own password; update documentation of history resources
- REST_Config.pm: add 'DOCHAZKA_PROFILE_EDITABLE_FIELDS' for POST requests
on 'employee/self'
- t/dispatch/employee.t: run all 'employee/current' tests on 'employee/self'
as well; realize that if a resource returns 405 it will do so regardless
of which user we authenticate as (even non-existent user)
0.279 2014-11-14 10:39 CET
- Dispatch/Employee.pm: add _post_current (dispatch target for POST
'employee/{current, self}'
- t/dispatch/employee.t: ACL checks are not working for resources with
fine-grained ACL profile definition: add a test case for this
0.280 2014-11-14 11:29 CET
- employee_Config.pm: fix 'employee/self' acl_profile property
- Dispatch/Employee.pm: request body needs to be a hashref - check for that
where we really care about it - in _put_post_delete_employee_by_eid
- Dispatch/Shared.pm: pre_update_comparison was causing DOCHAZKA_BAD_INPUT to
be returned if no fields would actually change on update, but this might be
confusing - change it to allow updates in such cases
- t/dispatch/employee.t: add test cases for POST employee/{current,self} by
inactive and active employees; adapt tests to current state
0.281 2014-11-14 16:42 CET
- finish implementation (including test cases) of POST dispatch
target for 'employee/{current,self}' resource
0.282 2014-11-14 21:36 CET
- dbinit_Config.pm: add trigger clause to make 'sid' field immutable
- Docs/Workflow.pm: add verbiage
- t/model/schedule.t: add test case verifying that 'update' method does not
change the database even if the 'sid' field is changed
0.283 2014-11-18 07:45 CET
- REST_Message_en.conf: add finer-grained notice messages for 'cud'
- Model/Shared.pm: in cud, check return value of '$sth->execute' and
return finer-grained notices to distinguish various edge cases
- t/: adapt to current state
0.284 2014-11-18 11:01 CET
- unit tests: move existing '002-root' and '003-current-priv' units to
new t/sql directory; add new 't/sql/immutable_id.t' unit to test
new triggers to make 'eid', 'iid', etc. fields immutable
- config/sql/dbinit_Config.pm: add "immutability" triggers for 'employees.eid',
'schedhistory.shid' and 'privhistory.phid'
0.285 2014-11-18 11:53 CET
- dbinit_Config.pm, t/sql/immutable_id.t: finish making '*id' fields immutable
0.286 2014-11-18 12:49 CET
- dispatch_Config.pm, interval_Config.pm: add basic set of 'intervals'
resources
0.287 2014-11-18 15:33 CET
- config/dispatch/HTTP_Message_en.conf: make a separate message file for codes
that map directly to an HTTP error code
- config/, lib/: transform DOCHAZKA_BAD_INPUT and DOCHAZKA_INSUFFICENT_PRIV into
special status codes that map directly to HTTP error codes
- Resource.pm: when target returns certain status codes (see package variable
%status_http_map), translate them directly into HTTP error codes
- t/: adapt to current state
- REST.pm: eliminate 'create_tables' routine; all database initialization now
takes place in 'reset_db'
- ConnBank.pm: refactor 'get_conn'
- adapt all instances of 'get_conn' throughout the code base
- {Dispatch,Model}/Employee.pm: eliminate 'select_multiple_by_nick' routine;
call load_multiple directly from the dispatch target
- t/: adapt to current state
0.340 2014-12-09 11:09 CET
- for auditing purposes we need to send not only the DBIx::Connector object,
but also the current EID in all 'cud' calls
- Model/Shared.pm: in cud routine, add 'eid' to PARAMHASH and run
SQL_SET_DOCHAZKA_EID_GUC to set 'dochazka.eid' GUC session variable
- {Dispatch,Model}/Activity.pm: carry out necessary modifications
0.341 2014-12-09 17:17 CET
- work on getting the current EID into Model/Shared.pm->cud
- send request context in all 'insert', 'update' and 'delete' method calls on
datamodel objects; these methods then split out the DBIx::Connector object
and the current EID
- Model/: make all necessary modifications
- Test.pm, Dispatch/: deal with cascade effects (WIP)
- t/sql/, t/model/: adapt tests to current state
- t/dispatch/: WIP
0.342 2014-12-10 10:52 CET
- audit_Config.pm: DROP SCHEMA is not necessary here, since the immediately
preceding command is DROP DATABASE
- Dispatch/: completed the migration described above
- Model/: fix some lingering migration-related issues
- Test.pm, t/: migration broke lots of tests; we are now expected to send the
request context, but with Plack::Test there is none(!); fortunately, it is
trivial to simulate such a context ($faux_context)
- dispatch_Message_en.conf: get rid of
DISPATCH_EMPLOYEE_{INSERT,UPDATE,DELETE}_OK message (DOCHAZKA_CUD_OK is
sufficient)
0.343 2014-12-10 16:43 CET
- dbinit_Config.pm: fix names of parameters used to store PostgreSQL superuser
credentials for testing purposes
- ConnBank.pm: refactor the entire module
- REST.pm: adapt to the new ConnBank.pm code; make 'init' routine return a
status object with the Plack application in the payload
- Dispatch/, Model/, Test.pm, t/: adapt to the new ConnBank.pm code
0.344 2014-12-10 18:01 CET
- bin/dochazka-rest: adapt to recent modifications to REST.pm->init
- REST_Message_en.conf: add DOCHAZKA_NO_DBIX_CONNECTOR
- dbinit_Config.pm: sum(numbackends) is not working for some reason; work
around the problem
- REST/Dispatch.pm: add missing 'use Try::Tiny'; add some debugging messages to
'_get_dbstatus'; numify number of connections
- Test.pm: add some error checking;
- t/dispatch/top.t: add subtest for 'dbstatus' resource
0.345 2014-12-11 11:35 CET
- REST.pm: add verbiage to POD
- Resource.pm, Dispatch/Employee.pm: prepare for Blowfish
0.346 2014-12-11 18:36 CET
- hash passwords using Authen::Passphrase::SaltedDigest
- App::Dochazka::CLI authentication works fine
- tests in t/dispatch/ are broken
- Dispatch/Employee.pm: implement 'hash_the_password' routine, call it from
_insert_employee and _update_employee; export it for use in Test.pm
- Resource.pm: in _authenticate, compare password with stored salted hash
- Test.pm: import hash_the_password and use it in create_testing_employee;
adapt calls
- dbinit_Config.pm, t/sql/root.t: use the real hash+salt instead of the
plaintext password
0.347 2014-12-11 20:13 CET
- REST_Config.pm: modify DOCHAZKA_PROFILE_EDITABLE_FIELDS so inactives and
actives can still change their password now that we are hashing
- config/dispatch/employee_Config.pm: 'GET employee/nick/:nick' acl_profile was
set too restrictive - fix
- dbinit_Config.pm: use real hash/salt when INSERTing 'root' and 'demo'
employees
- Dispatch/Employee.pm: fix hash_the_password function calls
- Resource.pm: put call to Authen::Passphrase::SaltedDigest into a try/catch
block; add some basic error-checking
- t/: adapt to current state
0.348 2014-12-12 09:39 CET
- REST_Config.pm: add DOCHAZKA_AUDITING and DOCHAZKA_AUDIT_TABLES to (1) make
auditing optional, and (2) give site admin control over which tables are
audited
- REST.pm: make auditing optional; implement 'create_audit_triggers' and
'delete_audit_triggers' routines to enable auditing to be disabled and
re-enabled as and when desired
0.349 2014-12-12 16:43 CET
- get rid of DOCHAZKA_AUDITING
- Resource.pm: try to eliminate suspected double-encoding problem
0.350 2014-12-12 18:06 CET
- config/dispatch/interval_Config.pm: add resource definition for
'interval/summary/?:qualifiers'
- dbinit_Config.pm: work on valid_schedintvl ticket
- config/REST_Config.pm: add DOCHAZKA_DBHOST, DOCHAZKA_DBPORT,
DOCHAZKA_DBSSLMODE params
- ConnBank.pm: use the new site params in construction of data source string,
provided they are set
- t/dispatch/interval_lock.t: start adding tests for the new
'interval/summary/?:qualifiers' resource
0.351 2014-12-12 21:59 CET
- dbinit_Config.pm: the valid_schedintvl() function we had before was bogus -
write a proper one
- t/model/schedintvls.t: add some tests that try to enter sets of intervals
spanning more than 168 hours (which is banned by policy, enforced by the
valid_schedintvl function)
0.352 2014-12-13 14:51 CET
- Build.PL: require Authen::Passphrase::SaltedDigest
0.353 2014-12-13 22:19 CET
- t/202-qualifiers.t: new unit to test Dispatch/Intervals->process_quals routine
- Dispatch/Intervals.pm: implmement 'process_quals' routine to parse qualifiers;
start writing _get_summary (dispatch target for /interval/summary/?:qualifiers)
0.354 2014-12-14 22:47 CET
- config/dispatch/interval_Config.pm: activate the new 'interval/summary/..."
resource
- Dispatch/Interval.pm: work on dispatch target for the new resource
- Util/Timestamp.pm: export '$current_month' and '$current_year'
0.355 2014-12-18 10:07 CET
- REST.pm: work on POD
0.356 2014-12-18 18:40 CET
- Resource.pm: add 'finish_request' routine to add 'no_cache' headers
- t/301-resource.t: test for presence of "no-cache" headers in HTTP response
===============================================
SPLIT OFF App::MREST into separate distribution
===============================================
0.357 2015-01-27 11:32 CET
- Dispatch.pm: give 'forbidden' resource an invalid acl_profile; add note about
this to resource documentation string
0.363 2015-02-02 11:44 CET
- t/301-resource.t: finish migrating unit to Web::MREST
- bin/dochazka-rest: migrate server startup script to Web::MREST
- Dispatch.pm: improve documentation of docu resource
- Employee.pm: fix typo
- Test.pm: migrate 'docu_check' routine to Web::MREST
- t/dispatch/top.t: start migrating unit to Web::MREST
0.364 2015-02-02 17:03 CET
- migrate 'priv/history/...' resource definitions
- Dispatch/Priv.pm: migrate '/priv/history/self/?:tsrange' handler (working
nicely)
0.365 2015-02-02 21:44 CET
- Dispatch/Priv.pm: rewrite the main privhistory handler (split into three parts)
0.366 2015-02-03 07:26 CET
- Dispatch/Priv.pm: get handler_priv_history_post into a working state
0.367 2015-02-03 12:23 CET
- Dispatch/: split off History.pm from Priv.pm and make it work for both
'priv/history/...' and 'schedule/history/...' resources
- Dispatch.pm: load resource definitions from Dispatch/History.pm
- remove old, pre-migration code obsoleted by these changes
0.368 2015-02-04 17:04 CET
- migrate 'schedule/new' resource definition
- migrate 'schedule/new' resource handler (WIP)
- t/dispatch/schedule.t: migrate (WIP)
0.369 2015-02-04 18:08 CET
- Dispatch/History.pm: handle errors
- Dispatch/Schedule.pm: in handler_schedule_new, do the work in pass two,
because in pass one 'request_entity' is not yet populated
- Test.pm: migrate dbi_err and create_testing_schedule
- t/dispatch/history.pm: migrate (WIP)
0.370 2015-02-05 09:44 CET
- Dispatch/History.pm, Dispatch/Shared.pm, t/dispatch/history.t: migrate (WIP)
0.371 2015-02-05 15:10 CET
- migrate 'priv/...' (non-history) resources (WIP)
- iron out last bugs, t/dispatch/history.t runs cleanly now
0.372 2015-02-06 06:12 CET
- Dispatch/Priv.pm: implement separate handler for 'priv/{eid,nick}'
- Dispatch/Schedule.pm: migrate 'schedule/all' and 'schedule/all/disabled' resources
- Dispatch/Shared.pm: migrate the not-very-aptly-named 'current' routine
- t/dispatch/{priv,schedule}.t: remove 'noop'/'help' tests
- t/dispatch/priv.t: unit runs cleanly
0.373 2015-02-06 15:23 CET
- migrate 'schedule/...' resources (WIP)
0.374 2015-02-08 19:49 CET
- Dispatch/Schedule.pm: migrate 'schedule/eid/...' and 'schedule/nick/...';
start migrating 'schedule/sid/:sid'
- Dispatch/Employee.pm: migrate 'employee/count/?:priv'; move hash_the_password
to Util.pm
- t/dispatch/schedule.t: migrate unit tests
0.375 2015-02-09 08:52 CET
- Dispatch/Shared.pm: make a generalized method ('handler_first_pass_lookup')
for fetching objects from the database based on URI mapping
- start migrating resource handlers to the new method
0.376 2015-02-09 15:15 CET
- migrating resources to 'handler_first_pass_lookup'
0.377 2015-02-09 20:33 CET
- debugging WIP
0.378 2015-02-10 08:40 CET
- migrate 'employee/...' resources (WIP)
- get rid of 'make_default', which was used to implement 'help' resources
but is not compatible with Web::MREST
0.379 2015-02-10 17:29 CET
- massive reorganization: move handler routines to Dispatch.pm
0.380 2015-02-10 18:27 CET
- Dispatch.pm: merge 'current' into 'handler_get_privsched'; fix _update_schedule
- t/dispatch/schedule.t: migrate unit tests - unit runs cleanly again
0.381 2015-02-11 10:42 CET
- work on employee handlers (PUT employee/eid/:eid and PUT employee/nick/:nick)
with two-pass additional ACL check for updates; insert is working, too
- TODO: migrate rest of employee resources and t/dispatch/employee.t
0.382 2015-02-11 14:41 CET
- ResourceDefs.pm: new module; move all migrated resource defs into it;
add missing acl_profile properties to top-level resource defs;
- Test.pm: include location header in return status (a-la Web::MREST)
- t/dispatch/top.t: migrate unit
0.383 2015-02-11 16:43 CET
- migrate Employee resources (WIP)
0.384 2015-02-12 07:31 CET
- support 'employee/search/nick/:key'
0.385 2015-02-12 09:22 CET
- Dispatch.pm: make 404 explanation in 'handler_get_employee_search_nick' more
descriptive
- move ACL.pm up one level in the directory structure, since the Dispatch/
directory will soon be gone
0.386 2015-02-12 09:44 CET
- Dispatch.pm: in 'GET employee/search/nick/:key', add '%' characters to :key
implicitly if none are provided (and note this in resource documentation)
- Model/Shared.pm: in load_multiple, mention search keys in the result
0.387 2015-02-12 10:13 CET
- Dispatch.pm: make 404 explanation more descriptive
- t/dispatch/employee.t: get unit running cleanly
0.388 2015-02-12 11:22 CET
- move Dispatch/Shared.pm up one directory level
0.544 2016-09-19 01:07 CEST
- Drop employee/current and employee/current/priv resources
- Add resource definitions for {priv,sched}/history/eid/:eid/:ts
- Add resource definitions for {priv,sched}/history/eid/:eid/now
- dispatch: distinguish single/multiple in history handler names
- Shared.pm: include timestamp in shared_get_class_prop_id() return list
- dispatch: implement GET handler for single-record history resources
- model: handle undef timestamps in history load_by_eid methods
- ResourceDefs.pm: better timestamp validation regex
- tests: add dispatch tests for {priv,schedule}/eid/:eid/{:ts,now}
- Add resource definitions for employee/{eid,nick}/{:eid,:nick}/full
- In employee/self/full resource, rename current_emp property to "emp"
- handlers: make employee/self/full return history objects
- tests: test for history objects in employee/self/full output
- dispatch: generalize pass 1 and 2 of GET employee/*/full handler
- Implement "employee/{eid,nick}/{:eid,:nick}/full" handlers
- tests: refactor "employee/self/full" dispatch tests
- tests: functional tests for employee/{eid,nick}/{:eid,:nick}/full
0.545 2016-09-23 14:45 CEST
- cleanup: reduce log verbosity of load_multile() in Model/Shared.pm
- Auth.pm: add more debug log messages, session mgmt
0.546 2016-09-25 09:44 CEST
- Revamp session management
- doc: update session management section of Guide
0.547 2016-09-26 14:00 CEST
- run-tests.sh: do not make an empty "1" file
- Auth.pm: require 'eid' property in _validate_session()
- model: stricter match for system users in ldap_sync()
- dispatch: improve error messages generated by LDAP handlers
0.548 2016-11-01 15:43 CET
- build/ops: move project back to Application:Dochazka (in OBS)
- Dispatch.pm: fix session resource
- Implement new "session/terminate" resource
0.549 2017-03-02 00:57 CET
- tests: fix top-level resource sanity test
- doc: dump session to log in Auth.pm
- scripts: cleanup dochazka-rest startup script
- build/ops: require Web::MREST 0.287
- doc: clarify schedule/scode/:scode
- make POST schedule/history accept scode as well as sid
- doc: clean up comments in Model/Shared.pm
- Make dbinit create DEFAULT schedule
- tests: add scode tests to t/sql/schedhistory.t
- tests: adapt tests to preserve DEFAULT schedule
- sql: make schedhistory SELECTs return scode as well as SID
- tests: schedhistory SELECTs are now returning scode
0.550 2017-10-16 22:05 CEST
- build/ops: require App::Dochazka::Common 0.207
- Drastically reduce verbosity of DBI error messages...
- Model/Employee.pm: regex for non-whitespace instead of true/false
- Dispatch.pm: have session/terminate return a real status code
- tests: ldap.t: display value of DOCHAZKA_LDAP_SERVER config param
- config: tweak whitespace in Component_Config.pm
- Auth.pm: debug log message with LDAP password
- ResourceDefs: allow passerby to GET activities
- doc: ResourceDefs: clarify schedule property of employee/self/full
0.551 2017-10-20 15:29 CEST
- ResourceDefs: allow passerby to GET schedule/sid/:sid
0.552 2017-10-23 11:53 CEST
- ResourceDefs: fix permissions on schedule/eid/:eid/?:ts
- Fillup: produce 100% schedule fulfillment without clobbering
- Fillup: return just scheduled intervals if clobber is true
- Model/Shared: make canonicalize_tsrange() fail on empty tsranges
- fillup: get conflicting intervals list in chronological order
0.553 2017-10-25 23:37 CEST
- WISHLIST: add "GET ldap/info"
- Dispatch: implement POST interval/scheduled
- Shared.pm: rip out dead code
- t/fillup.t: expand test coverage of Fillup
- Fix {priv,schedule}_change_during_range, {priv,sched}history_at_timestamp
0.554 2017-10-31 14:31 CET
- Fillup: return different code when dry_run is set
- tests: add 'interval/scheduled' coverage to t/dispatch/fillup.t
- Fillup: fix success and failure messages
- dbinit_Config: disallow modification of root supervisor field
0.555 2017-11-02 20:23 CET
- Model/Shared: introduce DOCHAZKA_SQL_TRACE to control SQL debugging info
- sql: add trigger preventing employees from supervising themselves
- Resource "POST interval/scheduled" no longer requires AID
- ResourceDefs: adjust POD of "interval/scheduled"
0.556 2017-11-02 23:20 CET
- Fillup: fix status code when no intervals created/identified
- Dispatch: fix regression in POST interval/fillup
0.557 2017-11-15 12:07 CET
- Add has_reports property to GET employee/.../full
- doc: ResourceDefs: mention URI encoding in employee/search/nick/:key
- ResourceDefs: let inactive and above search employee profiles
- Dispatch: refrain from returning 400 on certain harmless updates
0.558 2020-02-11 19:49 CET
- ResourceDefs: allow inactives to get full employee profiles of supervisees
- Dispatch: allow supervisor to generate scheduled intervals of supervisee
- build/ops: drop Makefile.PL, add t/critic.t and t/manifest.t
0.559 2022-06-29 17:49 CEST
- bootstrap: add bootstrap scripts
- ext/docker/testing/Makefile: convert from docker to podman
- bootstrap.sh: run tests recursively
- Guide.pm: use correct POD comment syntax
- t/: adapt tests to "invalid input syntax for type integer" error message
( run in 1.632 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )