|
POST
|
We're still "all in one" on our ArcGIS Server box, as opposed to separate web servers, but that will change when we upgrade to 10.6 in a few months. This is helpful, thank you. These headers in particular come from: https://tools.geekflare.com/header-security-test Our current applications don't have most of these set, so our ESRI JavaScript applications are considered a fail. ArcGIS Online has a similar score using an AGOL application! Our state's cyber security group is on the leading edge for state government, locking down our servers as much as possible as our "new normal". We're being told "you have to set all these", but I expect them to back down a bit once they realize how many other applications, not just ESRI, is going to be broken.
... View more
05-02-2018
07:26 AM
|
0
|
3
|
5909
|
|
POST
|
All the ESRI examples are always very straight forward, but simple and plain when it comes to headers. In today's world we're asked to tighten down our code with the introduction of many more security headers. This is is not my area of expertise, I'm always doing good to get my code to work! It's my understanding some configuration can happen on the application server, as an overall configuration, while others are best managed per application. Given that I'm referencing the JavaScript API from ESRI, and not locally hosting it, coupled by the fact that we're pulling data in as services from sites outside our network, it's not as if I this can be configured based on examples provided to us from our cybersecurity 'best practice'. There's no point in tightening it down to be non-functioning. These are the header I'm being asked about. There may be others as time goes on: HTTP Public Key Pinning (HPKP) Header HTTP Strict Transport Security (HSTS) Header X-XSS-Protection Header X-Frame-Options Header Header X Permitted Cross Domain Policies Header Content-Security-Policy (CSP) Header X-Content-Type-Options Header Referrer-Policy HTTP header Does anyone have any examples, words of wisdom? I know people are likely to send me links to sites about what these are. That's not what I want. I have someone who can tell me generally what each is for. What I want is syntax for settings that are likely to work. The goal is to be more secure, but still functioning. I've been told that implementing a CSP Header\, for example, could result in the inability to access the JavaScript API library, which is full of Function ().
... View more
04-25-2018
02:05 PM
|
1
|
7
|
7076
|
|
POST
|
Our geodatabase is still at 10.0.2! Unfortunately. It's part of a large enterprise application, and it's about impossible to stay up on versions across all the clients and servers. We're in the process of upgrading to 10.3.1, because that's what's supported at the current version of DB2 we have. If we can get the geodatabase to 10.3.1, then I think we can use 10.5 clients, but not until then. It was such a hard lift to migrate from those early 10.x releases, I expect it to be a more easier step to get to 10.5. I see 10.3.1 as a intermediate step we have to get through. At least then we'll be on a supported platform, for a while anyway. It's nice to know your problems went away at version 10.5, though.
... View more
11-13-2017
09:35 AM
|
0
|
1
|
921
|
|
POST
|
We are having a similar problem with DB2. In our situation, as soon as the user clicks Add Database Connection, they are kicked out of ArcCatalog. At that point, the user hasn't even chosen a particular database type. The software would have no way of knowing what you were getting ready to connect to. However, there must be some level of awareness of what types of clients are available?! We did a test where we removed the DB2 client entirely, and Add Database Connection no longer crashed ArcCatalog. We don't know exactly what that means, but it seemed significant. In your scenario, are you opening ArcCatalog in the ArcMap sidebar, or in it's own window?
... View more
11-13-2017
07:43 AM
|
0
|
1
|
921
|
|
POST
|
It feels like the map isn't finishing loading/drawing initially before I change the map extent and it's crashing into itself. It's one of those situations where you put a breakpoint, and once you do, that's giving the display time to catch up. Is there a way to pause the display/refresh temporarily until after I've set the 2nd extent?
... View more
06-28-2017
06:30 AM
|
0
|
0
|
797
|
|
POST
|
I have used this TOC widget for several years. This is the first time I've ever combined it with the functionality of accepting an incoming URL parameter as an argument. The user wants to be able to zoom to a particular ID number. The zoom works correctly. However, somewhere along the way the changing map extent is causing a problem. I often see errors related to the TOC. The map extent is correct, and if you pan or zoom at all you see the map is centered correctly. Occasionally the layer DOES draw, but it's sporadic. I have a very tight deadline (of course) and I'm up for rigging things around at this point, just to have all my layers draw every time. I'm not even sure its the TOC that's the problem. My test site is public facing: https://ogitest.oa.mo.gov/DNR/tmdl_imprdwater2/index.html?BUSINESSID=51215 This is how I'm checking to see if there is a URL parameter. queryLayer.on('load', function(){ //expected input of layerid, fieldname, and layer number myURLparameter.checkURL("queryLayer", "BUSINESSID", 5); //looks for id, zooms to water body with that ID if found }); /*myURLparameter.js
* Tracy Schloss, Missouri Office of Geospatial Information
* Date:
* Description:
*/
define ([
"dojo/on",
"dojo/dom",
"esri/urlUtils",
"js/myFind"
], function ( on, dom, urlUtils,myFind
) {
return {
checkURL: function(layerid, field, layerNum){
var selectedVal = getIdFromUrl(document.location.href);
var selectLayer = app.map.getLayer(layerid);
var urlPath = selectLayer.url;
var urlLen = urlPath.length;
var lastPos = urlPath.lastIndexOf("/");
var findUrl = urlPath.substr(0, lastPos);
if (selectedVal) {
myFind.zoomSelect(findUrl,layerNum, field, selectedVal);
}
function getIdFromUrl(url){ //extract the county name from the url
var urlObject = urlUtils.urlToObject(url);
if (urlObject.query && urlObject.query.BUSINESSID) {//assumes incoming parameter of ?BUSINESSID='SOME##'
return urlObject.query.BUSINESSID; //where the past element is a field name in the database
}
else {
return null;
}
}
}
}
});
myFind.js /*
* Tracy Schloss, Missouri Office of Geospatial Information
* Date:
* Description:
*/
define ([
"dojo/on",
"dojo/dom",
"dojo/_base/lang",
"esri/tasks/FindParameters",
"esri/tasks/FindTask",
"js/myWaterData"
], function ( on, dom,lang,FindParameters,FindTask,myWaterData
) {
return {
zoomSelect: function(findUrl, layerNum, field, selectedVal){
var wb_type;
var findTask = new FindTask(findUrl);
var findParams = new FindParameters();
findParams.returnGeometry = true;
findParams.layerIds = [layerNum];
findParams.searchFields = [field]; //Fields are CASE SENSITIVE
findParams.outSpatialReference = app.spatialReference;
// var countyName = registry.byId("countySelect").value;//Set the search text to the value selected in the list
findParams.searchText = selectedVal;
// findTask.execute(findParams, function(results){
findTask.execute(findParams, lang.hitch(this, function(results) {
if (results.length > 0) {
app.map.setExtent(results[0].feature.geometry.getExtent().expand(1.5));
findWaterAttributes(findUrl, selectedVal);
}
else {
alert("ID not found in data");
}
}));
function findWaterAttributes(findUrl, selectedVal){
var findTask = new FindTask(findUrl);
var findParams = new FindParameters();
findParams.returnGeometry = false;
findParams.layerIds = [0, 1];
findParams.searchFields = ["BUSINESSID"]; //Fields are CASE SENSITIVE
findParams.searchText = selectedVal;
// findTask.execute(findParams, function(results){
findTask.execute(findParams, lang.hitch(this, function(results) {
var wbid = results[0].feature.attributes.WBID;
if (wbid > 7000) {
console.log("Lake found");
myWaterData.createLakeList(results[0].feature);//sidebar to hold water body data
}
else {
console.log("stream found")
myWaterData.createStreamList(results[0].feature);//sidebar to hold water body data
}
}));
}
}
}
}); myWaterData.js /*
* Tracy Schloss, Missouri Office of Geospatial Information
* Date:
* Description:
*/
define(["dojo/on", "dojo/dom", "dojo/_base/connect", "dijit/registry"], function(on, dom, connect, registry){
return {
// + "<br><b>:</b>"+ feature.attributes.
createStreamList: function(feature){
var streamTitle = feature.attributes.WB_NAME;
var formatText = "<h3>" + streamTitle + "</h3>"+
"<b>Business ID:</b>" + feature.attributes.BUSINESSID +
"<br><b>Water Body ID: </b> " +
feature.attributes.WBID +
"<br><b>Year Impairment First Listed: </b>" +
feature.attributes.YEAR_CD +
"<br><b>Water Body Classification: </b>" +
feature.attributes.WB_CLS +
"<br><b>Size (miles): </b>" +
feature.attributes.IMP_SIZE +
"<br><b>Pollutant: </b>" +
feature.attributes.POLLUTANT +
"<br><b>EPA Category: </b>" +
feature.attributes.CATEGORY +
"<br><b>Source: </b>" +
feature.attributes.SRC_DESC +
"<br><b>Impaired Uses: </b>" +
feature.attributes.IU +
"<br><b>Other Uses: </b>" +
feature.attributes.OU +
"<br><b>Entire WB Impaired?: </b>" +
feature.attributes.ENTIRE_WB +
"<br><b>Upstream/Downstream County: </b>" +
feature.attributes.COUNTY_U_D +
"<br><b>Media Indicator: </b>" +
feature.attributes.MEDIA_IND;
// + "<br><b>Included in 303d Exports?: </b>"+ feature.attributes.IMPR_303D;
dom.byId("dataDiv").innerHTML = formatText;
},
createLakeList: function(feature){
var lakeTitle = feature.attributes.WB_NAME;
var formatText = "<h3>" + lakeTitle + "</h3>"+
"Business ID: </b>" +
feature.attributes.BUSINESSID +
"<br><b>Water Body ID: </b> " +
feature.attributes.WBID +
"<br><b> Name: </b>" +
feature.attributes.WB_NAME +
"<br><b>Year Impairment First Listed: </b>" +
feature.attributes.YEAR_CD +
"<br><b>Water Body Classification: </b>" +
feature.attributes.WB_CLS +
"<br><b>Size (acres): </b>" +
feature.attributes.IMP_SIZE +
"<br><b>Pollutant: </b>" +
feature.attributes.POLLUTANT +
"<br><b>EPA Category: </b>" +
feature.attributes.CATEGORY +
"<br><b>Source: </b>" +
feature.attributes.SRC_DESC +
"<br><b>Impaired Uses: </b>" +
feature.attributes.IU +
"<br><b>Other Uses: </b>" +
feature.attributes.OU +
"<br><b>Entire WB Impaired?: </b>" +
feature.attributes.ENTIRE_WB +
"<br><b>Reach Code: </b>" +
"<br><b>Media Indicator: </b>" +
feature.attributes.MEDIA_IND;
dom.byId("dataDiv").innerHTML = formatText;
}
}
});
... View more
06-27-2017
01:57 PM
|
0
|
2
|
1262
|
|
POST
|
As stated in my original posting, I'm using the Basic Viewer template. I went another route with my project and didn't end up using AGOL at all. I have enough HTML/JavaScript experience I just went with that option.
... View more
06-15-2017
09:51 AM
|
0
|
0
|
5640
|
|
POST
|
That was an interesting technique that I haven't tried before, but it didn't help me. The lat/long looks fine. I tried creating a map service on my server as well, and when I add it as a featureLayer, I can't view the data. It just tells me it has an error. I thought I could ignore it, thinking I only really wanted to see the points on a map, and got my whole web map and app finished. It works fine in Chrome, but fails in IE. When I upload the data, it looks like it has 105 records, but when I download back again to my machine, it has all the records. I thought there was some sort of buffering going on that the points were there, and they just weren't displayed, but it's not a huge number I'm starting with in the first place. https://mogov.maps.arcgis.com/apps/View/index.html?appid=ae5a29f267714e79ac841b514b9d624b
... View more
06-09-2017
12:30 PM
|
0
|
1
|
900
|
|
POST
|
I have a CSV file that contains a variety of columns, including latitude and longitude. I've not done my loading of CSV data into a featureLayer, and this is the first time I've had any troubles. It seems to be cutting off some of my records. I should have 211. Looking at the data of the featureLayer, first it had just 159 records. I've tried to upload the data multiple times, once getting just 106 records to upload, and then only 105. I feel like there is something buried in this data that I haven't spotted, but I've taken it to the plain text format, which generally strips out whatever hidden character is the problem, and back to CSV and I'm still having this problem. I tried just hosting this is a service in my local AGS environment, and I have a similar problem. Only in that case, I see no data at all, simply an Error statement when I attempt to review the data. I don't want to attempt to use a shape file, because the column names are all very long.
... View more
06-09-2017
10:39 AM
|
0
|
3
|
1364
|
|
POST
|
I have my Search widget defined as var searchTool = new Search({
map: map,
allPlaceholder: "Find address or ZIP"
}, dom.byId('searchDiv')); The placeholder seems to be ignored, it still says "Find address or place" which is the default. The majority of my users don't understand they can use this field to search by ZIP code, so I need to change this. It seems like this used to say simply placeholder, not allPlaceholder in previous versions.
... View more
06-02-2017
02:38 PM
|
1
|
2
|
2237
|
|
POST
|
I have my labelClass defined as this: HUClabelClass = new LabelClass({ labelExpressionInfo: { "value": '{HU_8_Name}', "maxScale": 250000 }, symbol: mySymbols.hucLabelSymbol() //MySymbols holds all the symbology for my project. }); HUClayer.setLabelingInfo([ HUClabelClass ]); I'm a little lost where I should place the maxScale parameter. It have placed it within the labelExpressionInfo and outside of it. I've tried quoting it, and leaving it without. No matter what combination I try, my labels draw at all scales and that's not what I want to happpen.
... View more
06-02-2017
10:14 AM
|
0
|
1
|
998
|
|
POST
|
It's a feature layer, not on the list of types you can add to your basemap. Here's my scenario. I have a layer of streams and a layer of lakes. They both have water ids, and the user wants to be able to use a urlParameter argument, so they can zoom to a particular body of water. The water body ids were defined such that the ids for the start at 7000, making their numbering scheme distinct from the ids on the streams. It makes sense that should only have one layer to search on as an incoming argument. I created a polyline layer out the lakes and merged it into a copy of the streams to make a query layer. Then the user can specify a water body ID, which searches against this query layer and zooms into either a lake or a stream. The query layer only has the water body ID on it, the attributes aren't the same for the rivers and streams. I needed to leave these each in their own layer for the popup configuration. I don't want to see the query layer, I just need it to be present for this functionality to work.
... View more
05-30-2017
11:33 AM
|
0
|
3
|
5640
|
|
POST
|
My original question is how to move my layer under the ESRI layer. "On top" happens by default rather it is added to the map, as a base map, or as a reference layer. I want to see the Topographic layer, for example, on top of my aerial imagery layer. The Move Up and Move Down options are grayed out for me. I'm not sure why they would be showing up for someone else.
... View more
05-30-2017
11:14 AM
|
0
|
0
|
1247
|
|
POST
|
I would like to include additional aerial imagery in my map, but I'd like for it to be underneath the other ESRI base maps, so that I can show a street map or topo, for example, over the top of this other imagery. All I seem to be able to do is place this imagery on top of the ESRI basemap. If I add it as a basemap, then it is still on top of the topo. It seems like I ought to be able to control the draw order of this.
... View more
05-26-2017
02:55 PM
|
0
|
4
|
1707
|
|
IDEA
|
I get asked for this functionality fairly regularly by our users. I vote YES.
... View more
05-26-2017
01:57 PM
|
1
|
0
|
2009
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-02-2017 02:38 PM | |
| 2 | 03-18-2022 10:14 AM | |
| 2 | 02-18-2016 06:28 AM | |
| 1 | 03-18-2024 07:29 AM | |
| 4 | 08-02-2023 06:08 AM |
| Online Status |
Offline
|
| Date Last Visited |
02-25-2025
01:56 PM
|