Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

CSpace

...

UCB

...

Deployment

...

Meeting

...

Notes

February 9,

...

2012

...

Thursday

...

AM

INTROS

Intros all around:
Richard Millet, University of California Berkeley (UCB) services development
Chris Thompson, Walker Art Center (WAC)
Nate Solas, WAC
Jesse Martinez, Museum of the Moving Image
Amy Wieliczka, UCB deployments
Yuteh Cheng, UCB deployments
John Keller, UCB deployments
Michael Black, Phoebe A Hearst Museum of Anthropology (PAHMA) (UCB)
Glen Jackson, UCB deployments
Ray Lee, UCB deployments
Rick Jaffe, UCB development, deployments (notetaker)
Chris Hoffman, UCB deployments
Aron Roberts, UCB services development
Chris Pott, Staten Museum for Kunst
Patrick Schmitz, UCB
Chris Martin, Cambridge University (CARET), application layer development
Yura Zenevich, Ontario College of Art and Design (OCAD), UI layer development
Susan Stone, MMI deployment; PAHMA deploment

CASES TO REVIEW

Discussion of cases to review today. Patrick makes additions to wiki page. Agenda for Deployment Meeting, 8-10 February 2012

Interest in adding fields and making them show up; field-based permissions; boolean fields; others.

Discussion about limits of field-based permissions. Permissions by roles is an ok work around. Not possible now in the services. UI might be able to do it, but user could always use cURL to access the servics directly.

How to add a new field

Some information in documentation.
Includes using the minibuild.
Often starts with setting up a new tenant.

Aron asks how is the new tenant documentation working. Chris T says “Good.”

Patrick reviews wiki page “Adding a Custom Field to a CollectionObject”

Patrick says you can skip the JAXB stuff. Used for client. Asks does anyone bind their fields. Chris P says yes, to assist in migration.

Chris M asks what debugging tools are available.

Patrick: 1st check: I often cut and paste, then modify. Good to validate schema to make sure I haven’t introduced an error.
Richard: You’ll see log errors if bundle is no good.
Aron: We’ve dialed down logging level from Catalina.out. Useful to look at those in debugging. Need to document how to turn that back on.
Richard: We use log4J to log
Patrick: Can set up log4J to make it easy to turn on commenting.

Chris H: What about testing against services?
Chris T: cURL test is documented.

Patrick: Integration tests folder in code tree. Dig down to find sample payloads for cURL posts.

Aron: Can check database to see if field exists . Often, though, the fields end up in satellite tables.
Patrick: OK if you’re comfortable with databases. I tend to use that as a last resort.

Aron: Should we create a troubleshooting template on the documentation wiki to help people add a field in the services?

Patrick: POSTER is a Firefox plugin that replaces need for cURL. Note that default mimetype is text.xml. We use application.xml. Must change that, or you will get tripped up. Chrome version’s UI is not as good.

Chris M: You should know about the bug triage page.
Aron: And the troubleshooting page.

Patrick: Once you get beyond the services, Firebug (Firefox extension) is your friend. Chrome developer tools, too.

Aron: Describes TCPMon technique to capture payload from app layer to service layer.

Chris M: Logging for app layer directed to /tmp. That should be changed. Discussion of  app logging and perf logging.

Jesse: Asks Aron to document his TCPMon technique.

Pattrick: Shoud create a developer profile for key logging files (as opposed to a deployer profile).

Richard: Yura, what kind of logs does the UI create on the client side?

Yura:  (missed Yura’s answer)

Patrick: But in error-testing, debugging?

Yura: Things that really matter are JS errors and warnings. And the Net tab with all the calls listed. Only in complex situations do I turn on logging.

Chris M: You have more freedom in the UI to poke and see what’s going on.

Aron: What’s equivalent in services and app layer?

Richard: If you’re comfortable debugging Java in Eclipse, that’s the way.
Patrick: Tricky, because of set up needed.
Richard: We could document that.
Aron: Starting point note in my personal area of the wiki with info about turning on Tomcat in debug mode.

Ray: This is a situation where there is older and newer documentation, hard to know what still works. I have created several new documents, for different cases. In the DOC wiki, search for “How to configure.., for example, “… a local schema extension for a tenant.”

John Keller: I use the Table of Contents. Those links on the lefthand side of the page, under Configuring CollectionSpace, need to be gardened.

Chris Pott: Would be useful to have an overview of how many documents I’ll need to look at to do a given procedure.

Patrick: Maybe the next doc sprint should be devoted to clean up the wiki, rather than adding new docs.

Chris H: Where do your docs end, Ray?
Ray: At the service layer.
Chris P: Yes. After that, it’s not clear where to go.

Chris M: App layer: Tenants overlay the default. Look in lifesci to see this. Everything in defaults exist. Things in tenants add to it.

Ray:  But must copy entire base-…xml file to change terms in static term lists.
Chris M: Yes. This should be changed.

Ray: (asked ‘What to copy in the app layer?’): Need more fleshing out of App layer and UI layer instructions.  Hard to find.

Chris H: Jesse’s documentation.
Jesse: I have some poorly written notes on MMI deployment wiki. Notes along the way. Display/deploy, search for MMI implementation. Version 12. Acquisition has good detail.
Chris M: Unified CollectionSpace Config file explains many of the decorations. …/display/UNRELEASED/unified+collectionspace+config

...

Patrick:

...

Can

...

we

...

add

...

to

...

this

...

to

...

explain

...

why

...

you’d use

...

each

...

of

...

the

...

decorators.

...

Yura,

...

could

...

you

...

add

...

info

...

to

...

some

...

of

...

the

...

decorators

...

that

...

you

...

asked

...

Chris

...

to

...

include?

...

John:

...

(echoes

...

Patrick)

...

Patrick:

...

Asks

...

Chris

...

if

...

we

...

could

...

change

...

some

...

names,

...

such

...

as

...

“section” attribute

...

in

...

field

...

tag

...

(should

...

be “schema part”) and ‘services-tenant-plural.

...

Chris.:

...

Yes,

...

let’s make

...

a

...

JIRA

...

so

...

we

...

have

...

a

...

trail.

...

Ray:

...

Lots

...

of

...

documentation

...

in

...

JIRA,

...

too.

...


Rick:

...

And

...

from

...

there,

...

we

...

would

...

look

...

at

...

Fisheye

...

to

...

see

...

what

...

actual

...

changes

...

were

...

committed.

...

Chris

...

H:

...

How

...

to

...

test

...

if

...

app

...

layer

...

is

...

working

...

with

...

the

...

new

...

field?

...

Chris

...

M:

...

Tests

...

are

...

all

...

unit

...

test.

...

Ray:

...

Review

...

UISpec

...

and

...

UISchema.

...

Chris

...

M:

...

Demos

...

how

...

to

...

use

...

Firebug

...

to

...

review

...

UISCHEMA

...

and

...

UISPEC.

...

Nate:

...

Caching

...

would

...

be

...

good.

...

(Discussion

...

of

...

caching;

...

disappeared

...

after

...

1.12?)

...

Chris

...

M:

...

loginstatus

...

call

...

tells

...

you

...

who

...

you’re logged

...

in

...

as,

...

permissions.

...

Permissions

...

beginning

...

with

...

slash

...

are

...

services

...

permissions.

...

Composite

...

request.

...

UI

...

requests

...

UISpec

...

and

...

UISchema.

...

GET

...

to

...

/tenant/core/

...

{procedurename

...

}/uispec

...

to

...

get

...

UISpec

...

directly.

...

(Applayer

...

REST

...

API)

...

cspi-webui/src/main/java/WebUI.java

...

lists

...

all

...

calls

...

that

...

App

...

layer

...

will

...

accept.

...

(TestUIRecords.java

...

ln

...

236

...

shows

...

call

...

to

...

generate

...

data

...

objects

...

and

...

relationships.

...

Autopopulate

...

a

...

schema.)

...

Tests

...

should

...

work

...

as

...

logged-in

...

tenant.

...

I.e.,

...

would

...

get

...

extension

...

schemas

...

Patrick:

...

We

...

need

...

a

...

page

...

full

...

of

...

URLs

...

that

...

hit

...

demo

...

to

...

show

...

all

...

the

...

calls

...

that

...

you

...

can

...

make

...

to

...

the

...

app

...

layer.

...

Chris

...

M:

...

Agrees.

...

/tenants/authorities/initialise

...

creates

...

all

...

the

...

terms

...

in

...

your

...

config

...

file.

...

Yura:

...

After

...

you

...

add

...

field

...

to

...

services

...

and

...

applayer,

...

let

...

app

...

layer

...

create

...

field

...

name.

...

Use

...

that

...

for

...

the

...

UI.

...

(Rather

...

than

...

using

...

selectors.)

...

Chris

...

M:

...

Demonstrates

...

how

...

to

...

check

...

selector

...

spelling

...

in

...

UISpec.

...


How

...

to

...

know

...

if

...

you’ve misspelled

...

a

...

selector:

...

look

...

at

...

post

...

payload.

...

Your

...

field

...

won’t appear.

...

(

...

Won’t save,

...

obviously.)

...

Selector

...

relates

...

to

...

UI.

...


“Name in services” (“services-tag”?) relates to service

Discussion of full or sparse payloads; what UI keeps track of.

Yura: UI never sends sparse updates. Must keep track of latest saved model and current, for things such as cancelling changes.

Patrick: Describes GET payload to services. Core and common bits.
Example call: …/cspace-services/movements/{csid}

...

?wf_deleted=false

...

only

...

shows

...

records

...

that

...

have

...

not

...

been

...

deleted.

...

Services

...

uses

...

soft-deletes.

...

Could

...

access

...

services

...

to

...

undelete

...

an

...

item.

...

Via

...

cURL

...

or

...

batch

...

process.

...

/workflow

...

shows

...

what

...

has

...

been

...

deleted.

...

(Discussion

...

ensues

...

about

...

why

...

this

...

has

...

been

...

designed

...

this

...

way.)

...

Jesse:

...

How

...

do

...

you

...

configure

...

what

...

summary

...

data

...

gets

...

returned?

...

Chris

...

M:

...

App

...

layer

...

fields

...

described

...

in

...

<fieldsreturned>

...

tag.

...

(Set

...

where?)

...


Patrick:

...

Can

...

specify

...

per

...

tenant

...

in

...

tenant-bindings-delta.xml

...

for

...

tenant.

...

Can

...

dig

...

down

...

into

...

nested

...

fields

...

(elPath).

...

Chris

...

P:

...

How

...

do

...

you

...

debug

...

in

...

App

...

layer

...

when

...

your

...

field

...

is

...

not

...

showing

...

up?

...

ChrisM:

...

Look

...

in

...

tomcat-main/../..

...

/chain/controller/tenantServlet.

...

Also,

...

/tenant/core/init

...

Spits

...

out

...

your

...

config

...

file

...

for

...

the

...

server.

...

Patrick:

...

Tomcat

...

bug

...

that

...

doesn’t recognize

...

new

...

.War

...

files

...

uploaded

...

while

...

tomcat

...

is

...

stopped.

...

Chris:

...

App

...

layer

...

just

...

pushes

...

config.

...

Aron:

...

Is

...

there

...

a

...

deploy

...

target?

...

Chris:

...

No.

...

New

...

JIRA:

...

Create

...

Ant

...

config

...

deploy

...

target

...

for

...

App

...

layer

...

config

...

files.

...

Chris

...

T

...

asks

...

about

...

minibuild

...


Aron

...

describes

...

directory

...

structure.

...

To

...

add

...

new

...

fields

...

for

...

a

...

tenant,

...

add

...

it

...

to

...

domain-procedure

...

-

...

{procedurename

...

}.xml

...

file

...

in

...

tenants.

...

Jesse’s documentation

...

has

...

examples.

...

Chris

...

M.

...

discusses

...

<include>

...

tag

...

attributes:

...

strip-root,

...

etc.

...

Yura

...

describes

...

adding

...

field

...

to

...

template.

...

Simple

...

field.

...

Only

...

distinction:

...

text

...

input

...

v

...

select

...

field

...

type.

...

Change

...

/bundles/core-messages.properties

...

(message

...

bundle)

...

to

...

create

...

or

...

change

...

labels.

...

Attributes

...

get

...

added

...

by

...

app

...

layer.

...

As

...

of

...

2.0,

...

in

...

tenants

...

folder,

...

core-message-properties.overlay

...

adds

...

to

...

underlying

...

bundle.

...

Will

...

overwrite

...

value

...

for

...

a

...

key

...

in

...

overlay

...

that

...

exists

...

in

...

default.

...

Yura

...

demonstrates

...

how

...

to

...

run

...

UI

...

layer

...

locally,

...

for

...

development

...

and

...

debugging.

...

Works

...

only

...

for

...

default

...

files

...

in

...

underlying

...

UI

...

source

...

tree,

...

not

...

in

...

minibuild

...

File:///path/to/defaults/page/htmlfolder/record.html?

...

{recordtype

...

}

...

Must

...

change

...

strict-origin

...

policy

...

in

...

browser

...

to

...

allow

...

local

...

data

...

to

...

run.

...


CSPACE-3763

...

documents

...

this.

...

(Must

...

do

...

this

...

to

...

run

...

tests,

...

too.)

...

Adds

...

.csc-objectexit-newfield

...

and

...

…newfield-label

...

to

...

objectexit

...

html,

...

config,

...

uispec,

...

uischema

...

and

...

core-messages.properties

...

files.

...

(BREAK).

...